FreeCalypso > hg > freecalypso-reveng
comparison moko1-fw-disasm @ 310:ae39d76d5b7a
moko1-fw-disasm: simple analysis of init module
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 31 Jan 2020 22:45:18 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
309:493f73198267 | 310:ae39d76d5b7a |
---|---|
1 ; The earliest surviving version of Openmoko fw is moko1, although it is only | |
2 ; a binary without symbols. The present disassembly is a quick look at this | |
3 ; binary, dug only far enough to get to the init module. The objective was to | |
4 ; see how the init module of moko1 (presumably coming from TI's 20070419 fw | |
5 ; delivery) compares to our familiar 20070608 version, used in moko3 through | |
6 ; moko11. Result: the init module is confirmed to be identical between the two | |
7 ; versions, meaning that: | |
8 ; | |
9 ; 1) Small Samsung flash must have already been adopted by the time of moko1. | |
10 ; If someone were to populate an S71PL129J chip on a GTA01 board and flash | |
11 ; moko1 (or any later version up to moko11) into its first bank, the 2nd | |
12 ; bank on nCS4 won't work because nCS4 is not set up correctly by the MEMIF | |
13 ; setup code in Init_Target(). | |
14 ; | |
15 ; 2) The GPIO bogon functions inserted into the init module were already | |
16 ; present in this 20070419 version. | |
17 | |
18 0: ea0004b3 b 0x12d4 | |
19 4: ea003ffd b 0x10000 | |
20 8: ea003ffd b 0x10004 | |
21 c: ea003ffd b 0x10008 | |
22 10: ea003ffd b 0x1000c | |
23 14: ea003ffd b 0x10010 | |
24 18: ea003ffd b 0x10014 | |
25 1c: ea003ffd b 0x10018 | |
26 | |
27 _INT_Bootloader_Start: | |
28 12d4: e51f101c ldr r1, =0xffff9800 ; via 0x12c0 | |
29 12d8: e15f21b2 ldrh r2, =0x2006 ; via 0x12ce | |
30 12dc: e1c120b0 strh r2, [r1] | |
31 12e0: e5912000 ldr r2, [r1] | |
32 12e4: e2022001 and r2, r2, #1 | |
33 12e8: e3520001 cmp r2, #1 | |
34 12ec: 0afffffb beq 0x12e0 | |
35 12f0: e51f103c ldr r1, =0xfffffd00 ; via 0x12bc | |
36 12f4: e15f23b0 ldrh r2, =0x1081 ; via 0x12cc | |
37 12f8: e1c120b0 strh r2, [r1] | |
38 12fc: e51f1040 ldr r1, =0xfffffb10 ; via 0x12c4 | |
39 1300: e15f23b8 ldrh r2, =0x800 ; via 0x12d0 | |
40 1304: e1d100b0 ldrh r0, [r1] | |
41 1308: e1800002 orr r0, r0, r2 | |
42 130c: e1c100b0 strh r0, [r1] | |
43 1310: e51f1050 ldr r1, =0xffffff08 ; via 0x12c8 | |
44 1314: e15f24ba ldrh r2, =0x0 ; via 0x12d2 | |
45 1318: e1c120b0 strh r2, [r1] | |
46 131c: e51f107c ldr r1, =0xfffffb00 ; via 0x12a8 | |
47 1320: e15f27bc ldrh r2, =0x2a1 ; via 0x12ac | |
48 1324: e1c120b0 strh r2, [r1] | |
49 1328: e15f28b2 ldrh r2, =0x2a1 ; via 0x12ae | |
50 132c: e1c120b2 strh r2, [r1, #2] | |
51 1330: e15f28b8 ldrh r2, =0x2a1 ; via 0x12b0 | |
52 1334: e1c120b4 strh r2, [r1, #4] | |
53 1338: e15f28be ldrh r2, =0x283 ; via 0x12b2 | |
54 133c: e1c120b6 strh r2, [r1, #6] | |
55 1340: e15f29b4 ldrh r2, =0x281 ; via 0x12b4 | |
56 1344: e1c120ba strh r2, [r1, #10] ; 0xa | |
57 1348: e15f29ba ldrh r2, =0xc0 ; via 0x12b6 | |
58 134c: e1c120bc strh r2, [r1, #12] ; 0xc | |
59 1350: e15f2ab0 ldrh r2, =0x40 ; via 0x12b8 | |
60 1354: e1c120b8 strh r2, [r1, #8] | |
61 1358: e15f2ab6 ldrh r2, =0x2a ; via 0x12ba | |
62 135c: e1c120be strh r2, [r1, #14] ; 0xe | |
63 1360: e59f0020 ldr r0, =0x107e32c ; via 0x1388 | |
64 1364: e3a01b01 mov r1, #1024 ; 0x400 | |
65 1368: e2411004 sub r1, r1, #4 | |
66 136c: e0802001 add r2, r0, r1 | |
67 1370: e3c22003 bic r2, r2, #3 | |
68 1374: e1a0d002 mov sp, r2 | |
69 1378: e92d100f stmdb sp!, {r0, r1, r2, r3, r12} | |
70 137c: eb000043 bl 0x1490 ; _sta_select_application | |
71 1380: e8bd100f ldmia sp!, {r0, r1, r2, r3, r12} | |
72 1384: ea003b33 b 0x10058 ; _INT_Initialize | |
73 | |
74 _sta_select_application: | |
75 1490: e92d4000 stmdb sp!, {lr} | |
76 1494: e28fe001 add lr, pc, #1 | |
77 1498: e12fff1e bx lr | |
78 149c: f7ff fd71 bl 0xf82 ; $sta_select_application | |
79 14a0: 4778 bx pc | |
80 14a2: 46c0 nop (mov r8, r8) | |
81 14a4: e8bd8000 ldmia sp!, {pc} | |
82 | |
83 2000: 00000001 | |
84 | |
85 .inttext: | |
86 10000: ea0000d0 b 0x10348 | |
87 10004: ea0000d2 b 0x10354 | |
88 10008: ea0000d4 b 0x10360 | |
89 1000c: ea0000d6 b 0x1036c | |
90 10010: ea0000d8 b 0x10378 | |
91 10014: ea0000bc b 0x1030c | |
92 10018: ea0000c5 b 0x10334 | |
93 | |
94 _c_int00: | |
95 1001c: 02a102a1 | |
96 10020: 028302a1 | |
97 10024: 02c00e85 | |
98 10028: 002a0040 | |
99 1002c: fffffb00 | |
100 10030: fffef006 | |
101 10034: 00000008 | |
102 10038: fffffd00 | |
103 1003c: ffff9800 | |
104 10040: fffffb10 | |
105 10044: ffffff08 | |
106 10048: 20021081 | |
107 1004c: f7ff0800 | |
108 10050: 00000000 | |
109 10054: 001f0e34 ; cinit | |
110 | |
111 _INT_Initialize: | |
112 10058: e51f1024 ldr r1, =0xffff9800 ; via 0x1003c | |
113 1005c: e15f21ba ldrh r2, =0x2002 ; via 0x1004a | |
114 10060: e1c120b0 strh r2, [r1] | |
115 10064: e5912000 ldr r2, [r1] | |
116 10068: e2022001 and r2, r2, #1 | |
117 1006c: e3520001 cmp r2, #1 | |
118 10070: 0afffffb beq 0x10064 | |
119 10074: e51f1044 ldr r1, =0xfffffd00 ; via 0x10038 | |
120 10078: e15f23b8 ldrh r2, =0x1081 ; via 0x10048 | |
121 1007c: e1c120b0 strh r2, [r1] | |
122 10080: e51f1048 ldr r1, =0xfffffb10 ; via 0x10040 | |
123 10084: e15f23be ldrh r2, =0xf7ff ; via 0x1004e | |
124 10088: e1d100b0 ldrh r0, [r1] | |
125 1008c: e0000002 and r0, r0, r2 | |
126 10090: e1c100b0 strh r0, [r1] | |
127 10094: e51f1058 ldr r1, =0xffffff08 ; via 0x10044 | |
128 10098: e15f25b0 ldrh r2, =0x0 ; via 0x10050 | |
129 1009c: e1c120b0 strh r2, [r1] | |
130 100a0: e51f107c ldr r1, =0xfffffb00 ; via 0x1002c | |
131 100a4: e15f29b0 ldrh r2, =0x2a1 ; via 0x1001c | |
132 100a8: e1c120b0 strh r2, [r1] | |
133 100ac: e15f29b6 ldrh r2, =0x2a1 ; via 0x1001e | |
134 100b0: e1c120b2 strh r2, [r1, #2] | |
135 100b4: e15f29bc ldrh r2, =0x2a1 ; via 0x10020 | |
136 100b8: e1c120b4 strh r2, [r1, #4] | |
137 100bc: e15f2ab2 ldrh r2, =0x283 ; via 0x10022 | |
138 100c0: e1c120b6 strh r2, [r1, #6] | |
139 100c4: e15f2ab8 ldrh r2, =0xe85 ; via 0x10024 | |
140 100c8: e1c120ba strh r2, [r1, #10] ; 0xa | |
141 100cc: e15f2abe ldrh r2, =0x2c0 ; via 0x10026 | |
142 100d0: e1c120bc strh r2, [r1, #12] ; 0xc | |
143 100d4: e15f2bb4 ldrh r2, =0x40 ; via 0x10028 | |
144 100d8: e1c120b8 strh r2, [r1, #8] | |
145 100dc: e15f2bba ldrh r2, =0x2a ; via 0x1002a | |
146 100e0: e1c120be strh r2, [r1, #14] ; 0xe | |
147 100e4: e51f10bc ldr r1, =0xfffef006 ; via 0x10030 | |
148 100e8: e1d120b0 ldrh r2, [r1] | |
149 100ec: e51f00c0 ldr r0, =0x8 ; via 0x10034 | |
150 100f0: e1800002 orr r0, r0, r2 | |
151 100f4: e1c100b0 strh r0, [r1] | |
152 100f8: e10f0000 mrs r0, CPSR | |
153 100fc: e3c0001f bic r0, r0, #31 ; 0x1f | |
154 10100: e3800013 orr r0, r0, #19 ; 0x13 | |
155 10104: e38000c0 orr r0, r0, #192 ; 0xc0 | |
156 10108: e129f000 msr CPSR_fc, r0 | |
157 1010c: e59f0340 ldr r0, =0x107e418 ; via 0x10454 | |
158 10110: e3a01b01 mov r1, #1024 ; 0x400 | |
159 10114: e2411004 sub r1, r1, #4 | |
160 10118: e0802001 add r2, r0, r1 | |
161 1011c: e1a0d002 mov sp, r2 | |
162 10120: e92d000f stmdb sp!, {r0, r1, r2, r3} | |
163 10124: e59f0318 ldr r0, =0x1000cf4 ; via 0x10444 | |
164 10128: e59f2318 ldr r2, =0x107e32c ; via 0x10448 | |
165 1012c: e0422000 sub r2, r2, r0 | |
166 10130: e3a01000 mov r1, #0 | |
167 10134: eb0000e1 bl 0x104c0 | |
168 10138: e59f030c ldr r0, =0x800000 ; via 0x1044c | |
169 1013c: e59f230c ldr r2, =0x81d448 ; via 0x10450 | |
170 10140: e0422000 sub r2, r2, r0 | |
171 10144: e3a01000 mov r1, #0 | |
172 10148: eb0000dc bl 0x104c0 | |
173 1014c: e8bd000f ldmia sp!, {r0, r1, r2, r3} | |
174 10150: e3a00001 mov r0, #1 | |
175 10154: e59f12fc ldr r1, =0x107e254 ; via 0x10458 | |
176 10158: e5810000 str r0, [r1] | |
177 1015c: e59f02f0 ldr r0, =0x107e418 ; via 0x10454 | |
178 10160: e3a01b01 mov r1, #1024 ; 0x400 | |
179 10164: e2411004 sub r1, r1, #4 | |
180 10168: e0802001 add r2, r0, r1 | |
181 1016c: e1a0a000 mov r10, r0 | |
182 10170: e59f32e4 ldr r3, =0x804978 ; via 0x1045c | |
183 10174: e583a000 str r10, [r3] | |
184 10178: e1a0d002 mov sp, r2 | |
185 1017c: e59f32dc ldr r3, =0x804a9c ; via 0x10460 | |
186 10180: e583d000 str sp, [r3] | |
187 10184: e3a01080 mov r1, #128 ; 0x80 | |
188 10188: e0822001 add r2, r2, r1 | |
189 1018c: e10f0000 mrs r0, CPSR | |
190 10190: e3c0001f bic r0, r0, #31 ; 0x1f | |
191 10194: e3800012 orr r0, r0, #18 ; 0x12 | |
192 10198: e129f000 msr CPSR_fc, r0 | |
193 1019c: e1a0d002 mov sp, r2 | |
194 101a0: e3a01c02 mov r1, #512 ; 0x200 | |
195 101a4: e0822001 add r2, r2, r1 | |
196 101a8: e10f0000 mrs r0, CPSR | |
197 101ac: e3c0001f bic r0, r0, #31 ; 0x1f | |
198 101b0: e3800011 orr r0, r0, #17 ; 0x11 | |
199 101b4: e129f000 msr CPSR_fc, r0 | |
200 101b8: e1a0d002 mov sp, r2 | |
201 101bc: e10f0000 mrs r0, CPSR | |
202 101c0: e3c0001f bic r0, r0, #31 ; 0x1f | |
203 101c4: e3800017 orr r0, r0, #23 ; 0x17 | |
204 101c8: e129f000 msr CPSR_fc, r0 | |
205 101cc: e59fd29c ldr sp, =0x107e380 ; via 0x10470 | |
206 101d0: e10f0000 mrs r0, CPSR | |
207 101d4: e3c0001f bic r0, r0, #31 ; 0x1f | |
208 101d8: e380001b orr r0, r0, #27 ; 0x1b | |
209 101dc: e129f000 msr CPSR_fc, r0 | |
210 101e0: e59fd288 ldr sp, =0x107e380 ; via 0x10470 | |
211 101e4: e10f0000 mrs r0, CPSR | |
212 101e8: e3c0001f bic r0, r0, #31 ; 0x1f | |
213 101ec: e3800013 orr r0, r0, #19 ; 0x13 | |
214 101f0: e129f000 msr CPSR_fc, r0 | |
215 101f4: e59f3268 ldr r3, =0x8048e0 ; via 0x10464 | |
216 101f8: e2822004 add r2, r2, #4 | |
217 101fc: e5832000 str r2, [r3] | |
218 10200: e3a01b01 mov r1, #1024 ; 0x400 | |
219 10204: e3c11003 bic r1, r1, #3 | |
220 10208: e0822001 add r2, r2, r1 | |
221 1020c: e59f3254 ldr r3, =0x804964 ; via 0x10468 | |
222 10210: e5831000 str r1, [r3] | |
223 10214: e3a01002 mov r1, #2 | |
224 10218: e59f324c ldr r3, =0x804974 ; via 0x1046c | |
225 1021c: e5831000 str r1, [r3] | |
226 10220: e1a04002 mov r4, r2 | |
227 10224: eb076638 bl 0x1e9b0c ; _f_load_int_mem | |
228 10228: e1a02004 mov r2, r4 | |
229 1022c: e59f1228 ldr r1, =0x804978 ; via 0x1045c | |
230 10230: e5910000 ldr r0, [r1] | |
231 10234: e3a030fe mov r3, #254 ; 0xfe | |
232 10238: e5c03000 strb r3, [r0] | |
233 1023c: e5c03001 strb r3, [r0, #1] | |
234 10240: e5c03002 strb r3, [r0, #2] | |
235 10244: e5c03003 strb r3, [r0, #3] | |
236 10248: e4903004 ldr r3, [r0], #4 | |
237 1024c: e4803004 str r3, [r0], #4 | |
238 10250: e1500002 cmp r0, r2 | |
239 10254: bafffffc blt 0x1024c | |
240 10258: e51f020c ldr r0, =0x1f0e34 ; via 0x10054 | |
241 1025c: e3700001 cmn r0, #1 | |
242 10260: 1b000084 blne 0x10478 | |
243 10264: e1a00002 mov r0, r2 | |
244 10268: ea07814e b 0x1f07a8 ; _INC_Initialize | |
245 | |
246 $Init_Target: | |
247 1d98d4: b570 push {r4, r5, r6, lr} | |
248 1d98d6: b081 sub sp, #4 | |
249 1d98d8: 4d84 ldr r5, =0xfffef008 ; via 0x1d9aec | |
250 1d98da: 2003 mov r0, #3 | |
251 1d98dc: 0340 lsl r0, r0, #13 | |
252 1d98de: 8028 strh r0, [r5, #0] | |
253 1d98e0: f00d fe2a bl 0x1e7538 | |
254 1d98e4: 4882 ldr r0, =0xfffffd02 ; via 0x1d9af0 | |
255 1d98e6: 2105 mov r1, #5 | |
256 1d98e8: 8802 ldrh r2, [r0, #0] | |
257 1d98ea: 4311 orr r1, r2 | |
258 1d98ec: 8001 strh r1, [r0, #0] | |
259 1d98ee: 4981 ldr r1, =0xff3f ; via 0x1d9af4 | |
260 1d98f0: 8802 ldrh r2, [r0, #0] | |
261 1d98f2: 4011 and r1, r2 | |
262 1d98f4: 8001 strh r1, [r0, #0] | |
263 1d98f6: 2180 mov r1, #128 ; 0x80 | |
264 1d98f8: 8802 ldrh r2, [r0, #0] | |
265 1d98fa: 4311 orr r1, r2 | |
266 1d98fc: 8001 strh r1, [r0, #0] | |
267 1d98fe: 497e ldr r1, =0xffdf ; via 0x1d9af8 | |
268 1d9900: 8802 ldrh r2, [r0, #0] | |
269 1d9902: 4011 and r1, r2 | |
270 1d9904: 8001 strh r1, [r0, #0] | |
271 1d9906: 4e7d ldr r6, =0xfffff900 ; via 0x1d9afc | |
272 1d9908: 20ff mov r0, #255 ; 0xff | |
273 1d990a: 0200 lsl r0, r0, #8 | |
274 1d990c: 8030 strh r0, [r6, #0] | |
275 1d990e: 4c7c ldr r4, =0xffff9800 ; via 0x1d9b00 | |
276 1d9910: 487c ldr r0, =0xfff3 ; via 0x1d9b04 | |
277 1d9912: 8821 ldrh r1, [r4, #0] | |
278 1d9914: 4008 and r0, r1 | |
279 1d9916: 8020 strh r0, [r4, #0] | |
280 1d9918: 8820 ldrh r0, [r4, #0] | |
281 1d991a: 8020 strh r0, [r4, #0] | |
282 1d991c: 487a ldr r0, =0xf01f ; via 0x1d9b08 | |
283 1d991e: 8821 ldrh r1, [r4, #0] | |
284 1d9920: 4008 and r0, r1 | |
285 1d9922: 8020 strh r0, [r4, #0] | |
286 1d9924: 2001 mov r0, #1 | |
287 1d9926: 0280 lsl r0, r0, #10 | |
288 1d9928: 8821 ldrh r1, [r4, #0] | |
289 1d992a: 4308 orr r0, r1 | |
290 1d992c: 8020 strh r0, [r4, #0] | |
291 1d992e: 2000 mov r0, #0 | |
292 1d9930: 2102 mov r1, #2 | |
293 1d9932: 2200 mov r2, #0 | |
294 1d9934: f00e fa3c bl 0x1e7db0 | |
295 1d9938: 4974 ldr r1, =0xfffffb00 ; via 0x1d9b0c | |
296 1d993a: 20a3 mov r0, #163 ; 0xa3 | |
297 1d993c: 8008 strh r0, [r1, #0] | |
298 1d993e: 8048 strh r0, [r1, #2] | |
299 1d9940: 22a5 mov r2, #165 ; 0xa5 | |
300 1d9942: 808a strh r2, [r1, #4] | |
301 1d9944: 80c8 strh r0, [r1, #6] | |
302 1d9946: 2080 mov r0, #128 ; 0x80 | |
303 1d9948: 8148 strh r0, [r1, #10] ; 0xa | |
304 1d994a: 20c0 mov r0, #192 ; 0xc0 | |
305 1d994c: 8188 strh r0, [r1, #12] ; 0xc | |
306 1d994e: 2040 mov r0, #64 ; 0x40 | |
307 1d9950: 8108 strh r0, [r1, #8] | |
308 1d9952: 2020 mov r0, #32 ; 0x20 | |
309 1d9954: 8070 strh r0, [r6, #2] | |
310 1d9956: 2000 mov r0, #0 | |
311 1d9958: 80b0 strh r0, [r6, #4] | |
312 1d995a: 2010 mov r0, #16 ; 0x10 | |
313 1d995c: 8821 ldrh r1, [r4, #0] | |
314 1d995e: 4308 orr r0, r1 | |
315 1d9960: 8020 strh r0, [r4, #0] | |
316 1d9962: 486b ldr r0, =0xfffffa08 ; via 0x1d9b10 | |
317 1d9964: 496b ldr r1, =0xffff ; via 0x1d9b14 | |
318 1d9966: 8001 strh r1, [r0, #0] | |
319 1d9968: 8041 strh r1, [r0, #2] | |
320 1d996a: 2103 mov r1, #3 | |
321 1d996c: 8181 strh r1, [r0, #12] ; 0xc | |
322 1d996e: f00c fce7 bl 0x1e6340 | |
323 1d9972: 4869 ldr r0, =0xfffffc00 ; via 0x1d9b18 | |
324 1d9974: 2124 mov r1, #36 ; 0x24 | |
325 1d9976: 8001 strh r1, [r0, #0] | |
326 1d9978: 210d mov r1, #13 ; 0xd | |
327 1d997a: 8041 strh r1, [r0, #2] | |
328 1d997c: 2400 mov r4, #0 | |
329 1d997e: 4867 ldr r0, =0xfffe2016 ; via 0x1d9b1c | |
330 1d9980: 8004 strh r4, [r0, #0] | |
331 1d9982: 4967 ldr r1, =0xfffe2014 ; via 0x1d9b20 | |
332 1d9984: 2002 mov r0, #2 | |
333 1d9986: 8008 strh r0, [r1, #0] | |
334 1d9988: 4966 ldr r1, =0xfffe2002 ; via 0x1d9b24 | |
335 1d998a: 2084 mov r0, #132 ; 0x84 | |
336 1d998c: 8008 strh r0, [r1, #0] | |
337 1d998e: 4866 ldr r0, =0xfffe2000 ; via 0x1d9b28 | |
338 1d9990: 4966 ldr r1, =0x3de0 ; via 0x1d9b2c | |
339 1d9992: 8001 strh r1, [r0, #0] | |
340 1d9994: 4a66 ldr r2, =0xfffe2022 ; via 0x1d9b30 | |
341 1d9996: 210c mov r1, #12 ; 0xc | |
342 1d9998: 8011 strh r1, [r2, #0] | |
343 1d999a: 4a66 ldr r2, =0xfffe2020 ; via 0x1d9b34 | |
344 1d999c: 4966 ldr r1, =0x45a ; via 0x1d9b38 | |
345 1d999e: 8011 strh r1, [r2, #0] | |
346 1d99a0: 4a66 ldr r2, =0xfffe201e ; via 0x1d9b3c | |
347 1d99a2: 21a5 mov r1, #165 ; 0xa5 | |
348 1d99a4: 0089 lsl r1, r1, #2 | |
349 1d99a6: 8011 strh r1, [r2, #0] | |
350 1d99a8: 4a65 ldr r2, =0xfffe201c ; via 0x1d9b40 | |
351 1d99aa: 211f mov r1, #31 ; 0x1f | |
352 1d99ac: 8011 strh r1, [r2, #0] | |
353 1d99ae: 4965 ldr r1, =0xfffe2024 ; via 0x1d9b44 | |
354 1d99b0: 800c strh r4, [r1, #0] | |
355 1d99b2: 4b65 ldr r3, =0xfffe2010 ; via 0x1d9b48 | |
356 1d99b4: 2202 mov r2, #2 | |
357 1d99b6: 8819 ldrh r1, [r3, #0] | |
358 1d99b8: 430a orr r2, r1 | |
359 1d99ba: 801a strh r2, [r3, #0] | |
360 1d99bc: 4a62 ldr r2, =0xfffe2010 ; via 0x1d9b48 | |
361 1d99be: 2104 mov r1, #4 | |
362 1d99c0: 8813 ldrh r3, [r2, #0] | |
363 1d99c2: 4319 orr r1, r3 | |
364 1d99c4: 8011 strh r1, [r2, #0] | |
365 1d99c6: 2127 mov r1, #39 ; 0x27 | |
366 1d99c8: 80a9 strh r1, [r5, #4] | |
367 1d99ca: 8a01 ldrh r1, [r0, #16] ; 0x10 | |
368 1d99cc: 0849 lsr r1, r1, #1 | |
369 1d99ce: d30f bcc 0x1d99f0 | |
370 1d99d0: 8a01 ldrh r1, [r0, #16] ; 0x10 | |
371 1d99d2: 0409 lsl r1, r1, #16 | |
372 1d99d4: 0c49 lsr r1, r1, #17 | |
373 1d99d6: 0049 lsl r1, r1, #1 | |
374 1d99d8: 8201 strh r1, [r0, #16] ; 0x10 | |
375 1d99da: 2101 mov r1, #1 | |
376 1d99dc: e001 b 0x1d99e2 | |
377 1d99de: 9900 ldr r1, [sp, #0] | |
378 1d99e0: 3101 add r1, #1 | |
379 1d99e2: 9100 str r1, [sp, #0] | |
380 1d99e4: 9900 ldr r1, [sp, #0] | |
381 1d99e6: 2932 cmp r1, #50 ; 0x32 | |
382 1d99e8: d3f9 bcc 0x1d99de | |
383 1d99ea: 8a41 ldrh r1, [r0, #18] ; 0x12 | |
384 1d99ec: 2900 cmp r1, #0 | |
385 1d99ee: d0fc beq 0x1d99ea | |
386 1d99f0: f00e fb69 bl 0x1e80c6 | |
387 1d99f4: f00e fb6d bl 0x1e80d2 | |
388 1d99f8: 2027 mov r0, #39 ; 0x27 | |
389 1d99fa: 0500 lsl r0, r0, #20 | |
390 1d99fc: 8004 strh r4, [r0, #0] | |
391 1d99fe: 2001 mov r0, #1 | |
392 1d9a00: f00d fda8 bl 0x1e7554 | |
393 1d9a04: 2002 mov r0, #2 | |
394 1d9a06: f00d fda5 bl 0x1e7554 | |
395 1d9a0a: b001 add sp, #4 | |
396 1d9a0c: bd70 pop {r4, r5, r6, pc} | |
397 | |
398 $HighGPIO: | |
399 1d9a0e: 4a4f ldr r2, =0xfffe4802 ; via 0x1d9b4c | |
400 1d9a10: 2101 mov r1, #1 | |
401 1d9a12: 4081 lsl r1, r0 | |
402 1d9a14: 8810 ldrh r0, [r2, #0] | |
403 1d9a16: 4301 orr r1, r0 | |
404 1d9a18: 8011 strh r1, [r2, #0] | |
405 1d9a1a: 4770 bx lr | |
406 | |
407 $LowGPIO: | |
408 1d9a1c: 4a4b ldr r2, =0xfffe4802 ; via 0x1d9b4c | |
409 1d9a1e: 2101 mov r1, #1 | |
410 1d9a20: 4081 lsl r1, r0 | |
411 1d9a22: 8810 ldrh r0, [r2, #0] | |
412 1d9a24: 4388 bic r0, r1 | |
413 1d9a26: 8010 strh r0, [r2, #0] | |
414 1d9a28: 4770 bx lr | |
415 | |
416 $CongiureGPIO_Internal: | |
417 1d9a2a: b510 push {r4, lr} | |
418 1d9a2c: 1c04 add r4, r0, #0 | |
419 1d9a2e: 4948 ldr r1, =0xfffe481a ; via 0x1d9b50 | |
420 1d9a30: 200f mov r0, #15 ; 0xf | |
421 1d9a32: 8008 strh r0, [r1, #0] | |
422 1d9a34: 1c20 add r0, r4, #0 | |
423 1d9a36: f00e fb23 bl 0x1e8080 | |
424 1d9a3a: 1c20 add r0, r4, #0 | |
425 1d9a3c: f00e fb2e bl 0x1e809c | |
426 1d9a40: 2800 cmp r0, #0 | |
427 1d9a42: d101 bne 0x1d9a48 | |
428 1d9a44: 2101 mov r1, #1 | |
429 1d9a46: e000 b 0x1d9a4a | |
430 1d9a48: 2100 mov r1, #0 | |
431 1d9a4a: 0420 lsl r0, r4, #16 | |
432 1d9a4c: 0c00 lsr r0, r0, #16 | |
433 1d9a4e: f00e fb71 bl 0x1e8134 | |
434 1d9a52: 2002 mov r0, #2 | |
435 1d9a54: f00e fb7d bl 0x1e8152 | |
436 1d9a58: bd10 pop {r4, pc} | |
437 | |
438 $CongiureGPIO_External: | |
439 1d9a5a: b510 push {r4, lr} | |
440 1d9a5c: 1c04 add r4, r0, #0 | |
441 1d9a5e: 493c ldr r1, =0xfffe481a ; via 0x1d9b50 | |
442 1d9a60: 200f mov r0, #15 ; 0xf | |
443 1d9a62: 8008 strh r0, [r1, #0] | |
444 1d9a64: 1c20 add r0, r4, #0 | |
445 1d9a66: f00e fb12 bl 0x1e808e | |
446 1d9a6a: 1c20 add r0, r4, #0 | |
447 1d9a6c: f00e fb16 bl 0x1e809c | |
448 1d9a70: 2800 cmp r0, #0 | |
449 1d9a72: d101 bne 0x1d9a78 | |
450 1d9a74: 2101 mov r1, #1 | |
451 1d9a76: e000 b 0x1d9a7a | |
452 1d9a78: 2100 mov r1, #0 | |
453 1d9a7a: 0420 lsl r0, r4, #16 | |
454 1d9a7c: 0c00 lsr r0, r0, #16 | |
455 1d9a7e: f00e fb59 bl 0x1e8134 | |
456 1d9a82: 2002 mov r0, #2 | |
457 1d9a84: f00e fb65 bl 0x1e8152 | |
458 1d9a88: bd10 pop {r4, pc} | |
459 | |
460 $Init_Drivers: | |
461 1d9a8a: b500 push {lr} | |
462 1d9a8c: f7c0 fd0c bl 0x19a4a8 | |
463 1d9a90: f7d3 fe6d bl 0x1ad76e | |
464 1d9a94: f760 fd49 bl 0x13a52a | |
465 1d9a98: f77b fd7c bl 0x155594 | |
466 1d9a9c: f7e0 f8a0 bl 0x1b9be0 | |
467 1d9aa0: f74a ff4a bl 0x124938 | |
468 1d9aa4: bd00 pop {pc} | |
469 | |
470 $Init_Serial_Flows: | |
471 1d9aa6: b500 push {lr} | |
472 1d9aa8: 482a ldr r0, =0x107d828 ; via 0x1d9b54 | |
473 1d9aaa: f7be fded bl 0x198688 | |
474 1d9aae: 2000 mov r0, #0 | |
475 1d9ab0: 2103 mov r1, #3 | |
476 1d9ab2: 2200 mov r2, #0 | |
477 1d9ab4: f7be fe89 bl 0x1987ca | |
478 1d9ab8: f7be fee3 bl 0x198882 | |
479 1d9abc: 4926 ldr r1, =0xfffe4804 ; via 0x1d9b58 | |
480 1d9abe: 2004 mov r0, #4 | |
481 1d9ac0: 880a ldrh r2, [r1, #0] | |
482 1d9ac2: 4310 orr r0, r2 | |
483 1d9ac4: 8008 strh r0, [r1, #0] | |
484 1d9ac6: bd00 pop {pc} | |
485 | |
486 $Init_Unmask_IT: | |
487 1d9ac8: b500 push {lr} | |
488 1d9aca: 2004 mov r0, #4 | |
489 1d9acc: f00c fc99 bl 0x1e6402 | |
490 1d9ad0: 2012 mov r0, #18 ; 0x12 | |
491 1d9ad2: f00c fc96 bl 0x1e6402 | |
492 1d9ad6: 2007 mov r0, #7 | |
493 1d9ad8: f00c fc93 bl 0x1e6402 | |
494 1d9adc: 2008 mov r0, #8 | |
495 1d9ade: f00c fc90 bl 0x1e6402 | |
496 1d9ae2: 200f mov r0, #15 ; 0xf | |
497 1d9ae4: f00c fc8d bl 0x1e6402 | |
498 1d9ae8: bd00 pop {pc} | |
499 1d9aea: 46c0 nop (mov r8, r8) | |
500 | |
501 $INC_Initialize: | |
502 1ef68c: b530 push {r4, r5, lr} | |
503 1ef68e: 1c05 add r5, r0, #0 | |
504 1ef690: 4c13 ldr r4, =0x107e23c ; via 0x1ef6e0 | |
505 1ef692: 2001 mov r0, #1 | |
506 1ef694: 6020 str r0, [r4, #0] | |
507 1ef696: f001 fbc5 bl 0x1f0e24 | |
508 1ef69a: f001 fbc7 bl 0x1f0e2c | |
509 1ef69e: f001 fb89 bl 0x1f0db4 | |
510 1ef6a2: f000 fc87 bl 0x1effb4 | |
511 1ef6a6: f7fb ffc5 bl 0x1eb634 | |
512 1ef6aa: f000 ff0d bl 0x1f04c8 | |
513 1ef6ae: f000 fedb bl 0x1f0468 | |
514 1ef6b2: f000 fef9 bl 0x1f04a8 | |
515 1ef6b6: f000 fec7 bl 0x1f0448 | |
516 1ef6ba: f000 ff25 bl 0x1f0508 | |
517 1ef6be: f000 fee3 bl 0x1f0488 | |
518 1ef6c2: f000 ff31 bl 0x1f0528 | |
519 1ef6c6: f7fe f921 bl 0x1ed90c | |
520 1ef6ca: f000 ff0d bl 0x1f04e8 | |
521 1ef6ce: 1c28 add r0, r5, #0 | |
522 1ef6d0: f000 ff86 bl 0x1f05e0 ; $Application_Initialize | |
523 1ef6d4: 2002 mov r0, #2 | |
524 1ef6d6: 6020 str r0, [r4, #0] | |
525 1ef6d8: f076 f872 bl 0x2657c0 | |
526 1ef6dc: bd30 pop {r4, r5, pc} | |
527 1ef6de: 46c0 nop (mov r8, r8) | |
528 | |
529 $Application_Initialize: | |
530 1f05e0: b500 push {lr} | |
531 1f05e2: f7e9 f977 bl 0x1d98d4 ; $Init_Target | |
532 1f05e6: f7e9 fa50 bl 0x1d9a8a ; $Init_Drivers | |
533 1f05ea: f075 fa29 bl 0x265a40 ; $Cust_Init_Layer1 | |
534 1f05ee: f7e9 fa5a bl 0x1d9aa6 ; $Init_Serial_Flows | |
535 1f05f2: f773 ff32 bl 0x16445a ; $StartFrame | |
536 1f05f6: f7e9 fa67 bl 0x1d9ac8 ; $Init_Unmask_IT | |
537 1f05fa: bd00 pop {pc} | |
538 | |
539 _INC_Initialize: | |
540 1f07a8: e92d4000 stmdb sp!, {lr} | |
541 1f07ac: e28fe001 add lr, pc, #1 | |
542 1f07b0: e12fff1e bx lr | |
543 1f07b4: f7fe ff6a bl 0x1ef68c ; $INC_Initialize | |
544 1f07b8: 4778 bx pc | |
545 1f07ba: 46c0 nop (mov r8, r8) | |
546 1f07bc: e8bd8000 ldmia sp!, {pc} |