Skip to content

Instantly share code, notes, and snippets.

@eggman
Last active August 26, 2016 23:09
Show Gist options
  • Save eggman/2f6e020d4a999fcf86f1b71fff9185c6 to your computer and use it in GitHub Desktop.
Save eggman/2f6e020d4a999fcf86f1b71fff9185c6 to your computer and use it in GitHub Desktop.
disassembled code of ameba startup.o
10003260 <InfraStart>:
10003260: b508 push {r3, lr}
10003262: 4b15 ldr r3, [pc, #84] ; (100032b8 <InfraStart+0x58>)
10003264: 681b ldr r3, [r3, #0]
10003266: 005b lsls r3, r3, #1
10003268: d422 bmi.n 100032b0 <InfraStart+0x50>
1000326a: 4814 ldr r0, [pc, #80] ; (100032bc <InfraStart+0x5c>)
1000326c: 4a14 ldr r2, [pc, #80] ; (100032c0 <InfraStart+0x60>)
1000326e: 2100 movs r1, #0
10003270: 1a12 subs r2, r2, r0
10003272: 4b14 ldr r3, [pc, #80] ; (100032c4 <InfraStart+0x64>)
10003274: 4798 blx r3
10003276: f000 f8cb bl 10003410 <SystemCoreClockUpdate>
1000327a: 4913 ldr r1, [pc, #76] ; (100032c8 <InfraStart+0x68>)
1000327c: 4a13 ldr r2, [pc, #76] ; (100032cc <InfraStart+0x6c>)
1000327e: 6808 ldr r0, [r1, #0]
10003280: 4b13 ldr r3, [pc, #76] ; (100032d0 <InfraStart+0x70>)
10003282: f020 6070 bic.w r0, r0, #251658240 ; 0xf000000
10003286: f040 60c0 orr.w r0, r0, #100663296 ; 0x6000000
1000328a: 6008 str r0, [r1, #0]
1000328c: 6811 ldr r1, [r2, #0]
1000328e: f421 6170 bic.w r1, r1, #3840 ; 0xf00
10003292: 6011 str r1, [r2, #0]
10003294: 681a ldr r2, [r3, #0]
10003296: f022 0218 bic.w r2, r2, #24
1000329a: f042 0208 orr.w r2, r2, #8
1000329e: 601a str r2, [r3, #0]
100032a0: f000 f866 bl 10003370 <En32KCalibration>
100032a4: f000 f85c bl 10003360 <SpicDisableRtl8195A>
100032a8: e8bd 4008 ldmia.w sp!, {r3, lr}
100032ac: f000 b844 b.w 10003338 <_AppStart>
100032b0: 4b08 ldr r3, [pc, #32] ; (100032d4 <InfraStart+0x74>)
100032b2: 4809 ldr r0, [pc, #36] ; (100032d8 <InfraStart+0x78>)
100032b4: 4798 blx r3
100032b6: e7d8 b.n 1000326a <InfraStart+0xa>
100032b8: 10000314 .word 0x10000314
100032bc: 10003470 .word 0x10003470
100032c0: 1000348c .word 0x1000348c
100032c4: 0000f511 .word 0x0000f511 ; _memset()
100032c8: 40000020 .word 0x40000020
100032cc: 4000004c .word 0x4000004c
100032d0: 40000064 .word 0x40000064
100032d4: 0000f39d .word 0x0000f39d ; DiagPrintf()
100032d8: 10002e5c .word 0x10002e5c
# printf string
10002e4c <__func__.7235>:
10002e4c: 43535953 6c437570 6e6f436b 00676966 SYSCpuClkConfig.
10002e5c: 3d3d3d0d 45203d3d 7265746e 616d4920 .===== Enter Ima
10002e6c: 32206567 3d3d3d20 00000a3d 50535b0d ge 2 ====....[SP
10002e7c: 49204649 255d666e 78302873 0a297825 IF Inf]%s(0x%x).
10002e8c: 00000000 3d3d3d0d 45203d3d 7265746e .....===== Enter
10002e9c: 616d4920 31206567 3d3d3d20 00000a3d Image 1 ====...
10002eac: 616d490d 20326567 78302040 78383025 .Image2 @ 0x%08x
10002ebc: 0000000a 616d490d 20326567 676e656c .....Image2 leng
10002ecc: 203a6874 202c6425 67616d49 64412065 th: %d, Image Ad
10002edc: 203a7264 30257830 000a7838 206f4e0d dr: 0x%08x...No
10002eec: 67616d49 0d0a3365 00000000 616d490d Image3.......Ima
10002efc: 20336567 676e656c 203a6874 78257830 ge3 length: 0x%x
10002f0c: 6d49202c 33656761 64644120 30203a72 , Image3 Addr: 0
10002f1c: 0a782578 00000000 676d490d 69532032 x%x......Img2 Si
10002f2c: 203a6e67 202c7325 61666e49 72617453 gn: %s, InfaStar
10002f3c: 20402074 30257830 000a7838 574b5452 t @ 0x%08x..RTKW
10002f4c: 00006e69 766e490d 64696c61 616d4920 in...Invalid Ima
10002f5c: 20326567 6e676953 72757461 00000a65 ge2 Signature...
#
# arm-none-eabi-objdump -d sdk/lib/startup.o
#
sdk/lib/startup.o: file format elf32-littlearm
Disassembly of section .infra.ram.start:
00000000 <InfraStart>:
0: b508 push {r3, lr}
2: 4b15 ldr r3, [pc, #84] ; (58 <InfraStart+0x58>)
4: 681b ldr r3, [r3, #0]
6: 005b lsls r3, r3, #1
8: d422 bmi.n 50 <InfraStart+0x50>
a: 4814 ldr r0, [pc, #80] ; (5c <InfraStart+0x5c>)
c: 4a14 ldr r2, [pc, #80] ; (60 <InfraStart+0x60>)
e: 2100 movs r1, #0
10: 1a12 subs r2, r2, r0
12: 4b14 ldr r3, [pc, #80] ; (64 <InfraStart+0x64>)
14: 4798 blx r3
16: f7ff fffe bl 0 <SystemCoreClockUpdate>
1a: 4913 ldr r1, [pc, #76] ; (68 <InfraStart+0x68>)
1c: 4a13 ldr r2, [pc, #76] ; (6c <InfraStart+0x6c>)
1e: 6808 ldr r0, [r1, #0]
20: 4b13 ldr r3, [pc, #76] ; (70 <InfraStart+0x70>)
22: f020 6070 bic.w r0, r0, #251658240 ; 0xf000000
26: f040 60c0 orr.w r0, r0, #100663296 ; 0x6000000
2a: 6008 str r0, [r1, #0]
2c: 6811 ldr r1, [r2, #0]
2e: f421 6170 bic.w r1, r1, #3840 ; 0xf00
32: 6011 str r1, [r2, #0]
34: 681a ldr r2, [r3, #0]
36: f022 0218 bic.w r2, r2, #24
3a: f042 0208 orr.w r2, r2, #8
3e: 601a str r2, [r3, #0]
40: f7ff fffe bl 0 <En32KCalibration>
44: f7ff fffe bl 0 <SpicDisableRtl8195A>
48: e8bd 4008 ldmia.w sp!, {r3, lr}
4c: f7ff bffe b.w 0 <_AppStart>
50: 4b08 ldr r3, [pc, #32] ; (74 <InfraStart+0x74>)
52: 4809 ldr r0, [pc, #36] ; (78 <InfraStart+0x78>)
54: 4798 blx r3
56: e7d8 b.n a <InfraStart+0xa>
...
68: 40000020 .word 0x40000020
6c: 4000004c .word 0x4000004c
70: 40000064 .word 0x40000064
...
Disassembly of section .hal.ram.text:
00000000 <StartupHalInitPlatformLogUart>:
0: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
4: 4a2c ldr r2, [pc, #176] ; (b8 <StartupHalInitPlatformLogUart+0xb8>)
6: 4b2d ldr r3, [pc, #180] ; (bc <StartupHalInitPlatformLogUart+0xbc>)
8: 6812 ldr r2, [r2, #0]
a: 6819 ldr r1, [r3, #0]
c: 4a2c ldr r2, [pc, #176] ; (c0 <StartupHalInitPlatformLogUart+0xc0>)
e: f421 5180 bic.w r1, r1, #4096 ; 0x1000
12: 6019 str r1, [r3, #0]
14: 6819 ldr r1, [r3, #0]
16: 482b ldr r0, [pc, #172] ; (c4 <StartupHalInitPlatformLogUart+0xc4>)
18: f441 5180 orr.w r1, r1, #4096 ; 0x1000
1c: 6019 str r1, [r3, #0]
1e: 6815 ldr r5, [r2, #0]
20: f503 5337 add.w r3, r3, #11712 ; 0x2dc0
24: 2180 movs r1, #128 ; 0x80
26: 333c adds r3, #60 ; 0x3c
28: f445 5580 orr.w r5, r5, #4096 ; 0x1000
2c: 2400 movs r4, #0
2e: 6015 str r5, [r2, #0]
30: 6004 str r4, [r0, #0]
32: 6019 str r1, [r3, #0]
34: f7ff fffe bl 0 <HalGetCpuClk>
38: 4a23 ldr r2, [pc, #140] ; (c8 <StartupHalInitPlatformLogUart+0xc8>)
3a: 0880 lsrs r0, r0, #2
3c: fba2 1300 umull r1, r3, r2, r0
40: eb00 0080 add.w r0, r0, r0, lsl #2
44: 0040 lsls r0, r0, #1
46: fba2 1200 umull r1, r2, r2, r0
4a: 0c1b lsrs r3, r3, #16
4c: eb03 0183 add.w r1, r3, r3, lsl #2
50: 0049 lsls r1, r1, #1
52: ebc1 4212 rsb r2, r1, r2, lsr #16
56: 2a04 cmp r2, #4
58: bf88 it hi
5a: 3301 addhi r3, #1
5c: 4a19 ldr r2, [pc, #100] ; (c4 <StartupHalInitPlatformLogUart+0xc4>)
5e: 491b ldr r1, [pc, #108] ; (cc <StartupHalInitPlatformLogUart+0xcc>)
60: 4c1b ldr r4, [pc, #108] ; (d0 <StartupHalInitPlatformLogUart+0xd0>)
62: f8df 9054 ldr.w r9, [pc, #84] ; b8 <StartupHalInitPlatformLogUart+0xb8>
66: 4f1b ldr r7, [pc, #108] ; (d4 <StartupHalInitPlatformLogUart+0xd4>)
68: fa5f fa83 uxtb.w sl, r3
6c: ea4f 2b13 mov.w fp, r3, lsr #8
70: 4819 ldr r0, [pc, #100] ; (d8 <StartupHalInitPlatformLogUart+0xd8>)
72: 23c1 movs r3, #193 ; 0xc1
74: f04f 0800 mov.w r8, #0
78: f04f 0c03 mov.w ip, #3
7c: 2605 movs r6, #5
7e: f04f 7580 mov.w r5, #16777216 ; 0x1000000
82: f8c9 a000 str.w sl, [r9]
86: f8c2 b000 str.w fp, [r2]
8a: f8c1 8000 str.w r8, [r1]
8e: f8c1 c000 str.w ip, [r1]
92: 603b str r3, [r7, #0]
94: 6016 str r6, [r2, #0]
96: 6025 str r5, [r4, #0]
98: 68c1 ldr r1, [r0, #12]
9a: f64f 02ff movw r2, #63743 ; 0xf8ff
9e: 4b0f ldr r3, [pc, #60] ; (dc <StartupHalInitPlatformLogUart+0xdc>)
a0: 400a ands r2, r1
a2: 490f ldr r1, [pc, #60] ; (e0 <StartupHalInitPlatformLogUart+0xe0>)
a4: 4313 orrs r3, r2
a6: 24e0 movs r4, #224 ; 0xe0
a8: 60c3 str r3, [r0, #12]
aa: f44f 2200 mov.w r2, #524288 ; 0x80000
ae: f881 4313 strb.w r4, [r1, #787] ; 0x313
b2: 600a str r2, [r1, #0]
b4: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
b8: 40003000 .word 0x40003000
bc: 40000210 .word 0x40000210
c0: 40000230 .word 0x40000230
c4: 40003004 .word 0x40003004
c8: 1b4e81b5 .word 0x1b4e81b5
cc: 4000300c .word 0x4000300c
d0: 4000280c .word 0x4000280c
d4: 40003008 .word 0x40003008
d8: e000ed00 .word 0xe000ed00
dc: 05fa0300 .word 0x05fa0300
e0: e000e100 .word 0xe000e100
10001d88 <SYSCpuClkConfig>:
10001d88: 4b0c ldr r3, [pc, #48] ; (10001dbc <SYSCpuClkConfig+0x34>)
10001d8a: b510 push {r4, lr}
10001d8c: 681b ldr r3, [r3, #0]
10001d8e: 4604 mov r4, r0
10001d90: 04db lsls r3, r3, #19
10001d92: d40d bmi.n 10001db0 <SYSCpuClkConfig+0x28>
10001d94: 4620 mov r0, r4
10001d96: f001 f837 bl 10002e08 <__HalCpuClkConfig_veneer>
10001d9a: f44f 707a mov.w r0, #1000 ; 0x3e8
10001d9e: f001 f823 bl 10002de8 <__HalDelayUs_veneer>
10001da2: f7ff ff7f bl 10001ca4 <StartupHalInitPlatformLogUart>
10001da6: 4620 mov r0, r4
10001da8: e8bd 4010 ldmia.w sp!, {r4, lr}
10001dac: f000 bce4 b.w 10002778 <SpicOneBitCalibrationRtl8195A>
10001db0: 4903 ldr r1, [pc, #12] ; (10001dc0 <SYSCpuClkConfig+0x38>)
10001db2: 4622 mov r2, r4
10001db4: 4b03 ldr r3, [pc, #12] ; (10001dc4 <SYSCpuClkConfig+0x3c>)
10001db6: 4804 ldr r0, [pc, #16] ; (10001dc8 <SYSCpuClkConfig+0x40>)
10001db8: 4798 blx r3
10001dba: e7eb b.n 10001d94 <SYSCpuClkConfig+0xc>
10001dbc: 10000310 .word 0x10000310
10001dc0: 10002e4c .word 0x10002e4c
10001dc4: 0000f39d .word 0x0000f39d
10001dc8: 10002e78 .word 0x10002e78
000000e4 <SYSCpuClkConfig>:
e4: 4b0c ldr r3, [pc, #48] ; (118 <SYSCpuClkConfig+0x34>)
e6: b510 push {r4, lr}
e8: 681b ldr r3, [r3, #0]
ea: 4604 mov r4, r0
ec: 04db lsls r3, r3, #19
ee: d40d bmi.n 10c <SYSCpuClkConfig+0x28>
f0: 4620 mov r0, r4
f2: f7ff fffe bl 0 <HalCpuClkConfig>
f6: f44f 707a mov.w r0, #1000 ; 0x3e8
fa: f7ff fffe bl 0 <HalDelayUs>
fe: f7ff ff7f bl 0 <StartupHalInitPlatformLogUart>
102: 4620 mov r0, r4
104: e8bd 4010 ldmia.w sp!, {r4, lr}
108: f7ff bffe b.w 0 <SpicOneBitCalibrationRtl8195A>
10c: 4903 ldr r1, [pc, #12] ; (11c <SYSCpuClkConfig+0x38>)
10e: 4622 mov r2, r4
110: 4b03 ldr r3, [pc, #12] ; (120 <SYSCpuClkConfig+0x3c>)
112: 4804 ldr r0, [pc, #16] ; (124 <SYSCpuClkConfig+0x40>)
114: 4798 blx r3
116: e7eb b.n f0 <SYSCpuClkConfig+0xc>
...
124: 0000001c .word 0x0000001c
10001dcc <PreProcessForVendor>:
10001dcc: 4853 ldr r0, [pc, #332] ; (10001f1c <PreProcessForVendor+0x150>)
10001dce: 4a54 ldr r2, [pc, #336] ; (10001f20 <PreProcessForVendor+0x154>)
10001dd0: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
10001dd4: 4b53 ldr r3, [pc, #332] ; (10001f24 <PreProcessForVendor+0x158>)
10001dd6: 1a12 subs r2, r2, r0
10001dd8: 2100 movs r1, #0
10001dda: 4798 blx r3
10001ddc: 2100 movs r1, #0
10001dde: 2201 movs r2, #1
10001de0: 20d8 movs r0, #216 ; 0xd8
10001de2: f001 f819 bl 10002e18 <__HalPinCtrlRtl8195A_veneer>
10001de6: f44f 60fa mov.w r0, #2000 ; 0x7d0
10001dea: f001 f80d bl 10002e08 <__HalDelayUs_veneer>
10001dee: 2000 movs r0, #0
10001df0: f7ff ffca bl 10001d88 <SYSCpuClkConfig>
10001df4: 4c4c ldr r4, [pc, #304] ; (10001f28 <PreProcessForVendor+0x15c>)
10001df6: 494d ldr r1, [pc, #308] ; (10001f2c <PreProcessForVendor+0x160>)
10001df8: 4a4d ldr r2, [pc, #308] ; (10001f30 <PreProcessForVendor+0x164>)
10001dfa: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
10001dfe: 6023 str r3, [r4, #0]
10001e00: 600b str r3, [r1, #0]
10001e02: 6013 str r3, [r2, #0]
10001e04: f7ff ff4e bl 10001ca4 <StartupHalInitPlatformLogUart>
10001e08: 6823 ldr r3, [r4, #0]
10001e0a: 0058 lsls r0, r3, #1
10001e0c: d47a bmi.n 10001f04 <PreProcessForVendor+0x138>
10001e0e: 2001 movs r0, #1
10001e10: f000 fc5a bl 100026c8 <SpicFlashInitRtl8195A>
10001e14: 4b47 ldr r3, [pc, #284] ; (10001f34 <PreProcessForVendor+0x168>)
10001e16: 681b ldr r3, [r3, #0]
10001e18: 0299 lsls r1, r3, #10
10001e1a: d53f bpl.n 10001e9c <PreProcessForVendor+0xd0>
10001e1c: 4b46 ldr r3, [pc, #280] ; (10001f38 <PreProcessForVendor+0x16c>)
10001e1e: 681b ldr r3, [r3, #0]
10001e20: b29b uxth r3, r3
10001e22: 029d lsls r5, r3, #10
10001e24: b913 cbnz r3, 10001e2c <PreProcessForVendor+0x60>
10001e26: 4b45 ldr r3, [pc, #276] ; (10001f3c <PreProcessForVendor+0x170>)
10001e28: 681d ldr r5, [r3, #0]
10001e2a: 3520 adds r5, #32
10001e2c: 6823 ldr r3, [r4, #0]
10001e2e: 4e3e ldr r6, [pc, #248] ; (10001f28 <PreProcessForVendor+0x15c>)
10001e30: 005a lsls r2, r3, #1
10001e32: d456 bmi.n 10001ee2 <PreProcessForVendor+0x116>
10001e34: f105 4318 add.w r3, r5, #2550136832 ; 0x98000000
10001e38: 681e ldr r6, [r3, #0]
10001e3a: 685f ldr r7, [r3, #4]
10001e3c: 442e add r6, r5
10001e3e: f106 0010 add.w r0, r6, #16
10001e42: f105 0310 add.w r3, r5, #16
10001e46: 4283 cmp r3, r0
10001e48: d20a bcs.n 10001e60 <PreProcessForVendor+0x94>
10001e4a: f06f 010f mvn.w r1, #15
10001e4e: 1b49 subs r1, r1, r5
10001e50: 4439 add r1, r7
10001e52: f103 4218 add.w r2, r3, #2550136832 ; 0x98000000
10001e56: 6812 ldr r2, [r2, #0]
10001e58: 50ca str r2, [r1, r3]
10001e5a: 3304 adds r3, #4
10001e5c: 4283 cmp r3, r0
10001e5e: d3f8 bcc.n 10001e52 <PreProcessForVendor+0x86>
10001e60: f106 4318 add.w r3, r6, #2550136832 ; 0x98000000
10001e64: 691d ldr r5, [r3, #16]
10001e66: 695a ldr r2, [r3, #20]
10001e68: 1e6b subs r3, r5, #1
10001e6a: 3303 adds r3, #3
10001e6c: d802 bhi.n 10001e74 <PreProcessForVendor+0xa8>
10001e6e: f1b2 5f40 cmp.w r2, #805306368 ; 0x30000000
10001e72: d016 beq.n 10001ea2 <PreProcessForVendor+0xd6>
10001e74: 6823 ldr r3, [r4, #0]
10001e76: 0058 lsls r0, r3, #1
10001e78: d44c bmi.n 10001f14 <PreProcessForVendor+0x148>
10001e7a: 4d31 ldr r5, [pc, #196] ; (10001f40 <PreProcessForVendor+0x174>)
10001e7c: 4831 ldr r0, [pc, #196] ; (10001f44 <PreProcessForVendor+0x178>)
10001e7e: 4932 ldr r1, [pc, #200] ; (10001f48 <PreProcessForVendor+0x17c>)
10001e80: 4b32 ldr r3, [pc, #200] ; (10001f4c <PreProcessForVendor+0x180>)
10001e82: 4798 blx r3
10001e84: b130 cbz r0, 10001e94 <PreProcessForVendor+0xc8>
10001e86: 6823 ldr r3, [r4, #0]
10001e88: 005b lsls r3, r3, #1
10001e8a: d43f bmi.n 10001f0c <PreProcessForVendor+0x140>
10001e8c: f44f 707a mov.w r0, #1000 ; 0x3e8
10001e90: f000 ffca bl 10002e28 <__RtlConsolRom_veneer>
10001e94: 682b ldr r3, [r5, #0]
10001e96: 4798 blx r3
10001e98: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
10001e9c: f000 ff5c bl 10002d58 <SdrControllerInit>
10001ea0: e7bc b.n 10001e1c <PreProcessForVendor+0x50>
10001ea2: 6823 ldr r3, [r4, #0]
10001ea4: 0059 lsls r1, r3, #1
10001ea6: d417 bmi.n 10001ed8 <PreProcessForVendor+0x10c>
10001ea8: f106 0320 add.w r3, r6, #32
10001eac: 441d add r5, r3
10001eae: 429d cmp r5, r3
10001eb0: d908 bls.n 10001ec4 <PreProcessForVendor+0xf8>
10001eb2: 4927 ldr r1, [pc, #156] ; (10001f50 <PreProcessForVendor+0x184>)
10001eb4: 1b89 subs r1, r1, r6
10001eb6: f103 4218 add.w r2, r3, #2550136832 ; 0x98000000
10001eba: 6812 ldr r2, [r2, #0]
10001ebc: 50ca str r2, [r1, r3]
10001ebe: 3304 adds r3, #4
10001ec0: 429d cmp r5, r3
10001ec2: d8f8 bhi.n 10001eb6 <PreProcessForVendor+0xea>
10001ec4: 6823 ldr r3, [r4, #0]
10001ec6: 4d1e ldr r5, [pc, #120] ; (10001f40 <PreProcessForVendor+0x174>)
10001ec8: 005a lsls r2, r3, #1
10001eca: d5d7 bpl.n 10001e7c <PreProcessForVendor+0xb0>
10001ecc: 682a ldr r2, [r5, #0]
10001ece: 491d ldr r1, [pc, #116] ; (10001f44 <PreProcessForVendor+0x178>)
10001ed0: 4b20 ldr r3, [pc, #128] ; (10001f54 <PreProcessForVendor+0x188>)
10001ed2: 4821 ldr r0, [pc, #132] ; (10001f58 <PreProcessForVendor+0x18c>)
10001ed4: 4798 blx r3
10001ed6: e7d1 b.n 10001e7c <PreProcessForVendor+0xb0>
10001ed8: 4629 mov r1, r5
10001eda: 4b1e ldr r3, [pc, #120] ; (10001f54 <PreProcessForVendor+0x188>)
10001edc: 481f ldr r0, [pc, #124] ; (10001f5c <PreProcessForVendor+0x190>)
10001ede: 4798 blx r3
10001ee0: e7e2 b.n 10001ea8 <PreProcessForVendor+0xdc>
10001ee2: 481f ldr r0, [pc, #124] ; (10001f60 <PreProcessForVendor+0x194>)
10001ee4: 4629 mov r1, r5
10001ee6: f8df 806c ldr.w r8, [pc, #108] ; 10001f54 <PreProcessForVendor+0x188>
10001eea: 47c0 blx r8
10001eec: 6832 ldr r2, [r6, #0]
10001eee: f105 4318 add.w r3, r5, #2550136832 ; 0x98000000
10001ef2: 681e ldr r6, [r3, #0]
10001ef4: 685f ldr r7, [r3, #4]
10001ef6: 0053 lsls r3, r2, #1
10001ef8: d5a0 bpl.n 10001e3c <PreProcessForVendor+0x70>
10001efa: 4631 mov r1, r6
10001efc: 463a mov r2, r7
10001efe: 4819 ldr r0, [pc, #100] ; (10001f64 <PreProcessForVendor+0x198>)
10001f00: 47c0 blx r8
10001f02: e79b b.n 10001e3c <PreProcessForVendor+0x70>
10001f04: 4b13 ldr r3, [pc, #76] ; (10001f54 <PreProcessForVendor+0x188>)
10001f06: 4818 ldr r0, [pc, #96] ; (10001f68 <PreProcessForVendor+0x19c>)
10001f08: 4798 blx r3
10001f0a: e780 b.n 10001e0e <PreProcessForVendor+0x42>
10001f0c: 4b11 ldr r3, [pc, #68] ; (10001f54 <PreProcessForVendor+0x188>)
10001f0e: 4817 ldr r0, [pc, #92] ; (10001f6c <PreProcessForVendor+0x1a0>)
10001f10: 4798 blx r3
10001f12: e7bb b.n 10001e8c <PreProcessForVendor+0xc0>
10001f14: 4b0f ldr r3, [pc, #60] ; (10001f54 <PreProcessForVendor+0x188>)
10001f16: 4816 ldr r0, [pc, #88] ; (10001f70 <PreProcessForVendor+0x1a4>)
10001f18: 4798 blx r3
10001f1a: e7d3 b.n 10001ec4 <PreProcessForVendor+0xf8>
10001f1c: 10001c5c .word 0x10001c5c
10001f20: 10001ca4 .word 0x10001ca4
10001f24: 0000f511 .word 0x0000f511
10001f28: 10000314 .word 0x10000314
10001f2c: 10000310 .word 0x10000310
10001f30: 1000030c .word 0x1000030c
10001f34: 40000210 .word 0x40000210
10001f38: 98000018 .word 0x98000018
10001f3c: 98000010 .word 0x98000010
10001f40: 10003254 .word 0x10003254
10001f44: 10003258 .word 0x10003258
10001f48: 10002f50 .word 0x10002f50
10001f4c: 0000f6b1 .word 0x0000f6b1
10001f50: 2fffffe0 .word 0x2fffffe0
10001f54: 0000f39d .word 0x0000f39d
10001f58: 10002f2c .word 0x10002f2c
10001f5c: 10002f00 .word 0x10002f00
10001f60: 10002eb4 .word 0x10002eb4
10001f64: 10002ec8 .word 0x10002ec8
10001f68: 10002e98 .word 0x10002e98
10001f6c: 10002f58 .word 0x10002f58
10001f70: 10002ef0 .word 0x10002ef0
00000128 <PreProcessForVendor>:
128: 4853 ldr r0, [pc, #332] ; (278 <PreProcessForVendor+0x150>)
12a: 4a54 ldr r2, [pc, #336] ; (27c <PreProcessForVendor+0x154>)
12c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
130: 4b53 ldr r3, [pc, #332] ; (280 <PreProcessForVendor+0x158>)
132: 1a12 subs r2, r2, r0
134: 2100 movs r1, #0
136: 4798 blx r3
138: 2100 movs r1, #0
13a: 2201 movs r2, #1
13c: 20d8 movs r0, #216 ; 0xd8
13e: f7ff fffe bl 0 <HalPinCtrlRtl8195A>
142: f44f 60fa mov.w r0, #2000 ; 0x7d0
146: f7ff fffe bl 0 <HalDelayUs>
14a: 2000 movs r0, #0
14c: f7ff fffe bl e4 <SYSCpuClkConfig>
150: 4c4c ldr r4, [pc, #304] ; (284 <PreProcessForVendor+0x15c>)
152: 494d ldr r1, [pc, #308] ; (288 <PreProcessForVendor+0x160>)
154: 4a4d ldr r2, [pc, #308] ; (28c <PreProcessForVendor+0x164>)
156: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
15a: 6023 str r3, [r4, #0]
15c: 600b str r3, [r1, #0]
15e: 6013 str r3, [r2, #0]
160: f7ff ff4e bl 0 <StartupHalInitPlatformLogUart>
164: 6823 ldr r3, [r4, #0]
166: 0058 lsls r0, r3, #1
168: d47a bmi.n 260 <PreProcessForVendor+0x138>
16a: 2001 movs r0, #1
16c: f7ff fffe bl 0 <SpicFlashInitRtl8195A>
170: 4b47 ldr r3, [pc, #284] ; (290 <PreProcessForVendor+0x168>)
172: 681b ldr r3, [r3, #0]
174: 0299 lsls r1, r3, #10
176: d53f bpl.n 1f8 <PreProcessForVendor+0xd0>
178: 4b46 ldr r3, [pc, #280] ; (294 <PreProcessForVendor+0x16c>)
17a: 681b ldr r3, [r3, #0]
17c: b29b uxth r3, r3
17e: 029d lsls r5, r3, #10
180: b913 cbnz r3, 188 <PreProcessForVendor+0x60>
182: 4b45 ldr r3, [pc, #276] ; (298 <PreProcessForVendor+0x170>)
184: 681d ldr r5, [r3, #0]
186: 3520 adds r5, #32
188: 6823 ldr r3, [r4, #0]
18a: 4e3e ldr r6, [pc, #248] ; (284 <PreProcessForVendor+0x15c>)
18c: 005a lsls r2, r3, #1
18e: d456 bmi.n 23e <PreProcessForVendor+0x116>
190: f105 4318 add.w r3, r5, #2550136832 ; 0x98000000
194: 681e ldr r6, [r3, #0]
196: 685f ldr r7, [r3, #4]
198: 442e add r6, r5
19a: f106 0010 add.w r0, r6, #16
19e: f105 0310 add.w r3, r5, #16
1a2: 4283 cmp r3, r0
1a4: d20a bcs.n 1bc <PreProcessForVendor+0x94>
1a6: f06f 010f mvn.w r1, #15
1aa: 1b49 subs r1, r1, r5
1ac: 4439 add r1, r7
1ae: f103 4218 add.w r2, r3, #2550136832 ; 0x98000000
1b2: 6812 ldr r2, [r2, #0]
1b4: 50ca str r2, [r1, r3]
1b6: 3304 adds r3, #4
1b8: 4283 cmp r3, r0
1ba: d3f8 bcc.n 1ae <PreProcessForVendor+0x86>
1bc: f106 4318 add.w r3, r6, #2550136832 ; 0x98000000
1c0: 691d ldr r5, [r3, #16]
1c2: 695a ldr r2, [r3, #20]
1c4: 1e6b subs r3, r5, #1
1c6: 3303 adds r3, #3
1c8: d802 bhi.n 1d0 <PreProcessForVendor+0xa8>
1ca: f1b2 5f40 cmp.w r2, #805306368 ; 0x30000000
1ce: d016 beq.n 1fe <PreProcessForVendor+0xd6>
1d0: 6823 ldr r3, [r4, #0]
1d2: 0058 lsls r0, r3, #1
1d4: d44c bmi.n 270 <PreProcessForVendor+0x148>
1d6: 4d31 ldr r5, [pc, #196] ; (29c <PreProcessForVendor+0x174>)
1d8: 4831 ldr r0, [pc, #196] ; (2a0 <PreProcessForVendor+0x178>)
1da: 4932 ldr r1, [pc, #200] ; (2a4 <PreProcessForVendor+0x17c>)
1dc: 4b32 ldr r3, [pc, #200] ; (2a8 <PreProcessForVendor+0x180>)
1de: 4798 blx r3
1e0: b130 cbz r0, 1f0 <PreProcessForVendor+0xc8>
1e2: 6823 ldr r3, [r4, #0]
1e4: 005b lsls r3, r3, #1
1e6: d43f bmi.n 268 <PreProcessForVendor+0x140>
1e8: f44f 707a mov.w r0, #1000 ; 0x3e8
1ec: f7ff fffe bl 0 <RtlConsolRom>
1f0: 682b ldr r3, [r5, #0]
1f2: 4798 blx r3
1f4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
1f8: f7ff fffe bl 0 <SdrControllerInit>
1fc: e7bc b.n 178 <PreProcessForVendor+0x50>
1fe: 6823 ldr r3, [r4, #0]
200: 0059 lsls r1, r3, #1
202: d417 bmi.n 234 <PreProcessForVendor+0x10c>
204: f106 0320 add.w r3, r6, #32
208: 441d add r5, r3
20a: 429d cmp r5, r3
20c: d908 bls.n 220 <PreProcessForVendor+0xf8>
20e: 4927 ldr r1, [pc, #156] ; (2ac <PreProcessForVendor+0x184>)
210: 1b89 subs r1, r1, r6
212: f103 4218 add.w r2, r3, #2550136832 ; 0x98000000
216: 6812 ldr r2, [r2, #0]
218: 50ca str r2, [r1, r3]
21a: 3304 adds r3, #4
21c: 429d cmp r5, r3
21e: d8f8 bhi.n 212 <PreProcessForVendor+0xea>
220: 6823 ldr r3, [r4, #0]
222: 4d1e ldr r5, [pc, #120] ; (29c <PreProcessForVendor+0x174>)
224: 005a lsls r2, r3, #1
226: d5d7 bpl.n 1d8 <PreProcessForVendor+0xb0>
228: 682a ldr r2, [r5, #0]
22a: 491d ldr r1, [pc, #116] ; (2a0 <PreProcessForVendor+0x178>)
22c: 4b20 ldr r3, [pc, #128] ; (2b0 <PreProcessForVendor+0x188>)
22e: 4821 ldr r0, [pc, #132] ; (2b4 <PreProcessForVendor+0x18c>)
230: 4798 blx r3
232: e7d1 b.n 1d8 <PreProcessForVendor+0xb0>
234: 4629 mov r1, r5
236: 4b1e ldr r3, [pc, #120] ; (2b0 <PreProcessForVendor+0x188>)
238: 481f ldr r0, [pc, #124] ; (2b8 <PreProcessForVendor+0x190>)
23a: 4798 blx r3
23c: e7e2 b.n 204 <PreProcessForVendor+0xdc>
23e: 481f ldr r0, [pc, #124] ; (2bc <PreProcessForVendor+0x194>)
240: 4629 mov r1, r5
242: f8df 806c ldr.w r8, [pc, #108] ; 2b0 <PreProcessForVendor+0x188>
246: 47c0 blx r8
248: 6832 ldr r2, [r6, #0]
24a: f105 4318 add.w r3, r5, #2550136832 ; 0x98000000
24e: 681e ldr r6, [r3, #0]
250: 685f ldr r7, [r3, #4]
252: 0053 lsls r3, r2, #1
254: d5a0 bpl.n 198 <PreProcessForVendor+0x70>
256: 4631 mov r1, r6
258: 463a mov r2, r7
25a: 4819 ldr r0, [pc, #100] ; (2c0 <PreProcessForVendor+0x198>)
25c: 47c0 blx r8
25e: e79b b.n 198 <PreProcessForVendor+0x70>
260: 4b13 ldr r3, [pc, #76] ; (2b0 <PreProcessForVendor+0x188>)
262: 4818 ldr r0, [pc, #96] ; (2c4 <PreProcessForVendor+0x19c>)
264: 4798 blx r3
266: e780 b.n 16a <PreProcessForVendor+0x42>
268: 4b11 ldr r3, [pc, #68] ; (2b0 <PreProcessForVendor+0x188>)
26a: 4817 ldr r0, [pc, #92] ; (2c8 <PreProcessForVendor+0x1a0>)
26c: 4798 blx r3
26e: e7bb b.n 1e8 <PreProcessForVendor+0xc0>
270: 4b0f ldr r3, [pc, #60] ; (2b0 <PreProcessForVendor+0x188>)
272: 4816 ldr r0, [pc, #88] ; (2cc <PreProcessForVendor+0x1a4>)
274: 4798 blx r3
276: e7d3 b.n 220 <PreProcessForVendor+0xf8>
...
290: 40000210 .word 0x40000210
294: 98000018 .word 0x98000018
298: 98000010 .word 0x98000010
...
2a4: 000000ec .word 0x000000ec
2a8: 00000000 .word 0x00000000
2ac: 2fffffe0 .word 0x2fffffe0
2b0: 00000000 .word 0x00000000
2b4: 000000c8 .word 0x000000c8
2b8: 0000009c .word 0x0000009c
2bc: 00000050 .word 0x00000050
2c0: 00000064 .word 0x00000064
2c4: 00000034 .word 0x00000034
2c8: 000000f4 .word 0x000000f4
2cc: 0000008c .word 0x0000008c
Disassembly of section .text.SYSPlatformInit:
00000000 <SYSPlatformInit>:
0: 4909 ldr r1, [pc, #36] ; (28 <SYSPlatformInit+0x28>)
2: 4a0a ldr r2, [pc, #40] ; (2c <SYSPlatformInit+0x2c>)
4: 6808 ldr r0, [r1, #0]
6: 4b0a ldr r3, [pc, #40] ; (30 <SYSPlatformInit+0x30>)
8: f020 6070 bic.w r0, r0, #251658240 ; 0xf000000
c: f040 60c0 orr.w r0, r0, #100663296 ; 0x6000000
10: 6008 str r0, [r1, #0]
12: 6811 ldr r1, [r2, #0]
14: f421 6170 bic.w r1, r1, #3840 ; 0xf00
18: 6011 str r1, [r2, #0]
1a: 681a ldr r2, [r3, #0]
1c: f022 0218 bic.w r2, r2, #24
20: f042 0208 orr.w r2, r2, #8
24: 601a str r2, [r3, #0]
26: 4770 bx lr
28: 40000020 .word 0x40000020
2c: 4000004c .word 0x4000004c
30: 40000064 .word 0x40000064
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment