A10 boot overview
A10 is a quite ‘closed chip’. There is a brom in the chip, which can not be modified. This brom will load program from external storage(nand, mmc), which is called boot0 in allwinner. Brom will check the header of boot0, and get hardware information from boot0. The hardware information is in a config file called sys_config.fex. A pc tools will read the config file, and write the hardware information to the head of boot0. After boot0 is booted up, it will continue to load another loader boot1, boot1 init all other hardware and provides hardware abstracts and services. According to the boot OS, boot1 loads an arm elf program, boot.axf. For booting linux, boot.axf loads the u-boot and jumps to the u-boot. Then u-boot will take over.
So, the whole boot process is: brom -> boot0 -> boot1 -> boot.axf -> u-boot -> kernel
BROM
Brom in A10 is at the address 0xFFFF0000, After power up, arm core will fetch the first instruction at 0xFFFF0000 and execute it. The brom code contains two parts, one is the normal boot, the other is a block of code called FEL, which is mainly a USB communication program with host pc. Steps of brom boot:
- Check the status of one pin (the bsp pin), if the pin is low, jump to FEL, waiting host command through usb, usually communicate with a pc tool livesuite to update the firmware in nand flash. This pin can be accessible by a button marked as Recovery or RECV on tablets.
- Load 4k data from sdcard slot 0 beginning at offset 8k to the internal sram, check if the data has a magic string, if so, it’s a boot0 head. Get boot0 size from the boot0 head, and load the whole boot0. If the checksum of boot0 is ok, will jump to boot0. Any of above is wrong, will jump to FEL.
- Similar to 2, load boot0 from nand flash. First load the first page of nand flash, check the magic string, get the boot0 size, load the whole boot0, and jump to boot0.
- Almost the same as step 2, except that boot0 is loaded from sdcard slot 2.
boot.axf
The closed-source boot.axf bootloader that is included by default on the Android firmwares reads its configuration from the first NAND partition (boot). It can boot both u-boot and a stripped Linux kernel called bImage by the build scripts, which can be obtained by running:
<code>arm-linux-gnueabi-objcopy -R .note.gnu.build-id -S -O binary vmlinux output/bImage</code>
The default structure of a BOOT partition is the following one:
BROM: ffff4000: ea000006 b start
ffff4004: "eGON.BRM ",0
ffff4010: "110011001623",0
start:
ffff4020: e30004e2 movw r0, #0x4e2
ffff4024: e2500001 subs r0, r0, #0x1
ffff4028: 1afffffd bne 0xffff4024
ffff402c: e10f0000 mrs r0, CPSR
ffff4030: e3c0001f bic r0, r0, #0x1f
ffff4034: e3800013 orr r0, r0, #0x13
ffff4038: e3800040 orr r0, r0, #0x40
ffff403c: e3c00c02 bic r0, r0, #0x200
ffff4040: e121f000 msr CPSR_c, r0
ffff4044: ee110f10 mrc 15, 0, r0, cr1, cr0, {0}
ffff4048: e3c00005 bic r0, r0, #0x5
ffff404c: e3c00b06 bic r0, r0, #0x1800
ffff4050: ee010f10 mcr 15, 0, r0, cr1, cr0, {0}
ffff4054: e59f1050 ldr r1, =0x01c20c94
ffff4058: e5912000 ldr r2, [r1]
ffff405c: e3c22001 bic r2, r2, #0x1
ffff4060: e5812000 str r2, [r1]
ffff4064: e59f1044 ldr r1, =0x01c20000
ffff4068: e5912054 ldr r2, [r1, #0x54] ; # 0x01c20054 = CCM 0x54
ffff406c: e3003333 movw r3, #0x333
ffff4070: e1c22003 bic r2, r2, r3
ffff4074: e3a03000 mov r3, #0x0
ffff4078: e1822003 orr r2, r2, r3
ffff407c: e5812054 str r2, [r1, #0x54] ; # 0x01c20054
ffff4080: e5912060 ldr r2, [r1, #0x60] ; # 0x01c20060
ffff4084: e3a03040 mov r3, #0x40
ffff4088: e1822003 orr r2, r2, r3
ffff408c: e5812060 str r2, [r1, #0x60] ; # 0x01c20060
ffff4090: e5912068 ldr r2, [r1, #0x68] ; # 0x01c20068
ffff4094: e3a03020 mov r3, #0x20
ffff4098: e1822003 orr r2, r2, r3
ffff409c: e5812068 str r2, [r1, #0x68] ; # 0x01c20068
ffff40a0: e3a0d902 mov sp, #0x8000
ffff40a4: eb000002 bl boot
ffff40a8: eafffffe b 0xffff40a8
boot:
ffff40b4: e92d4010 push {r4, lr}
ffff40b8: eb0008b1 bl check_uboot
ffff40bc: e1a04000 mov r4, r0
ffff40c0: e3540000 cmp r4, #0x0
ffff40c4: 0a000000 beq .try_boot_MMC0
ffff40c8: ea000016 b .boot_fel
.try_boot_MMC0:
ffff40cc: e3a00000 mov r0, #0x0
ffff40d0: eb0003fa bl load_from_mmc
ffff40d4: e1a04000 mov r4, r0
ffff40d8: e3540000 cmp r4, #0x0
ffff40dc: 1a000000 bne .try_boot_B
ffff40e0: ea000013 b .boot
.try_boot_B:
ffff40e4: eb0004c9 bl f_5410 ; NAND?
ffff40e8: e1a04000 mov r4, r0
ffff40ec: e3540000 cmp r4, #0x0
ffff40f0: 1a000000 bne .try_boot_MMC2
ffff40f4: ea00000e b .boot
.try_boot_MMC2:
ffff40f8: e3a00002 mov r0, #0x2
ffff40fc: eb0003ef bl load_from_mmc
ffff4100: e1a04000 mov r4, r0
ffff4104: e3540000 cmp r4, #0x0
ffff4108: 1a000000 bne .try_boot_D
ffff410c: ea000008 b .boot
.try_boot_D:
ffff4110: eb0006e6 bl f_5cb0 ; SPI?
ffff4114: e1a04000 mov r4, r0
ffff4118: e3540000 cmp r4, #0x0
ffff411c: 1a000000 bne .none_found
ffff4120: ea000003 b .boot
.none_found:
ffff4124: e320f000 nop {0}
.boot_fel:
ffff4128: e59f0010 ldr r0, =0xffff0020
ffff412c: eb0008ca bl call_r0
ffff4130: e320f000 nop {0}
.boot
ffff4134: e3a00000 mov r0, #0x0
ffff4138: eb0008c7 bl call_r0
ffff413c: e8bd8010 pop {r4, pc}
f_4144:
ffff4144: e92d401f push {r0, r1, r2, r3, r4, lr}
ffff4148: e1a04000 mov r4, r0
ffff414c: e1a0000d mov r0, sp
ffff4150: e3a01000 mov r1, #0x0
ffff4154: e1a02001 mov r2, r1
ffff4158: e1a03001 mov r3, r1
ffff415c: e1a0c001 mov ip, r1
ffff4160: e880100e stm r0, {r1, r2, r3, ip}
ffff4164: e3a00000 mov r0, #0x0
ffff4168: e58d0000 str r0, [sp]
ffff416c: e58d0004 str r0, [sp, #0x4]
ffff4170: e58d0008 str r0, [sp, #0x8]
ffff4174: e59d000c ldr r0, [sp, #0xc]
ffff4178: e3c0003f bic r0, r0, #0x3f
ffff417c: e58d000c str r0, [sp, #0xc]
ffff4180: e59d000c ldr r0, [sp, #0xc]
ffff4184: e3c00b02 bic r0, r0, #0x800
ffff4188: e2800b02 add r0, r0, #0x800
ffff418c: e58d000c str r0, [sp, #0xc]
ffff4190: e1a02004 mov r2, r4
ffff4194: e1a0000d mov r0, sp
ffff4198: eb000311 bl f_4de4
ffff419c: e3500000 cmp r0, #0x0
ffff41a0: 0a000002 beq 0xffff41b0
ffff41a4: e3e00000 mvn r0, #0x0
ffff41a8: e28dd010 add sp, sp, #0x10
ffff41ac: e8bd8010 pop {r4, pc}
ffff41b0: e3a00000 mov r0, #0x0
ffff41b4: eafffffb b 0xffff41a8
f_41b8:
ffff41b8: e92d4030 push {r4, r5, lr}
ffff41bc: e24dd094 sub sp, sp, #0x94
ffff41c0: e1a04000 mov r4, r0
ffff41c4: e1a05001 mov r5, r1
ffff41c8: e28d0084 add r0, sp, #0x84
ffff41cc: e3a01000 mov r1, #0x0
ffff41d0: e1a02001 mov r2, r1
ffff41d4: e1a03001 mov r3, r1
ffff41d8: e1a0c001 mov ip, r1
ffff41dc: e880100e stm r0, {r1, r2, r3, ip}
ffff41e0: e3a00000 mov r0, #0x0
ffff41e4: e58d0084 str r0, [sp, #0x84]
ffff41e8: e3a00002 mov r0, #0x2
ffff41ec: e58d0088 str r0, [sp, #0x88]
ffff41f0: e5940008 ldr r0, [r4, #0x8]
ffff41f4: e1a00800 lsl r0, r0, #0x10
ffff41f8: e58d008c str r0, [sp, #0x8c]
ffff41fc: e59d0090 ldr r0, [sp, #0x90]
ffff4200: e3c0003f bic r0, r0, #0x3f
ffff4204: e2800007 add r0, r0, #0x7
ffff4208: e58d0090 str r0, [sp, #0x90]
ffff420c: e59d0090 ldr r0, [sp, #0x90]
ffff4210: e3c00040 bic r0, r0, #0x40
ffff4214: e58d0090 str r0, [sp, #0x90]
ffff4218: e59d0090 ldr r0, [sp, #0x90]
ffff421c: e3c00c01 bic r0, r0, #0x100
ffff4220: e2800c01 add r0, r0, #0x100
ffff4224: e58d0090 str r0, [sp, #0x90]
ffff4228: e1a02005 mov r2, r5
ffff422c: e28d1004 add r1, sp, #0x4
ffff4230: e28d0084 add r0, sp, #0x84
ffff4234: eb0002ea bl f_4de4
ffff4238: e3500000 cmp r0, #0x0
ffff423c: 0a000002 beq 0xffff424c
ffff4240: e3e00000 mvn r0, #0x0
ffff4244: e28dd094 add sp, sp, #0x94
ffff4248: e8bd8030 pop {r4, r5, pc}
ffff424c: e3a00000 mov r0, #0x0
ffff4250: eafffffb b 0xffff4244
f_4254:
ffff4254: e92d4030 push {r4, r5, lr}
ffff4258: e24dd094 sub sp, sp, #0x94
ffff425c: e1a04000 mov r4, r0
ffff4260: e1a05001 mov r5, r1
ffff4264: e28d0084 add r0, sp, #0x84
ffff4268: e3a01000 mov r1, #0x0
ffff426c: e1a02001 mov r2, r1
ffff4270: e1a03001 mov r3, r1
ffff4274: e1a0c001 mov ip, r1
ffff4278: e880100e stm r0, {r1, r2, r3, ip}
ffff427c: e1a00005 mov r0, r5
ffff4280: ebffffaf bl f_4144
ffff4284: e3500000 cmp r0, #0x0
ffff4288: 0a000002 beq 0xffff4298
ffff428c: e3e00000 mvn r0, #0x0
ffff4290: e28dd094 add sp, sp, #0x94
ffff4294: e8bd8030 pop {r4, r5, pc}
ffff4298: e3a00000 mov r0, #0x0
ffff429c: e58d0084 str r0, [sp, #0x84]
ffff42a0: e3a00001 mov r0, #0x1
ffff42a4: e58d0088 str r0, [sp, #0x88]
ffff42a8: e30001aa movw r0, #0x1aa
ffff42ac: e58d008c str r0, [sp, #0x8c]
ffff42b0: e59d0090 ldr r0, [sp, #0x90]
ffff42b4: e3c0003f bic r0, r0, #0x3f
ffff42b8: e2800008 add r0, r0, #0x8
ffff42bc: e58d0090 str r0, [sp, #0x90]
ffff42c0: e1a02005 mov r2, r5
ffff42c4: e28d1004 add r1, sp, #0x4
ffff42c8: e28d0084 add r0, sp, #0x84
ffff42cc: eb0002c4 bl f_4de4
ffff42d0: e3500000 cmp r0, #0x0
ffff42d4: 1a000008 bne 0xffff42fc
ffff42d8: e59d0004 ldr r0, [sp, #0x4]
ffff42dc: e7df061f bfc r0, #0xc, #0x14
ffff42e0: e30011aa movw r1, #0x1aa
ffff42e4: e1500001 cmp r0, r1
ffff42e8: 1a000003 bne 0xffff42fc
ffff42ec: e3a00001 mov r0, #0x1
ffff42f0: e5840004 str r0, [r4, #0x4]
ffff42f4: e3a00000 mov r0, #0x0
ffff42f8: eaffffe4 b 0xffff4290
ffff42fc: e3a00001 mov r0, #0x1
ffff4300: e58d0084 str r0, [sp, #0x84]
ffff4304: e3a00002 mov r0, #0x2
ffff4308: e58d0088 str r0, [sp, #0x88]
ffff430c: e3a00000 mov r0, #0x0
ffff4310: e58d008c str r0, [sp, #0x8c]
ffff4314: e59d0090 ldr r0, [sp, #0x90]
ffff4318: e3c0003f bic r0, r0, #0x3f
ffff431c: e2800037 add r0, r0, #0x37
ffff4320: e58d0090 str r0, [sp, #0x90]
ffff4324: e1a02005 mov r2, r5
ffff4328: e28d1004 add r1, sp, #0x4
ffff432c: e28d0084 add r0, sp, #0x84
ffff4330: eb0002ab bl f_4de4
ffff4334: e3500000 cmp r0, #0x0
ffff4338: 1a000011 bne 0xffff4384
ffff433c: e3a00001 mov r0, #0x1
ffff4340: e58d0088 str r0, [sp, #0x88]
ffff4344: e59f07b8 ldr r0, =0x40ff0000
ffff4348: e58d008c str r0, [sp, #0x8c]
ffff434c: e59d0090 ldr r0, [sp, #0x90]
ffff4350: e3c0003f bic r0, r0, #0x3f
ffff4354: e2800029 add r0, r0, #0x29
ffff4358: e58d0090 str r0, [sp, #0x90]
ffff435c: e1a02005 mov r2, r5
ffff4360: e28d1004 add r1, sp, #0x4
ffff4364: e28d0084 add r0, sp, #0x84
ffff4368: eb00029d bl f_4de4
ffff436c: e3500000 cmp r0, #0x0
ffff4370: 1a000003 bne 0xffff4384
ffff4374: e3a00001 mov r0, #0x1
ffff4378: e5840004 str r0, [r4, #0x4]
ffff437c: e3a00000 mov r0, #0x0
ffff4380: eaffffc2 b 0xffff4290
ffff4384: e3a00002 mov r0, #0x2
ffff4388: e5840004 str r0, [r4, #0x4]
ffff438c: e3a00000 mov r0, #0x0
ffff4390: eaffffbe b 0xffff4290
f_4394:
ffff4394: e92d41f0 push {r4, r5, r6, r7, r8, lr}
ffff4398: e24dd090 sub sp, sp, #0x90
ffff439c: e1a04000 mov r4, r0
ffff43a0: e1a05001 mov r5, r1
ffff43a4: e3a07000 mov r7, #0x0
ffff43a8: e3a080c8 mov r8, #0xc8
ffff43ac: e28d0080 add r0, sp, #0x80
ffff43b0: e3a01000 mov r1, #0x0
ffff43b4: e1a02001 mov r2, r1
ffff43b8: e1a03001 mov r3, r1
ffff43bc: e1a0c001 mov ip, r1
ffff43c0: e880100e stm r0, {r1, r2, r3, ip}
ffff43c4: e1a00005 mov r0, r5
ffff43c8: ebffff5d bl f_4144
ffff43cc: e3500000 cmp r0, #0x0
ffff43d0: 0a000002 beq 0xffff43e0
ffff43d4: e3e00000 mvn r0, #0x0
ffff43d8: e28dd090 add sp, sp, #0x90
ffff43dc: e8bd81f0 pop {r4, r5, r6, r7, r8, pc}
ffff43e0: e28d0080 add r0, sp, #0x80
ffff43e4: e3a01000 mov r1, #0x0
ffff43e8: e1a02001 mov r2, r1
ffff43ec: e1a03001 mov r3, r1
ffff43f0: e1a0c001 mov ip, r1
ffff43f4: e880100e stm r0, {r1, r2, r3, ip}
ffff43f8: e3a00000 mov r0, #0x0
ffff43fc: e58d0080 str r0, [sp, #0x80]
ffff4400: e3a00001 mov r0, #0x1
ffff4404: e58d0084 str r0, [sp, #0x84]
ffff4408: e30001aa movw r0, #0x1aa
ffff440c: e58d0088 str r0, [sp, #0x88]
ffff4410: e59d008c ldr r0, [sp, #0x8c]
ffff4414: e3c0003f bic r0, r0, #0x3f
ffff4418: e2800008 add r0, r0, #0x8
ffff441c: e58d008c str r0, [sp, #0x8c]
ffff4420: e1a02005 mov r2, r5
ffff4424: e1a0100d mov r1, sp
ffff4428: e28d0080 add r0, sp, #0x80
ffff442c: eb00026c bl f_4de4
ffff4430: e3500000 cmp r0, #0x0
ffff4434: 1a000005 bne 0xffff4450
ffff4438: e59d0000 ldr r0, [sp]
ffff443c: e7df061f bfc r0, #0xc, #0x14
ffff4440: e30011aa movw r1, #0x1aa
ffff4444: e1500001 cmp r0, r1
ffff4448: 1a000000 bne 0xffff4450
ffff444c: e3a07001 mov r7, #0x1
ffff4450: ea000043 b 0xffff4564
ffff4454: e3580000 cmp r8, #0x0
ffff4458: ca000001 bgt 0xffff4464
ffff445c: e3e00000 mvn r0, #0x0
ffff4460: eaffffdc b 0xffff43d8
ffff4464: e2488001 sub r8, r8, #0x1
ffff4468: e28d0080 add r0, sp, #0x80
ffff446c: e3a01000 mov r1, #0x0
ffff4470: e1a02001 mov r2, r1
ffff4474: e1a03001 mov r3, r1
ffff4478: e1a0c001 mov ip, r1
ffff447c: e880100e stm r0, {r1, r2, r3, ip}
ffff4480: e3a00001 mov r0, #0x1
ffff4484: e58d0080 str r0, [sp, #0x80]
ffff4488: e3a00002 mov r0, #0x2
ffff448c: e58d0084 str r0, [sp, #0x84]
ffff4490: e3a00000 mov r0, #0x0
ffff4494: e58d0088 str r0, [sp, #0x88]
ffff4498: e59d008c ldr r0, [sp, #0x8c]
ffff449c: e3c0003f bic r0, r0, #0x3f
ffff44a0: e2800037 add r0, r0, #0x37
ffff44a4: e58d008c str r0, [sp, #0x8c]
ffff44a8: e1a02005 mov r2, r5
ffff44ac: e1a0100d mov r1, sp
ffff44b0: e28d0080 add r0, sp, #0x80
ffff44b4: eb00024a bl f_4de4
ffff44b8: e3500000 cmp r0, #0x0
ffff44bc: 0a000001 beq 0xffff44c8
ffff44c0: e3e00000 mvn r0, #0x0
ffff44c4: eaffffc3 b 0xffff43d8
ffff44c8: e3a00001 mov r0, #0x1
ffff44cc: e58d0084 str r0, [sp, #0x84]
ffff44d0: e3570000 cmp r7, #0x0
ffff44d4: 0a000002 beq 0xffff44e4
ffff44d8: e59d0088 ldr r0, [sp, #0x88]
ffff44dc: e3800101 orr r0, r0, #0x40000000
ffff44e0: e58d0088 str r0, [sp, #0x88]
ffff44e4: e59d0088 ldr r0, [sp, #0x88]
ffff44e8: e380073f orr r0, r0, #0xfc0000
ffff44ec: e58d0088 str r0, [sp, #0x88]
ffff44f0: e59d008c ldr r0, [sp, #0x8c]
ffff44f4: e3c0003f bic r0, r0, #0x3f
ffff44f8: e2800029 add r0, r0, #0x29
ffff44fc: e58d008c str r0, [sp, #0x8c]
ffff4500: e1a02005 mov r2, r5
ffff4504: e1a0100d mov r1, sp
ffff4508: e28d0080 add r0, sp, #0x80
ffff450c: eb000234 bl f_4de4
ffff4510: e3500000 cmp r0, #0x0
ffff4514: 0a000001 beq 0xffff4520
ffff4518: e3e00000 mvn r0, #0x0
ffff451c: eaffffad b 0xffff43d8
ffff4520: e59d0000 ldr r0, [sp]
ffff4524: e200073f and r0, r0, #0xfc0000
ffff4528: e350073f cmp r0, #0xfc0000
ffff452c: 0a000001 beq 0xffff4538
ffff4530: e3e00000 mvn r0, #0x0
ffff4534: eaffffa7 b 0xffff43d8
ffff4538: e3a06000 mov r6, #0x0
ffff453c: e320f000 nop {0}
ffff4540: e1a00006 mov r0, r6
ffff4544: e2866001 add r6, r6, #0x1
ffff4548: e30014e2 movw r1, #0x4e2
ffff454c: e1500001 cmp r0, r1
ffff4550: 3afffffa bcc 0xffff4540
ffff4554: e59d0000 ldr r0, [sp]
ffff4558: e3100102 tst r0, #-0x80000000 ; 0x80000000
ffff455c: 0a000000 beq 0xffff4564
ffff4560: ea000000 b 0xffff4568
ffff4564: eaffffba b 0xffff4454
ffff4568: e320f000 nop {0}
ffff456c: e3570000 cmp r7, #0x0
ffff4570: 0a000005 beq 0xffff458c
ffff4574: e59d0000 ldr r0, [sp]
ffff4578: e3100101 tst r0, #0x40000000
ffff457c: 0a000002 beq 0xffff458c
ffff4580: e5940004 ldr r0, [r4, #0x4]
ffff4584: e3800020 orr r0, r0, #0x20
ffff4588: e5840004 str r0, [r4, #0x4]
ffff458c: e3a00000 mov r0, #0x0
ffff4590: eaffff90 b 0xffff43d8
f_4594:
ffff4594: e92d40f0 push {r4, r5, r6, r7, lr}
ffff4598: e24dd094 sub sp, sp, #0x94
ffff459c: e1a04000 mov r4, r0
ffff45a0: e1a05001 mov r5, r1
ffff45a4: e3a070c8 mov r7, #0xc8
ffff45a8: e28d0084 add r0, sp, #0x84
ffff45ac: e3a01000 mov r1, #0x0
ffff45b0: e1a02001 mov r2, r1
ffff45b4: e1a03001 mov r3, r1
ffff45b8: e1a0c001 mov ip, r1
ffff45bc: e880100e stm r0, {r1, r2, r3, ip}
ffff45c0: e1a00005 mov r0, r5
ffff45c4: ebfffede bl f_4144
ffff45c8: e3500000 cmp r0, #0x0
ffff45cc: 0a000002 beq 0xffff45dc
ffff45d0: e3e00000 mvn r0, #0x0
ffff45d4: e28dd094 add sp, sp, #0x94
ffff45d8: e8bd80f0 pop {r4, r5, r6, r7, pc}
ffff45dc: e3a00002 mov r0, #0x2
ffff45e0: e58d0084 str r0, [sp, #0x84]
ffff45e4: e3a00001 mov r0, #0x1
ffff45e8: e58d0088 str r0, [sp, #0x88]
ffff45ec: e59f0514 ldr r0, =0x40ff8000
ffff45f0: e58d008c str r0, [sp, #0x8c]
ffff45f4: e59d0090 ldr r0, [sp, #0x90]
ffff45f8: e3c0003f bic r0, r0, #0x3f
ffff45fc: e2800001 add r0, r0, #0x1
ffff4600: e58d0090 str r0, [sp, #0x90]
ffff4604: ea00001e b 0xffff4684
ffff4608: e3570000 cmp r7, #0x0
ffff460c: ca000001 bgt 0xffff4618
ffff4610: e3e00000 mvn r0, #0x0
ffff4614: eaffffee b 0xffff45d4
ffff4618: e2477001 sub r7, r7, #0x1
ffff461c: e1a02005 mov r2, r5
ffff4620: e28d1004 add r1, sp, #0x4
ffff4624: e28d0084 add r0, sp, #0x84
ffff4628: eb0001ed bl f_4de4
ffff462c: e3500000 cmp r0, #0x0
ffff4630: 0a000001 beq 0xffff463c
ffff4634: e3e00000 mvn r0, #0x0
ffff4638: eaffffe5 b 0xffff45d4
ffff463c: e59d0004 ldr r0, [sp, #0x4]
ffff4640: e59f14c4 ldr r1, =0x00ff8000
ffff4644: e0000001 and r0, r0, r1
ffff4648: e1500001 cmp r0, r1
ffff464c: 0a000001 beq 0xffff4658
ffff4650: e3e00000 mvn r0, #0x0
ffff4654: eaffffde b 0xffff45d4
ffff4658: e59d0004 ldr r0, [sp, #0x4]
ffff465c: e3100102 tst r0, #-0x80000000 ; 0x80000000
ffff4660: 0a000000 beq 0xffff4668
ffff4664: ea000007 b 0xffff4688
ffff4668: e3a06000 mov r6, #0x0
ffff466c: e320f000 nop {0}
ffff4670: e1a00006 mov r0, r6
ffff4674: e2866001 add r6, r6, #0x1
ffff4678: e30014e2 movw r1, #0x4e2
ffff467c: e1500001 cmp r0, r1
ffff4680: 3afffffa bcc 0xffff4670
ffff4684: eaffffdf b 0xffff4608
ffff4688: e320f000 nop {0}
ffff468c: e59d0004 ldr r0, [sp, #0x4]
ffff4690: e3100101 tst r0, #0x40000000
ffff4694: 0a000002 beq 0xffff46a4
ffff4698: e5940004 ldr r0, [r4, #0x4]
ffff469c: e3800020 orr r0, r0, #0x20
ffff46a0: e5840004 str r0, [r4, #0x4]
ffff46a4: e3a00000 mov r0, #0x0
ffff46a8: eaffffc9 b 0xffff45d4
f_46ac:
ffff46ac: e92d4010 push {r4, lr}
ffff46b0: e24dd090 sub sp, sp, #0x90
ffff46b4: e1a04000 mov r4, r0
ffff46b8: e28d0080 add r0, sp, #0x80
ffff46bc: e3a01000 mov r1, #0x0
ffff46c0: e1a02001 mov r2, r1
ffff46c4: e1a03001 mov r3, r1
ffff46c8: e1a0c001 mov ip, r1
ffff46cc: e880100e stm r0, {r1, r2, r3, ip}
ffff46d0: e3a00000 mov r0, #0x0
ffff46d4: e58d0080 str r0, [sp, #0x80]
ffff46d8: e3a00001 mov r0, #0x1
ffff46dc: e58d0084 str r0, [sp, #0x84]
ffff46e0: e3a00000 mov r0, #0x0
ffff46e4: e58d0088 str r0, [sp, #0x88]
ffff46e8: e59d008c ldr r0, [sp, #0x8c]
ffff46ec: e3c0003f bic r0, r0, #0x3f
ffff46f0: e2800002 add r0, r0, #0x2
ffff46f4: e58d008c str r0, [sp, #0x8c]
ffff46f8: e59d008c ldr r0, [sp, #0x8c]
ffff46fc: e3c00040 bic r0, r0, #0x40
ffff4700: e2800040 add r0, r0, #0x40
ffff4704: e58d008c str r0, [sp, #0x8c]
ffff4708: e1a02004 mov r2, r4
ffff470c: e1a0100d mov r1, sp
ffff4710: e28d0080 add r0, sp, #0x80
ffff4714: eb0001b2 bl f_4de4
ffff4718: e3500000 cmp r0, #0x0
ffff471c: 0a000002 beq 0xffff472c
ffff4720: e3e00000 mvn r0, #0x0
ffff4724: e28dd090 add sp, sp, #0x90
ffff4728: e8bd8010 pop {r4, pc}
ffff472c: e3a00000 mov r0, #0x0
ffff4730: eafffffb b 0xffff4724
f_4734:
ffff4734: e92d4030 push {r4, r5, lr}
ffff4738: e24dd094 sub sp, sp, #0x94
ffff473c: e1a04000 mov r4, r0
ffff4740: e1a05001 mov r5, r1
ffff4744: e28d0084 add r0, sp, #0x84
ffff4748: e3a01000 mov r1, #0x0
ffff474c: e1a02001 mov r2, r1
ffff4750: e1a03001 mov r3, r1
ffff4754: e1a0c001 mov ip, r1
ffff4758: e880100e stm r0, {r1, r2, r3, ip}
ffff475c: e3a00000 mov r0, #0x0
ffff4760: e58d0084 str r0, [sp, #0x84]
ffff4764: e3a00001 mov r0, #0x1
ffff4768: e58d0088 str r0, [sp, #0x88]
ffff476c: e3a00000 mov r0, #0x0
ffff4770: e58d008c str r0, [sp, #0x8c]
ffff4774: e59d0090 ldr r0, [sp, #0x90]
ffff4778: e3c0003f bic r0, r0, #0x3f
ffff477c: e2800003 add r0, r0, #0x3
ffff4780: e58d0090 str r0, [sp, #0x90]
ffff4784: e59d0090 ldr r0, [sp, #0x90]
ffff4788: e3c00040 bic r0, r0, #0x40
ffff478c: e58d0090 str r0, [sp, #0x90]
ffff4790: e59d0090 ldr r0, [sp, #0x90]
ffff4794: e3c00c01 bic r0, r0, #0x100
ffff4798: e2800c01 add r0, r0, #0x100
ffff479c: e58d0090 str r0, [sp, #0x90]
ffff47a0: e1a02005 mov r2, r5
ffff47a4: e28d1004 add r1, sp, #0x4
ffff47a8: e28d0084 add r0, sp, #0x84
ffff47ac: eb00018c bl f_4de4
ffff47b0: e3500000 cmp r0, #0x0
ffff47b4: 0a000002 beq 0xffff47c4
ffff47b8: e3e00000 mvn r0, #0x0
ffff47bc: e28dd094 add sp, sp, #0x94
ffff47c0: e8bd8030 pop {r4, r5, pc}
ffff47c4: e30f1fff movw r1, #0xffff
ffff47c8: e59d0004 ldr r0, [sp, #0x4]
ffff47cc: e0010820 and r0, r1, r0, lsr #0x10
ffff47d0: e5840008 str r0, [r4, #0x8]
ffff47d4: e3a00000 mov r0, #0x0
ffff47d8: eafffff7 b 0xffff47bc
f_47dc:
ffff47dc: e92d4030 push {r4, r5, lr}
ffff47e0: e24dd01c sub sp, sp, #0x1c
ffff47e4: e1a04000 mov r4, r0
ffff47e8: e1a05001 mov r5, r1
ffff47ec: e3a02018 mov r2, #0x18
ffff47f0: e59f1318 ldr r1, =d_6460
ffff47f4: e28d0004 add r0, sp, #0x4
ffff47f8: eb0006f6 bl memcpy
ffff47fc: e3a0003c mov r0, #0x3c
ffff4800: e58d0004 str r0, [sp, #0x4]
ffff4804: e1a01005 mov r1, r5
ffff4808: e28d0004 add r0, sp, #0x4
ffff480c: eb00013c bl f_4d04
ffff4810: e3500000 cmp r0, #0x0
ffff4814: 0a000002 beq 0xffff4824
ffff4818: e3e00000 mvn r0, #0x0
ffff481c: e28dd01c add sp, sp, #0x1c
ffff4820: e8bd8030 pop {r4, r5, pc}
ffff4824: e1a01005 mov r1, r5
ffff4828: e1a00004 mov r0, r4
ffff482c: ebfffe88 bl f_4254
ffff4830: e3500000 cmp r0, #0x0
ffff4834: 0a000001 beq 0xffff4840
ffff4838: e3e00000 mvn r0, #0x0
ffff483c: eafffff6 b 0xffff481c
ffff4840: e5940004 ldr r0, [r4, #0x4]
ffff4844: e3500001 cmp r0, #0x1
ffff4848: 1a000006 bne 0xffff4868
ffff484c: e1a01005 mov r1, r5
ffff4850: e1a00004 mov r0, r4
ffff4854: ebfffece bl f_4394
ffff4858: e3700001 cmn r0, #0x1
ffff485c: 1a000008 bne 0xffff4884
ffff4860: e3e00000 mvn r0, #0x0
ffff4864: eaffffec b 0xffff481c
ffff4868: e1a01005 mov r1, r5
ffff486c: e1a00004 mov r0, r4
ffff4870: ebffff47 bl f_4594
ffff4874: e3700001 cmn r0, #0x1
ffff4878: 1a000001 bne 0xffff4884
ffff487c: e3e00000 mvn r0, #0x0
ffff4880: eaffffe5 b 0xffff481c
ffff4884: e1a00005 mov r0, r5
ffff4888: ebffff87 bl f_46ac
ffff488c: e3500000 cmp r0, #0x0
ffff4890: 0a000001 beq 0xffff489c
ffff4894: e3e00000 mvn r0, #0x0
ffff4898: eaffffdf b 0xffff481c
ffff489c: e1a01005 mov r1, r5
ffff48a0: e1a00004 mov r0, r4
ffff48a4: ebffffa2 bl f_4734
ffff48a8: e3500000 cmp r0, #0x0
ffff48ac: 0a000001 beq 0xffff48b8
ffff48b0: e3e00000 mvn r0, #0x0
ffff48b4: eaffffd8 b 0xffff481c
ffff48b8: e5940004 ldr r0, [r4, #0x4]
ffff48bc: e3c00010 bic r0, r0, #0x10
ffff48c0: e5840004 str r0, [r4, #0x4]
ffff48c4: e3a00001 mov r0, #0x1
ffff48c8: e5840000 str r0, [r4]
ffff48cc: e3a00000 mov r0, #0x0
ffff48d0: eaffffd1 b 0xffff481c
f_48d4:
ffff48d4: e92d4030 push {r4, r5, lr}
ffff48d8: e24dd01c sub sp, sp, #0x1c
ffff48dc: e1a04000 mov r4, r0
ffff48e0: e1a05001 mov r5, r1
ffff48e4: e1a01005 mov r1, r5
ffff48e8: e1a00004 mov r0, r4
ffff48ec: ebfffe31 bl f_41b8
ffff48f0: e3500000 cmp r0, #0x0
ffff48f4: 0a000002 beq 0xffff4904
ffff48f8: e3e00000 mvn r0, #0x0
ffff48fc: e28dd01c add sp, sp, #0x1c
ffff4900: e8bd8030 pop {r4, r5, pc}
ffff4904: e3a00000 mov r0, #0x0
ffff4908: e58d0004 str r0, [sp, #0x4]
ffff490c: e3a00001 mov r0, #0x1
ffff4910: e58d000c str r0, [sp, #0xc]
ffff4914: e3a00000 mov r0, #0x0
ffff4918: e58d0008 str r0, [sp, #0x8]
ffff491c: e3a00c02 mov r0, #0x200
ffff4920: e58d0010 str r0, [sp, #0x10]
ffff4924: e3e004ff mvn r0, #-0x1000000 ; 0xff000000
ffff4928: e58d0014 str r0, [sp, #0x14]
ffff492c: e3a000ff mov r0, #0xff
ffff4930: e58d0018 str r0, [sp, #0x18]
ffff4934: e1a01005 mov r1, r5
ffff4938: e28d0004 add r0, sp, #0x4
ffff493c: eb0000f0 bl f_4d04
ffff4940: e3500000 cmp r0, #0x0
ffff4944: 0a000001 beq 0xffff4950
ffff4948: e3e00000 mvn r0, #0x0
ffff494c: eaffffea b 0xffff48fc
ffff4950: e3a00000 mov r0, #0x0
ffff4954: eaffffe8 b 0xffff48fc
f_4958:
ffff4958: e92d4070 push {r4, r5, r6, lr}
ffff495c: e1a04000 mov r4, r0
ffff4960: e1a05001 mov r5, r1
ffff4964: e1a06002 mov r6, r2
ffff4968: e1a00004 mov r0, r4
ffff496c: eb000082 bl configurePIO_MMC(n)
ffff4970: e1a00006 mov r0, r6
ffff4974: eb0000a7 bl f_4c18
ffff4978: e3500000 cmp r0, #0x0
ffff497c: 0a000001 beq 0xffff4988
ffff4980: e3e00000 mvn r0, #0x0
ffff4984: e8bd8070 pop {r4, r5, r6, pc}
ffff4988: e1a01006 mov r1, r6
ffff498c: e1a00005 mov r0, r5
ffff4990: ebffff91 bl f_47dc
ffff4994: e3500000 cmp r0, #0x0
ffff4998: 1a000006 bne 0xffff49b8
ffff499c: e1a01006 mov r1, r6
ffff49a0: e1a00005 mov r0, r5
ffff49a4: ebffffca bl f_48d4
ffff49a8: e3500000 cmp r0, #0x0
ffff49ac: 0a000003 beq 0xffff49c0
ffff49b0: e3e00000 mvn r0, #0x0
ffff49b4: eafffff2 b 0xffff4984
ffff49b8: e3e00000 mvn r0, #0x0
ffff49bc: eafffff0 b 0xffff4984
ffff49c0: e3a00000 mov r0, #0x0
ffff49c4: eaffffee b 0xffff4984
f_49c8:
ffff49c8: e92d4010 push {r4, lr}
ffff49cc: e1a04000 mov r4, r0
ffff49d0: e1a00004 mov r0, r4
ffff49d4: eb0000ac bl f_4c8c
ffff49d8: e8bd8010 pop {r4, pc}
f_49dc:
ffff49dc: e92d43f0 push {r4, r5, r6, r7, r8, r9, lr}
ffff49e0: e24dd014 sub sp, sp, #0x14
ffff49e4: e1a04000 mov r4, r0
ffff49e8: e1a05001 mov r5, r1
ffff49ec: e1a06002 mov r6, r2
ffff49f0: e1a07003 mov r7, r3
ffff49f4: e1cd83d0 ldrd r8, [sp, #0x30]
ffff49f8: e28d0004 add r0, sp, #0x4
ffff49fc: e3a01000 mov r1, #0x0
ffff4a00: e1a02001 mov r2, r1
ffff4a04: e1a03001 mov r3, r1
ffff4a08: e1a0c001 mov ip, r1
ffff4a0c: e880100e stm r0, {r1, r2, r3, ip}
ffff4a10: e3a00003 mov r0, #0x3
ffff4a14: e58d0008 str r0, [sp, #0x8]
ffff4a18: e59d0010 ldr r0, [sp, #0x10]
ffff4a1c: e3c00c01 bic r0, r0, #0x100
ffff4a20: e2800c01 add r0, r0, #0x100
ffff4a24: e58d0010 str r0, [sp, #0x10]
ffff4a28: e59d0010 ldr r0, [sp, #0x10]
ffff4a2c: e3c00040 bic r0, r0, #0x40
ffff4a30: e58d0010 str r0, [sp, #0x10]
ffff4a34: e59d0010 ldr r0, [sp, #0x10]
ffff4a38: e3c00c02 bic r0, r0, #0x200
ffff4a3c: e58d0010 str r0, [sp, #0x10]
ffff4a40: e59d0010 ldr r0, [sp, #0x10]
ffff4a44: e3c00b01 bic r0, r0, #0x400
ffff4a48: e58d0010 str r0, [sp, #0x10]
ffff4a4c: e3a00000 mov r0, #0x0
ffff4a50: e58d0004 str r0, [sp, #0x4]
ffff4a54: e3550001 cmp r5, #0x1
ffff4a58: 1a000004 bne 0xffff4a70
ffff4a5c: e59d0010 ldr r0, [sp, #0x10]
ffff4a60: e3c0003f bic r0, r0, #0x3f
ffff4a64: e2800011 add r0, r0, #0x11
ffff4a68: e58d0010 str r0, [sp, #0x10]
ffff4a6c: ea000007 b 0xffff4a90
ffff4a70: e59d0010 ldr r0, [sp, #0x10]
ffff4a74: e3c0003f bic r0, r0, #0x3f
ffff4a78: e2800012 add r0, r0, #0x12
ffff4a7c: e58d0010 str r0, [sp, #0x10]
ffff4a80: e59d0010 ldr r0, [sp, #0x10]
ffff4a84: e3c00080 bic r0, r0, #0x80
ffff4a88: e2800080 add r0, r0, #0x80
ffff4a8c: e58d0010 str r0, [sp, #0x10]
ffff4a90: e5970004 ldr r0, [r7, #0x4]
ffff4a94: e3100020 tst r0, #0x20
ffff4a98: 0a000001 beq 0xffff4aa4
ffff4a9c: e58d400c str r4, [sp, #0xc]
ffff4aa0: ea000001 b 0xffff4aac
ffff4aa4: e1a00484 lsl r0, r4, #0x9
ffff4aa8: e58d000c str r0, [sp, #0xc]
ffff4aac: e1a02485 lsl r2, r5, #0x9
ffff4ab0: e1a03008 mov r3, r8
ffff4ab4: e1a01006 mov r1, r6
ffff4ab8: e58d9000 str r9, [sp]
ffff4abc: e28d0004 add r0, sp, #0x4
ffff4ac0: eb00011a bl f_4f30
ffff4ac4: e3500000 cmp r0, #0x0
ffff4ac8: 0a000002 beq 0xffff4ad8
ffff4acc: e3e00000 mvn r0, #0x0
ffff4ad0: e28dd014 add sp, sp, #0x14
ffff4ad4: e8bd83f0 pop {r4, r5, r6, r7, r8, r9, pc}
ffff4ad8: e3a00000 mov r0, #0x0
ffff4adc: eafffffb b 0xffff4ad0
f_4ae0:
ffff4ae0: e1a02000 mov r2, r0
ffff4ae4: e5920000 ldr r0, [r2]
ffff4ae8: e3c00c02 bic r0, r0, #0x200
ffff4aec: e5820000 str r0, [r2]
ffff4af0: e5920000 ldr r0, [r2]
ffff4af4: e1800481 orr r0, r0, r1, lsl #0x9
ffff4af8: e5820000 str r0, [r2]
ffff4afc: e3a00000 mov r0, #0x0
ffff4b00: e12fff1e bx lr
f_4b14:
ffff4b14: e92d4010 push {r4, lr}
ffff4b18: e1a02000 mov r2, r0
ffff4b1c: e30f3fff movw r3, #0xffff
ffff4b20: e5812018 str r2, [r1, #0x18]
ffff4b24: ea00000b b 0xffff4b58
ffff4b28: e5910018 ldr r0, [r1, #0x18]
ffff4b2c: e3100102 tst r0, #-0x80000000 ; 0x80000000
ffff4b30: 1a000001 bne 0xffff4b3c
ffff4b34: e3a00000 mov r0, #0x0
ffff4b38: e8bd8010 pop {r4, pc}
ffff4b3c: e5910038 ldr r0, [r1, #0x38]
ffff4b40: e3100a01 tst r0, #0x1000
ffff4b44: 0a000003 beq 0xffff4b58
ffff4b48: e3a00a01 mov r0, #0x1000
ffff4b4c: e5810038 str r0, [r1, #0x38]
ffff4b50: e3e00000 mvn r0, #0x0
ffff4b54: eafffff7 b 0xffff4b38
ffff4b58: e1b00003 movs r0, r3
ffff4b5c: e2433001 sub r3, r3, #0x1
ffff4b60: 1afffff0 bne 0xffff4b28
ffff4b64: e3530000 cmp r3, #0x0
ffff4b68: aa000001 bge 0xffff4b74
ffff4b6c: e3e00000 mvn r0, #0x0
ffff4b70: eafffff0 b 0xffff4b38
ffff4b74: e3a00000 mov r0, #0x0
ffff4b78: eaffffee b 0xffff4b38
configurePIO_MMC(n):
ffff4b7c: e1a02000 mov r2, r0
ffff4b80: e3520000 cmp r2, #0x0
ffff4b84: 1a00000b bne 0xffff4bb8
ffff4b88: e59f0510 ldr r0, =0x01c20000
ffff4b8c: e5901060 ldr r1, [r0, #0x60]
ffff4b90: e3811c01 orr r1, r1, #0x100]
ffff4b94: e5801060 str r1, [r0, #0x60]
ffff4b98: e3a00102 mov r0, #0x80000000
ffff4b9c: e59f34fc ldr r3, =0x01c20000
ffff4ba0: e5830088 str r0, [r3, #0x88]
ffff4ba4: e59f04f8 ldr r0, =0x00222222 ; SDC0
ffff4ba8: e58308b4 str r0, [r3, #0x8b4] ; PF_CFG0
ffff4bac: e3000555 movw r0, #0x555
ffff4bb0: e58308d0 str r0, [r3, #0x8d0] ; PF_PULL0
ffff4bb4: ea000015 b 0xffff4c10
ffff4bb8: e3520002 cmp r2, #0x2
ffff4bbc: 1a000013 bne 0xffff4c10
ffff4bc0: e59f04d8 ldr r0, =0x01c20000
ffff4bc4: e5901060 ldr r1, [r0, #0x60]
ffff4bc8: e3811b01 orr r1, r1, #0x400
ffff4bcc: e5801060 str r1, [r0, #0x60]
ffff4bd0: e3a00102 mov r0, #0x80000000
ffff4bd4: e59f34c4 ldr r3, =0x01c20000
ffff4bd8: e5830090 str r0, [r3, #0x90]
ffff4bdc: e3a00433 mov r0, #0x33000000 ; SDC2
ffff4be0: e5830848 str r0, [r3, #0x848] ; PC_CFG0
ffff4be4: e3030333 movw r0, #0x3333 ; SDC2
ffff4be8: e583084c str r0, [r3, #0x84c] ; PC_CFG1
ffff4bec: e1c30000 bic r0, r3, r0
ffff4bf0: e5901864 ldr r1, [r0, #0x864] ; PC_PULL0
ffff4bf4: e1a00001 mov r0, r1
ffff4bf8: e7d7061f bfc r0, #0xc, #0xc
ffff4bfc: e1a01000 mov r1, r0
ffff4c00: e3811605 orr r1, r1, #0x500000
ffff4c04: e3811a55 orr r1, r1, #0x55000
ffff4c08: e1a00003 mov r0, r3
ffff4c0c: e5801864 str r1, [r0, #0x864] ; PC_PULL0
ffff4c10: e3a00000 mov r0, #0x0
ffff4c14: e12fff1e bx lr
f_4c18:
ffff4c18: e92d4010 push {r4, lr}
ffff4c1c: e1a01000 mov r1, r0
ffff4c20: e30f4fff movw r4, #0xffff
ffff4c24: e3a02007 mov r2, #0x7
ffff4c28: e5812000 str r2, [r1]
ffff4c2c: ea000005 b 0xffff4c48
ffff4c30: e2444001 sub r4, r4, #0x1
ffff4c34: e3540000 cmp r4, #0x0
ffff4c38: aa000001 bge 0xffff4c44
ffff4c3c: e3e00000 mvn r0, #0x0
ffff4c40: e8bd8010 pop {r4, pc}
ffff4c44: e5912000 ldr r2, [r1]
ffff4c48: e3120007 tst r2, #0x7
ffff4c4c: 1afffff7 bne 0xffff4c30
ffff4c50: e3a03000 mov r3, #0x0
ffff4c54: ea000000 b 0xffff4c5c
ffff4c58: e2833001 add r3, r3, #0x1
ffff4c5c: e3530032 cmp r3, #0x32
ffff4c60: 3afffffc bcc 0xffff4c58
ffff4c64: e5912038 ldr r2, [r1, #0x38]
ffff4c68: e30f0fff movw r0, #0xffff
ffff4c6c: e1822000 orr r2, r2, r0
ffff4c70: e5812038 str r2, [r1, #0x38]
ffff4c74: e3a02c02 mov r2, #0x200
ffff4c78: e5812000 str r2, [r1]
ffff4c7c: e59f2424 ldr r2, =0x00070008
ffff4c80: e5812040 str r2, [r1, #0x40]
ffff4c84: e3a00000 mov r0, #0x0
ffff4c88: eaffffec b 0xffff4c40
f_4c8c:
ffff4c8c: e1a01000 mov r1, r0
ffff4c90: e3510000 cmp r1, #0x0
ffff4c94: 1a00000b bne 0xffff4cc8
ffff4c98: e59f0400 ldr r0, =0x01c20000
ffff4c9c: e5902060 ldr r2, [r0, #0x60]
ffff4ca0: e3c22c01 bic r2, r2, #0x100
ffff4ca4: e5802060 str r2, [r0, #0x60]
ffff4ca8: e3a00000 mov r0, #0x0
ffff4cac: e59f33ec ldr r3, =0x01c20000
ffff4cb0: e5830088 str r0, [r3, #0x88]
ffff4cb4: e59f03f0 ldr r0, =0x00404044 ; JTAG1
ffff4cb8: e58308b4 str r0, [r3, #0x8b4] ; PF_CFG0
ffff4cbc: e3a00000 mov r0, #0x0
ffff4cc0: e58308d0 str r0, [r3, #0x8d0] ; PF_PULL0
ffff4cc4: ea00000c b 0xffff4cfc
ffff4cc8: e3510002 cmp r1, #0x2
ffff4ccc: 1a00000a bne 0xffff4cfc
ffff4cd0: e59f03c8 ldr r0, =0x01c20000
ffff4cd4: e5902060 ldr r2, [r0, #0x60]
ffff4cd8: e3c22b01 bic r2, r2, #0x400]
ffff4cdc: e5802060 str r2, [r0, #0x60]
ffff4ce0: e3a00000 mov r0, #0x0
ffff4ce4: e59f33b4 ldr r3, =0x01c20000
ffff4ce8: e5830090 str r0, [r3, #0x90]
ffff4cec: e5830848 str r0, [r3, #0x848] ; PC_CFG0
ffff4cf0: e583084c str r0, [r3, #0x84c] ; PC_CFG1
ffff4cf4: e3050140 movw r0, #0x5140
ffff4cf8: e5830864 str r0, [r3, #0x864] ; PC_PULL0
ffff4cfc: e3a00000 mov r0, #0x0
ffff4d00: e12fff1e bx lr
f_4d04:
ffff4d04: e92d4070 push {r4, r5, r6, lr}
ffff4d08: e1a04000 mov r4, r0
ffff4d0c: e1a05001 mov r5, r1
ffff4d10: e5940014 ldr r0, [r4, #0x14]
ffff4d14: e5941010 ldr r1, [r4, #0x10]
ffff4d18: e7df0411 bfi r0, r1, #0x8, #0x18
ffff4d1c: e1a06000 mov r6, r0
ffff4d20: e5856008 str r6, [r5, #0x8]
ffff4d24: e594000c ldr r0, [r4, #0xc]
ffff4d28: e6ff6070 uxth r6, r0
ffff4d2c: e5856010 str r6, [r5, #0x10]
ffff4d30: e3a00000 mov r0, #0x0
ffff4d34: e585000c str r0, [r5, #0xc]
ffff4d38: e5950004 ldr r0, [r5, #0x4]
ffff4d3c: e3c00801 bic r0, r0, #0x10000
ffff4d40: e5850004 str r0, [r5, #0x4]
ffff4d44: e59f6364 ldr r6, =0x80202000
ffff4d48: e1a01005 mov r1, r5
ffff4d4c: e1a00006 mov r0, r6
ffff4d50: ebffff6f bl f_4b14
ffff4d54: e3500000 cmp r0, #0x0
ffff4d58: 0a000001 beq 0xffff4d64
ffff4d5c: e3e00000 mvn r0, #0x0
ffff4d60: e8bd8070 pop {r4, r5, r6, pc}
ffff4d64: e5950004 ldr r0, [r5, #0x4]
ffff4d68: e3c000ff bic r0, r0, #0xff
ffff4d6c: e5850004 str r0, [r5, #0x4]
ffff4d70: e5950004 ldr r0, [r5, #0x4]
ffff4d74: e5941000 ldr r1, [r4]
ffff4d78: e1800001 orr r0, r0, r1
ffff4d7c: e5850004 str r0, [r5, #0x4]
ffff4d80: e59f6328 ldr r6, =0x80202000
ffff4d84: e1a01005 mov r1, r5
ffff4d88: e1a00006 mov r0, r6
ffff4d8c: ebffff60 bl f_4b14
ffff4d90: e3500000 cmp r0, #0x0
ffff4d94: 0a000001 beq 0xffff4da0
ffff4d98: e3e00000 mvn r0, #0x0
ffff4d9c: eaffffef b 0xffff4d60
ffff4da0: e5950004 ldr r0, [r5, #0x4]
ffff4da4: e5941004 ldr r1, [r4, #0x4]
ffff4da8: e2011001 and r1, r1, #0x1
ffff4dac: e3a02801 mov r2, #0x10000
ffff4db0: e1821881 orr r1, r2, r1, lsl #0x11
ffff4db4: e1800001 orr r0, r0, r1
ffff4db8: e5850004 str r0, [r5, #0x4]
ffff4dbc: e59f62ec ldr r6, =0x80202000
ffff4dc0: e1a01005 mov r1, r5
ffff4dc4: e1a00006 mov r0, r6
ffff4dc8: ebffff51 bl f_4b14
ffff4dcc: e3500000 cmp r0, #0x0
ffff4dd0: 0a000001 beq 0xffff4ddc
ffff4dd4: e3e00000 mvn r0, #0x0
ffff4dd8: eaffffe0 b 0xffff4d60
ffff4ddc: e3a00000 mov r0, #0x0
ffff4de0: eaffffde b 0xffff4d60
f_4de4:
ffff4de4: e92d4070 push {r4, r5, r6, lr}
ffff4de8: e1a03000 mov r3, r0
ffff4dec: e5930008 ldr r0, [r3, #0x8]
ffff4df0: e582001c str r0, [r2, #0x1c]
ffff4df4: e593000c ldr r0, [r3, #0xc]
ffff4df8: e200403f and r4, r0, #0x3f
ffff4dfc: e593000c ldr r0, [r3, #0xc]
ffff4e00: e7e005d0 ubfx r0, r0, #0xb, #0x1
ffff4e04: e1844780 orr r4, r4, r0, lsl #0xf
ffff4e08: e593000c ldr r0, [r3, #0xc]
ffff4e0c: e7e003d0 ubfx r0, r0, #0x7, #0x1
ffff4e10: e1844600 orr r4, r4, r0, lsl #0xc
ffff4e14: e5930004 ldr r0, [r3, #0x4]
ffff4e18: e3500000 cmp r0, #0x0
ffff4e1c: 0a000006 beq 0xffff4e3c
ffff4e20: e3844040 orr r4, r4, #0x40
ffff4e24: e593000c ldr r0, [r3, #0xc]
ffff4e28: e7e00350 ubfx r0, r0, #0x6, #0x1
ffff4e2c: e1844380 orr r4, r4, r0, lsl #0x7
ffff4e30: e593000c ldr r0, [r3, #0xc]
ffff4e34: e7e00450 ubfx r0, r0, #0x8, #0x1
ffff4e38: e1844400 orr r4, r4, r0, lsl #0x8
ffff4e3c: e5930004 ldr r0, [r3, #0x4]
ffff4e40: e3500003 cmp r0, #0x3
ffff4e44: 1a000006 bne 0xffff4e64
ffff4e48: e3844c22 orr r4, r4, #0x2200
ffff4e4c: e593000c ldr r0, [r3, #0xc]
ffff4e50: e7e004d0 ubfx r0, r0, #0x9, #0x1
ffff4e54: e1844500 orr r4, r4, r0, lsl #0xa
ffff4e58: e593000c ldr r0, [r3, #0xc]
ffff4e5c: e7e00550 ubfx r0, r0, #0xa, #0x1
ffff4e60: e1844580 orr r4, r4, r0, lsl #0xb
ffff4e64: e3844102 orr r4, r4, #-0x80000000 ; 0x80000000
ffff4e68: e5824018 str r4, [r2, #0x18]
ffff4e6c: e30f5fff movw r5, #0xffff
ffff4e70: e320f000 nop {0}
ffff4e74: e1b00005 movs r0, r5
ffff4e78: e2455001 sub r5, r5, #0x1
ffff4e7c: 0a000002 beq 0xffff4e8c
ffff4e80: e5920038 ldr r0, [r2, #0x38]
ffff4e84: e3100004 tst r0, #0x4
ffff4e88: 0afffff9 beq 0xffff4e74
ffff4e8c: e3a00004 mov r0, #0x4
ffff4e90: e5820038 str r0, [r2, #0x38]
ffff4e94: e3550000 cmp r5, #0x0
ffff4e98: aa000001 bge 0xffff4ea4
ffff4e9c: e3e00000 mvn r0, #0x0
ffff4ea0: e8bd8070 pop {r4, r5, r6, pc}
ffff4ea4: e5924038 ldr r4, [r2, #0x38]
ffff4ea8: e5930004 ldr r0, [r3, #0x4]
ffff4eac: e3500000 cmp r0, #0x0
ffff4eb0: 0a00001c beq 0xffff4f28
ffff4eb4: e3000102 movw r0, #0x102
ffff4eb8: e1100004 tst r0, r4
ffff4ebc: 0a000003 beq 0xffff4ed0
ffff4ec0: e3000102 movw r0, #0x102
ffff4ec4: e5820038 str r0, [r2, #0x38]
ffff4ec8: e3e00000 mvn r0, #0x0
ffff4ecc: eafffff3 b 0xffff4ea0
ffff4ed0: e593000c ldr r0, [r3, #0xc]
ffff4ed4: e7e00450 ubfx r0, r0, #0x8, #0x1
ffff4ed8: e3500000 cmp r0, #0x0
ffff4edc: 0a000005 beq 0xffff4ef8
ffff4ee0: e3140040 tst r4, #0x40
ffff4ee4: 0a000003 beq 0xffff4ef8
ffff4ee8: e3a00040 mov r0, #0x40
ffff4eec: e5820038 str r0, [r2, #0x38]
ffff4ef0: e3e00000 mvn r0, #0x0
ffff4ef4: eaffffe9 b 0xffff4ea0
ffff4ef8: e5920020 ldr r0, [r2, #0x20]
ffff4efc: e5810000 str r0, [r1]
ffff4f00: e593000c ldr r0, [r3, #0xc]
ffff4f04: e7e00350 ubfx r0, r0, #0x6, #0x1
ffff4f08: e3500001 cmp r0, #0x1
ffff4f0c: 1a000005 bne 0xffff4f28
ffff4f10: e5920024 ldr r0, [r2, #0x24]
ffff4f14: e5810004 str r0, [r1, #0x4]
ffff4f18: e5920028 ldr r0, [r2, #0x28]
ffff4f1c: e5810008 str r0, [r1, #0x8]
ffff4f20: e592002c ldr r0, [r2, #0x2c]
ffff4f24: e581000c str r0, [r1, #0xc]
ffff4f28: e3a00000 mov r0, #0x0
ffff4f2c: eaffffdb b 0xffff4ea0
f_4f30:
ffff4f30: e92d4ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, lr}
ffff4f34: e24dd084 sub sp, sp, #0x84
ffff4f38: e1a04000 mov r4, r0
ffff4f3c: e1a05001 mov r5, r1
ffff4f40: e1a06002 mov r6, r2
ffff4f44: e1a07003 mov r7, r3
ffff4f48: e59d80a8 ldr r8, [sp, #0xa8]
ffff4f4c: e3e00000 mvn r0, #0x0
ffff4f50: e58d0080 str r0, [sp, #0x80]
ffff4f54: e5970000 ldr r0, [r7]
ffff4f58: e3800102 orr r0, r0, #-0x80000000 ; 0x80000000
ffff4f5c: e5870000 str r0, [r7]
ffff4f60: e5876014 str r6, [r7, #0x14]
ffff4f64: e1a02007 mov r2, r7
ffff4f68: e1a0100d mov r1, sp
ffff4f6c: e1a00004 mov r0, r4
ffff4f70: ebffff9b bl f_4de4
ffff4f74: e3500000 cmp r0, #0x0
ffff4f78: 0a000002 beq 0xffff4f88
ffff4f7c: e3a00c02 mov r0, #0x200
ffff4f80: e5870010 str r0, [r7, #0x10]
ffff4f84: ea00003e b 0xffff5084
ffff4f88: e3a0a000 mov sl, #0x0
ffff4f8c: ea000010 b 0xffff4fd4
ffff4f90: e59fb11c ldr fp, =0x0007ffff
ffff4f94: e597903c ldr r9, [r7, #0x3c]
ffff4f98: ea000006 b 0xffff4fb8
ffff4f9c: e1b0000b movs r0, fp
ffff4fa0: e24bb001 sub fp, fp, #0x1
ffff4fa4: 1a000002 bne 0xffff4fb4
ffff4fa8: e3e00000 mvn r0, #0x0
ffff4fac: e28dd084 add sp, sp, #0x84
ffff4fb0: e8bd8ff0 pop {r4, r5, r6, r7, r8, r9, sl, fp, pc}
ffff4fb4: e597903c ldr r9, [r7, #0x3c]
ffff4fb8: e3190004 tst r9, #0x4
ffff4fbc: 1afffff6 bne 0xffff4f9c
ffff4fc0: e59f10f0 ldr r1, =0x01c0f000
ffff4fc4: e0810608 add r0, r1, r8, lsl #0xc
ffff4fc8: e5900100 ldr r0, [r0, #0x100]
ffff4fcc: e785010a str r0, [r5, sl, lsl #0x2]
ffff4fd0: e28aa001 add sl, sl, #0x1
ffff4fd4: e15a0126 cmp sl, r6, lsr #0x2
ffff4fd8: 3affffec bcc 0xffff4f90
ffff4fdc: e3a00c02 mov r0, #0x200
ffff4fe0: e5870010 str r0, [r7, #0x10]
ffff4fe4: e59fb0c8 ldr fp, =0x0007ffff
ffff4fe8: e320f000 nop {0}
ffff4fec: e1b0000b movs r0, fp
ffff4ff0: e24bb001 sub fp, fp, #0x1
ffff4ff4: 0a000002 beq 0xffff5004
ffff4ff8: e5970038 ldr r0, [r7, #0x38]
ffff4ffc: e3100008 tst r0, #0x8
ffff5000: 0afffff9 beq 0xffff4fec
ffff5004: e3a00008 mov r0, #0x8
ffff5008: e5870038 str r0, [r7, #0x38]
ffff500c: e35b0000 cmp fp, #0x0
ffff5010: aa000000 bge 0xffff5018
ffff5014: ea00001a b 0xffff5084
ffff5018: e594000c ldr r0, [r4, #0xc]
ffff501c: e7e003d0 ubfx r0, r0, #0x7, #0x1
ffff5020: e3500000 cmp r0, #0x0
ffff5024: 0a00000c beq 0xffff505c
ffff5028: e59fb08c ldr fp, =0x000fffff
ffff502c: e320f000 nop {0}
ffff5030: e1b0000b movs r0, fp
ffff5034: e24bb001 sub fp, fp, #0x1
ffff5038: 0a000002 beq 0xffff5048
ffff503c: e5970038 ldr r0, [r7, #0x38]
ffff5040: e3100901 tst r0, #0x4000
ffff5044: 0afffff9 beq 0xffff5030
ffff5048: e3a00901 mov r0, #0x4000
ffff504c: e5870038 str r0, [r7, #0x38]
ffff5050: e35b0000 cmp fp, #0x0
ffff5054: aa000000 bge 0xffff505c
ffff5058: ea000009 b 0xffff5084
ffff505c: e5979038 ldr r9, [r7, #0x38]
ffff5060: e30a0a80 movw r0, #0xaa80
ffff5064: e1100009 tst r0, r9
ffff5068: 0a000002 beq 0xffff5078
ffff506c: e30a0a80 movw r0, #0xaa80
ffff5070: e5870038 str r0, [r7, #0x38]
ffff5074: ea000002 b 0xffff5084
ffff5078: e3a00000 mov r0, #0x0
ffff507c: e58d0080 str r0, [sp, #0x80]
ffff5080: e320f000 nop {0}
ffff5084: e5970000 ldr r0, [r7]
ffff5088: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff508c: e5870000 str r0, [r7]
ffff5090: e3e00000 mvn r0, #0x0
ffff5094: e5870038 str r0, [r7, #0x38]
ffff5098: e59d0080 ldr r0, [sp, #0x80]
ffff509c: eaffffc2 b 0xffff4fac
load_from_mmc:
ffff50c0: e92d41f0 push {r4, r5, r6, r7, r8, lr}
ffff50c4: e24dd038 sub sp, sp, #0x38
ffff50c8: e1a05000 mov r5, r0
ffff50cc: e3a07000 mov r7, #0x0
ffff50d0: e3e08000 mvn r8, #0x0
ffff50d4: e59f1150 ldr r1, =0x01c0f000
ffff50d8: e0817605 add r7, r1, r5, lsl #0xc
ffff50dc: e1a02007 mov r2, r7
ffff50e0: e28d1008 add r1, sp, #0x8
ffff50e4: e1a00005 mov r0, r5
ffff50e8: ebfffe1a bl f_4958
ffff50ec: e3700001 cmn r0, #0x1
ffff50f0: 1a000000 bne 0xffff50f8
ffff50f4: ea000047 b 0xffff5218
ffff50f8: e3a01000 mov r1, #0x0
ffff50fc: e1a00007 mov r0, r7
ffff5100: ebfffe76 bl f_4ae0
ffff5104: e58d5004 str r5, [sp, #0x4]
ffff5108: e58d7000 str r7, [sp]
ffff510c: e28d3008 add r3, sp, #0x8
ffff5110: e3a02000 mov r2, #0x0
ffff5114: e3a01008 mov r1, #0x8
ffff5118: e3a00010 mov r0, #0x10
ffff511c: ebfffe2e bl f_49dc
ffff5120: e3500000 cmp r0, #0x0
ffff5124: 0a00000c beq 0xffff515c
ffff5128: e3a01001 mov r1, #0x1
ffff512c: e1a00007 mov r0, r7
ffff5130: ebfffe6a bl f_4ae0
ffff5134: e58d5004 str r5, [sp, #0x4]
ffff5138: e58d7000 str r7, [sp]
ffff513c: e28d3008 add r3, sp, #0x8
ffff5140: e3a02000 mov r2, #0x0
ffff5144: e3a01008 mov r1, #0x8
ffff5148: e3a00010 mov r0, #0x10
ffff514c: ebfffe22 bl f_49dc
ffff5150: e3500000 cmp r0, #0x0
ffff5154: 0a000000 beq 0xffff515c
ffff5158: ea00002e b 0xffff5218
ffff515c: e28f10cc ldr r1, =eGON_BT0
ffff5160: e3a00000 mov r0, #0x0
ffff5164: eb000435 bl f_6240
ffff5168: e3500000 cmp r0, #0x0
ffff516c: 0a000000 beq 0xffff5174
ffff5170: ea000028 b 0xffff5218
ffff5174: e3a04000 mov r4, #0x0
ffff5178: e5946010 ldr r6, [r4, #0x10]
ffff517c: e3560a06 cmp r6, #0x6000
ffff5180: 8a000003 bhi 0xffff5194
ffff5184: e1a00006 mov r0, r6
ffff5188: e7df049f bfc r0, #0x9, #0x17
ffff518c: e3500000 cmp r0, #0x0
ffff5190: 0a000000 beq 0xffff5198
ffff5194: ea00001f b 0xffff5218
ffff5198: e3a01000 mov r1, #0x0
ffff519c: e1a00007 mov r0, r7
ffff51a0: ebfffe4e bl f_4ae0
ffff51a4: e1a014a6 lsr r1, r6, #0x9
ffff51a8: e58d5004 str r5, [sp, #0x4]
ffff51ac: e58d7000 str r7, [sp]
ffff51b0: e28d3008 add r3, sp, #0x8
ffff51b4: e3a02000 mov r2, #0x0
ffff51b8: e3a00010 mov r0, #0x10
ffff51bc: ebfffe06 bl f_49dc
ffff51c0: e3500000 cmp r0, #0x0
ffff51c4: 0a00000c beq 0xffff51fc
ffff51c8: e3a01001 mov r1, #0x1
ffff51cc: e1a00007 mov r0, r7
ffff51d0: ebfffe42 bl f_4ae0
ffff51d4: e1a014a6 lsr r1, r6, #0x9
ffff51d8: e58d5004 str r5, [sp, #0x4]
ffff51dc: e58d7000 str r7, [sp]
ffff51e0: e28d3008 add r3, sp, #0x8
ffff51e4: e3a02000 mov r2, #0x0
ffff51e8: e3a00010 mov r0, #0x10
ffff51ec: ebfffdfa bl f_49dc
ffff51f0: e3500000 cmp r0, #0x0
ffff51f4: 0a000000 beq 0xffff51fc
ffff51f8: ea000006 b 0xffff5218
ffff51fc: e1a01006 mov r1, r6
ffff5200: e3a00000 mov r0, #0x0
ffff5204: eb000420 bl f_628c
ffff5208: e3500000 cmp r0, #0x0
ffff520c: 1a000000 bne 0xffff5214
ffff5210: e3a08000 mov r8, #0x0
ffff5214: e320f000 nop {0}
ffff5218: e1a00005 mov r0, r5
ffff521c: ebfffde9 bl f_49c8
ffff5220: e1a00008 mov r0, r8
ffff5224: e28dd038 add sp, sp, #0x38
ffff5228: e8bd81f0 pop {r4, r5, r6, r7, r8, pc}
eGON_BT0: "eGON.BT0",0
f_523c:
ffff523c: e92d5ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
ffff5240: e1a04000 mov r4, r0
ffff5244: e1a05001 mov r5, r1
ffff5248: e5949000 ldr r9, [r4]
ffff524c: e594a018 ldr sl, [r4, #0x18]
ffff5250: e1a0300a mov r3, sl
ffff5254: e3a02000 mov r2, #0x0
ffff5258: e3a01001 mov r1, #0x1
ffff525c: e1a00005 mov r0, r5
ffff5260: e12fff39 blx r9
ffff5264: e1a06000 mov r6, r0
ffff5268: e3560002 cmp r6, #0x2
ffff526c: 1a000001 bne 0xffff5278
ffff5270: e3a00002 mov r0, #0x2
ffff5274: e8bd9ff0 pop {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
ffff5278: e3560003 cmp r6, #0x3
ffff527c: 1a000001 bne 0xffff5288
ffff5280: e3a00003 mov r0, #0x3
ffff5284: eafffffa b 0xffff5274
ffff5288: e28f1f6d ldr r1, =eGON_BT0
ffff528c: e3a00000 mov r0, #0x0
ffff5290: eb0003ea bl f_6240
ffff5294: e3500000 cmp r0, #0x0
ffff5298: 0a000001 beq 0xffff52a4
ffff529c: e3e00000 mvn r0, #0x0
ffff52a0: eafffff3 b 0xffff5274
ffff52a4: e3a08000 mov r8, #0x0
ffff52a8: e598b010 ldr fp, [r8, #0x10]
ffff52ac: e1a0000b mov r0, fp
ffff52b0: e7df069f bfc r0, #0xd, #0x13
ffff52b4: e3500000 cmp r0, #0x0
ffff52b8: 0a000001 beq 0xffff52c4
ffff52bc: e3e00000 mvn r0, #0x0
ffff52c0: eaffffeb b 0xffff5274
ffff52c4: e1a0752b lsr r7, fp, #0xa
ffff52c8: e1a0300a mov r3, sl
ffff52cc: e3a02000 mov r2, #0x0
ffff52d0: e1a01007 mov r1, r7
ffff52d4: e1a00005 mov r0, r5
ffff52d8: e12fff39 blx r9
ffff52dc: e1a06000 mov r6, r0
ffff52e0: e3560002 cmp r6, #0x2
ffff52e4: 1a000001 bne 0xffff52f0
ffff52e8: e3a00002 mov r0, #0x2
ffff52ec: eaffffe0 b 0xffff5274
ffff52f0: e3560003 cmp r6, #0x3
ffff52f4: 1a000001 bne 0xffff5300
ffff52f8: e3a00003 mov r0, #0x3
ffff52fc: eaffffdc b 0xffff5274
ffff5300: e1a0100b mov r1, fp
ffff5304: e3a00000 mov r0, #0x0
ffff5308: eb0003df bl f_628c
ffff530c: e3500000 cmp r0, #0x0
ffff5310: 1a000001 bne 0xffff531c
ffff5314: e3a00000 mov r0, #0x0
ffff5318: eaffffd5 b 0xffff5274
ffff531c: e3e00000 mvn r0, #0x0
ffff5320: eaffffd3 b 0xffff5274
f_5324:
ffff5324: e92d4070 push {r4, r5, r6, lr}
ffff5328: e24dd028 sub sp, sp, #0x28
ffff532c: e3a04000 mov r4, #0x0
ffff5330: ea000019 b 0xffff539c
ffff5334: e1a01004 mov r1, r4
ffff5338: e1a0000d mov r0, sp
ffff533c: eb000043 bl f_5450
ffff5340: e1a0000d mov r0, sp
ffff5344: eb000205 bl f_5b60
ffff5348: e3a06040 mov r6, #0x40
ffff534c: ea00000d b 0xffff5388
ffff5350: e1a01006 mov r1, r6
ffff5354: e1a0000d mov r0, sp
ffff5358: ebffffb7 bl f_523c
ffff535c: e1a05000 mov r5, r0
ffff5360: e3550000 cmp r5, #0x0
ffff5364: 1a000003 bne 0xffff5378
ffff5368: eb0001c5 bl f_5a84
ffff536c: e3a00000 mov r0, #0x0
ffff5370: e28dd028 add sp, sp, #0x28
ffff5374: e8bd8070 pop {r4, r5, r6, pc}
ffff5378: e3550002 cmp r5, #0x2
ffff537c: 1a000000 bne 0xffff5384
ffff5380: ea000002 b 0xffff5390
ffff5384: e2866040 add r6, r6, #0x40
ffff5388: e3560c02 cmp r6, #0x200
ffff538c: 3affffef bcc 0xffff5350
ffff5390: e320f000 nop {0}
ffff5394: eb0001ba bl f_5a84
ffff5398: e2844001 add r4, r4, #0x1
ffff539c: e354000a cmp r4, #0xa
ffff53a0: 3affffe3 bcc 0xffff5334
ffff53a4: e3e00000 mvn r0, #0x0
ffff53a8: eafffff0 b 0xffff5370
f_53ac:
ffff53ac: e92d4030 push {r4, r5, lr}
ffff53b0: e24dd02c sub sp, sp, #0x2c
ffff53b4: e3a05000 mov r5, #0x0
ffff53b8: ea000010 b 0xffff5400
ffff53bc: e1a01005 mov r1, r5
ffff53c0: e28d0004 add r0, sp, #0x4
ffff53c4: eb000021 bl f_5450
ffff53c8: e28d0004 add r0, sp, #0x4
ffff53cc: eb0001e3 bl f_5b60
ffff53d0: e3a01000 mov r1, #0x0
ffff53d4: e28d0004 add r0, sp, #0x4
ffff53d8: ebffff97 bl f_523c
ffff53dc: e1a04000 mov r4, r0
ffff53e0: e3540000 cmp r4, #0x0
ffff53e4: 1a000003 bne 0xffff53f8
ffff53e8: eb0001a5 bl f_5a84
ffff53ec: e3a00000 mov r0, #0x0
ffff53f0: e28dd02c add sp, sp, #0x2c
ffff53f4: e8bd8030 pop {r4, r5, pc}
ffff53f8: eb0001a1 bl f_5a84
ffff53fc: e2855001 add r5, r5, #0x1
ffff5400: e355000a cmp r5, #0xa
ffff5404: 3affffec bcc 0xffff53bc
ffff5408: e3e00000 mvn r0, #0x0
ffff540c: eafffff7 b 0xffff53f0
f_5410:
ffff5410: e92d4010 push {r4, lr}
ffff5414: ebffffe4 bl f_53ac
ffff5418: e3500000 cmp r0, #0x0
ffff541c: 1a000001 bne 0xffff5428
ffff5420: e3a00000 mov r0, #0x0
ffff5424: e8bd8010 pop {r4, pc}
ffff5428: ebffffbd bl f_5324
ffff542c: e3500000 cmp r0, #0x0
ffff5430: 1a000001 bne 0xffff543c
ffff5434: e3a00000 mov r0, #0x0
ffff5438: eafffff9 b 0xffff5424
ffff543c: e3e00000 mvn r0, #0x0
ffff5440: eafffff7 b 0xffff5424
f_5450:
ffff5450: e92d4070 push {r4, r5, r6, lr}
ffff5454: e1a05000 mov r5, r0
ffff5458: e1a04001 mov r4, r1
ffff545c: e0840104 add r0, r4, r4, lsl #0x2 ; r1 * 5
ffff5460: e59f2010 ldr r2, =d_6478
ffff5464: e0821180 add r1, r2, r0, lsl #3 ; r1 = &d_6478 + r1 * 5 * 8 = r1 * 40
ffff5468: e3a02028 mov r2, #0x28
ffff546c: e1a00005 mov r0, r5
ffff5470: eb0003d8 bl memcpy
ffff5474: e8bd8070 pop {r4, r5, r6, pc}
f_547c:
ffff547c: e92d4010 push {r4, lr}
ffff5480: e1a02000 mov r2, r0
ffff5484: e3a03000 mov r3, #0x0
ffff5488: e3a04000 mov r4, #0x0
ffff548c: ea000002 b 0xffff549c
ffff5490: e3a00001 mov r0, #0x1
ffff5494: e1844310 orr r4, r4, r0, lsl r3
ffff5498: e2833001 add r3, r3, #0x1
ffff549c: e1530001 cmp r3, r1
ffff54a0: 3afffffa bcc 0xffff5490
ffff54a4: e0020004 and r0, r2, r4
ffff54a8: e8bd8010 pop {r4, pc}
f_54ac:
ffff54ac: e3a02000 mov r2, #0x0
ffff54b0: e59f3488 ldr r3, =0x01c02000
ffff54b4: e5832000 str r2, [r3]
ffff54b8: e59f2484 ldr r2, =0x01c03030
ffff54bc: e5832304 str r2, [r3, #0x304]
ffff54c0: e0032002 and r2, r3, r2
ffff54c4: e5820308 str r0, [r2, #0x308]
ffff54c8: e3072f0f movw r2, #0x7f0f
ffff54cc: e5832318 str r2, [r3, #0x318]
ffff54d0: e1c32142 bic r2, r3, r2, asr #0x2
ffff54d4: e582130c str r1, [r2, #0x30c]
ffff54d8: e59f2468 ldr r2, =0x84000423
ffff54dc: e5832300 str r2, [r3, #0x300]
ffff54e0: e12fff1e bx lr
int wait_dma_finished(timeout):
ffff54e4: e1a01000 mov r1, r0
ffff54e8: e320f000 nop {0}
ffff54ec: e59f044c ldr r0, =0x01c02000
ffff54f0: e5900300 ldr r0, [r0, #0x300]
ffff54f4: e3100102 tst r0, #-0x80000000 ; 0x80000000
ffff54f8: 1a000001 bne 0xffff5504
ffff54fc: e3a00000 mov r0, #0x0
ffff5500: e12fff1e bx lr
ffff5504: e2410001 sub r0, r1, #0x1
ffff5508: e1b01000 movs r1, r0
ffff550c: 1afffff6 bne 0xffff54ec
ffff5510: e3a00002 mov r0, #0x2
ffff5514: eafffff9 b 0xffff5500
int nand_wait_cmd_finish(int timeout)
{
do {
if (readl(&nfc->st) & NFC_ST_CMD_INT_FLAG)
return 0;
} while (--timeout);
return 2;
}
nand_wait_cmd_finish:
ffff5518: e1a01000 mov r1, r0
ffff551c: e320f000 nop {0}
ffff5520: e59f0424 ldr r0, =0x01c03000
ffff5524: e5900004 ldr r0, [r0, #0x4] ; NANDC_ST
ffff5528: e3100002 tst r0, #0x2 ; NFC_ST_CMD_INT_FLAG
ffff552c: 0a000001 beq 0xffff5538
ffff5530: e3a00000 mov r0, #0x0
ffff5534: e12fff1e bx lr
ffff5538: e2410001 sub r0, r1, #0x1
ffff553c: e1b01000 movs r1, r0
ffff5540: 1afffff6 bne 0xffff5520
ffff5544: e3a00002 mov r0, #0x2
ffff5548: eafffff9 b 0xffff5534
int nand_waid_cmd_fifo_free(int timeout)
{
do {
if (readl(&nfc->st) & NFC_ST_CMD_FIFO_FLAG)
return 0;
} while(--timeout);
return 2;
}
nand_wait_cmd_fifo_free:
ffff554c: e1a01000 mov r1, r0
ffff5550: e320f000 nop {0}
ffff5554: e59f03f0 ldr r0, =0x01c03000
ffff5558: e5900004 ldr r0, [r0, #0x4] ; NANDC_ST
ffff555c: e3100008 tst r0, #0x8 ; NFC_ST_CMD_FIFO_FLAG
ffff5560: 1a000001 bne 0xffff556c
ffff5564: e3a00000 mov r0, #0x0
ffff5568: e12fff1e bx lr
ffff556c: e2410001 sub r0, r1, #0x1
ffff5570: e1b01000 movs r1, r0
ffff5574: 1afffff6 bne 0xffff5554
ffff5578: e3a00002 mov r0, #0x2
ffff557c: eafffff9 b 0xffff5568
nand_wait_dma_transfer_complete(timeout_fifo,timeout_cmd,timeout_dma):
ffff5580: e92d4070 push {r4, r5, r6, lr}
ffff5584: e1a04000 mov r4, r0
ffff5588: e1a05001 mov r5, r1
ffff558c: e1a06002 mov r6, r2
ffff5590: e1a00004 mov r0, r4
ffff5594: ebffffec bl nand_wait_cmd_fifo_free
ffff5598: e3500002 cmp r0, #0x2
ffff559c: 1a000001 bne 0xffff55a8
ffff55a0: e3a00002 mov r0, #0x2
ffff55a4: e8bd8070 pop {r4, r5, r6, pc}
ffff55a8: e1a00005 mov r0, r5
ffff55ac: ebffffd9 bl nand_wait_cmd_finish
ffff55b0: e3500002 cmp r0, #0x2
ffff55b4: 1a000001 bne 0xffff55c0
ffff55b8: e3a00002 mov r0, #0x2
ffff55bc: eafffff8 b 0xffff55a4
ffff55c0: e1a00006 mov r0, r6
ffff55c4: ebffffc6 bl wait_dma_finished(timeout)
ffff55c8: e3500002 cmp r0, #0x2
ffff55cc: 1a000001 bne 0xffff55d8
ffff55d0: e3a00002 mov r0, #0x2
ffff55d4: eafffff2 b 0xffff55a4
ffff55d8: e3a00000 mov r0, #0x0
ffff55dc: eafffff0 b 0xffff55a4
int nand_reset_chip(void)
{
writel(&nfc->cmd, NAND_CMD_RESET | NFC_CMD_SEND_CMD1 | NFC_CMD_WAIT_FLAG);
if (nand_wait_cmd_fifo_free(4800) == 2)
return 2;
if (nand_wait_cmd_finish(4920) == 2)
return 2;
return 0;
}
nand_reset_chip:
ffff55e0: e92d4010 push {r4, lr}
ffff55e4: e59f0364 ldr r0, =0x00c000ff CMD=0x00ff(RESET), SEND_CMD1, WAIT_FLAG RB
ffff55e8: e59f135c ldr r1, =0x01c03000
ffff55ec: e5810024 str r0, [r1, #0x24] ; NFC_CMD
ffff55f0: e3a00d4b mov r0, #0x12c0
ffff55f4: ebffffd4 bl nand_wait_cmd_fifo_free
ffff55f8: e3500002 cmp r0, #0x2
ffff55fc: 1a000001 bne 0xffff5608
ffff5600: e3a00002 mov r0, #0x2
ffff5604: e8bd8010 pop {r4, pc}
ffff5608: e3010338 movw r0, #0x1338
ffff560c: ebffffc1 bl nand_wait_cmd_finish
ffff5610: e3500002 cmp r0, #0x2
ffff5614: 1a000001 bne 0xffff5620
ffff5618: e3a00002 mov r0, #0x2
ffff561c: eafffff8 b 0xffff5604
ffff5620: e3a00000 mov r0, #0x0
ffff5624: eafffff6 b 0xffff5604
nand_read_a(a,b,c):
nand_read_a:
ffff5628: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr}
ffff562c: e1a04000 mov r4, r0
ffff5630: e1a05001 mov r5, r1
ffff5634: e1a06002 mov r6, r2
ffff5638: e59f030c ldr r0, =0x01c03000
ffff563c: e5900000 ldr r0, [r0]
ffff5640: e3800901 orr r0, r0, #0x4000 ; RAM_ACCESS_MODE=DMA
ffff5644: e59f1300 ldr r1, =0x01c03000
ffff5648: e5810000 str r0, [r1] ; CTL
ffff564c: e3a07001 mov r7, #0x1
ffff5650: e3019318 movw r9, #0x1318
ffff5654: e3a00016 mov r0, #0x16
ffff5658: e1600087 smulbb r0, r7, r0
ffff565c: e280ad4b add sl, r0, #0x12c0
ffff5660: e59f02ec ldr r0, =0x00e00530
ffff5664: e5810028 str r0, [r1, #0x28] ; RCMD_SET = RCMD0=05, RCMD1=E0, CMD2=30
ffff5668: e3a01b01 mov r1, #0x400
ffff566c: e1a00005 mov r0, r5
ffff5670: ebffff8d bl f_54ac
ffff5674: e59f02d0 ldr r0, =0x01c03000
ffff5678: e580701c str r7, [r0, #0x1c] ; SECTOR_NUM=?
ffff567c: e1a00009 mov r0, r9
ffff5680: ebffffb1 bl nand_wait_cmd_fifo_free
ffff5684: e3500002 cmp r0, #0x2
ffff5688: 1a000006 bne 0xffff56a8
ffff568c: e59f02ac ldr r0, =0x01c02000
ffff5690: e5900300 ldr r0, [r0, #0x300] ; 0x01c02300 DMA
ffff5694: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5698: e59f12a0 ldr r1, =0x01c02000
ffff569c: e5810300 str r0, [r1, #0x300]
ffff56a0: e3a00002 mov r0, #0x2
ffff56a4: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc}
ffff56a8: e1a08004 mov r8, r4
ffff56ac: e1a04008 mov r4, r8
ffff56b0: e1a00808 lsl r0, r8, #0x10
ffff56b4: e59f1290 ldr r1, =0x01c03000
ffff56b8: e5810014 str r0, [r1, #0x14] ; ADDR_LOW
ffff56bc: e1a04008 mov r4, r8
ffff56c0: e1a00828 lsr r0, r8, #0x10
ffff56c4: e5810018 str r0, [r1, #0x18] ; ADDR_HIGH
ffff56c8: e2860003 add r0, r6, #0x3
ffff56cc: e59f1284 ldr r1, =0x87e80000 ; PAGE_CMD, SEND_CMD2, SEQ, DATA_SWAP_METHOD, SEND_ADR, DATA_TRANS, SEND_CMD1, WAIT_FLAG, CMD1=00
ffff56d0: e1810800 orr r0, r1, r0, lsl #0x10 ; r0 = number of addres bits
ffff56d4: e59f1270 ldr r1, =0x01c03000
ffff56d8: e5810024 str r0, [r1, #0x24] ; NFC_CMD
ffff56dc: e1a0200a mov r2, sl
ffff56e0: e1a0100a mov r1, sl
ffff56e4: e1a0000a mov r0, sl
ffff56e8: ebffffa4 bl nand_wait_dma_transfer_complete
ffff56ec: e3500002 cmp r0, #0x2
ffff56f0: 1a000006 bne 0xffff5710
ffff56f4: e59f0244 ldr r0, =0x01c02000
ffff56f8: e5900300 ldr r0, [r0, #0x300] ; DMA
ffff56fc: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5700: e59f1238 ldr r1, =0x01c02000
ffff5704: e5810300 str r0, [r1, #0x300]
ffff5708: e3a00002 mov r0, #0x2
ffff570c: eaffffe4 b 0xffff56a4
ffff5710: e59f1234 ldr r1, =0x01c03000
ffff5714: e5910038 ldr r0, [r1, #0x38] ; ECC_ST
ffff5718: e1a01007 mov r1, r7
ffff571c: ebffff56 bl f_547c
ffff5720: e3500000 cmp r0, #0x0 ; All sectors OK?
ffff5724: 0a000006 beq 0xffff5744
ffff5728: e59f0210 ldr r0, =0x01c02000
ffff572c: e5900300 ldr r0, [r0, #0x300] ; DMA
ffff5730: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5734: e59f1204 ldr r1, =0x01c02000
ffff5738: e5810300 str r0, [r1, #0x300]
ffff573c: e3a00003 mov r0, #0x3
ffff5740: eaffffd7 b 0xffff56a4
ffff5744: e59f01f4 ldr r0, =0x01c02000
ffff5748: e5900300 ldr r0, [r0, #0x300] ; DMA
ffff574c: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5750: e59f11e8 ldr r1, =0x01c02000
ffff5754: e5810300 str r0, [r1, #0x300]
ffff5758: e3a00000 mov r0, #0x0
ffff575c: eaffffd0 b 0xffff56a4
f_5760:
ffff5760: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr}
ffff5764: e1a04000 mov r4, r0
ffff5768: e1a05001 mov r5, r1
ffff576c: e1a06002 mov r6, r2
ffff5770: e59f01d4 ldr r0, =0x01c03000
ffff5774: e5900000 ldr r0, [r0]
ffff5778: e3800901 orr r0, r0, #0x4000
ffff577c: e59f11c8 ldr r1, =0x01c03000
ffff5780: e5810000 str r0, [r1]
ffff5784: e3a07002 mov r7, #0x2
ffff5788: e3019318 movw r9, #0x1318
ffff578c: e3a00016 mov r0, #0x16
ffff5790: e1600087 smulbb r0, r7, r0
ffff5794: e280ad4b add sl, r0, #0x12c0
ffff5798: e59f01b4 ldr r0, =0x00e00530
ffff579c: e5810028 str r0, [r1, #0x28]
ffff57a0: e3a01b01 mov r1, #0x400
ffff57a4: e1a00005 mov r0, r5
ffff57a8: ebffff3f bl f_54ac
ffff57ac: e59f0198 ldr r0, =0x01c03000
ffff57b0: e580701c str r7, [r0, #0x1c]
ffff57b4: e1a00009 mov r0, r9
ffff57b8: ebffff63 bl nand_wait_cmd_fifo_free
ffff57bc: e3500002 cmp r0, #0x2
ffff57c0: 1a000006 bne 0xffff57e0
ffff57c4: e59f0174 ldr r0, =0x01c02000
ffff57c8: e5900300 ldr r0, [r0, #0x300]
ffff57cc: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff57d0: e59f1168 ldr r1, =0x01c02000
ffff57d4: e5810300 str r0, [r1, #0x300]
ffff57d8: e3a00002 mov r0, #0x2
ffff57dc: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc}
ffff57e0: e1a08004 mov r8, r4
ffff57e4: e1a04008 mov r4, r8
ffff57e8: e1a00808 lsl r0, r8, #0x10
ffff57ec: e59f1158 ldr r1, =0x01c03000
ffff57f0: e5810014 str r0, [r1, #0x14]
ffff57f4: e1a04008 mov r4, r8
ffff57f8: e1a00828 lsr r0, r8, #0x10
ffff57fc: e5810018 str r0, [r1, #0x18]
ffff5800: e2860003 add r0, r6, #0x3
ffff5804: e59f114c ldr r1, =0x87e80000
ffff5808: e1810800 orr r0, r1, r0, lsl #0x10
ffff580c: e59f1138 ldr r1, =0x01c03000
ffff5810: e5810024 str r0, [r1, #0x24]
ffff5814: e1a0200a mov r2, sl
ffff5818: e1a0100a mov r1, sl
ffff581c: e1a0000a mov r0, sl
ffff5820: ebffff56 bl nand_wait_dma_transfer_complete
ffff5824: e3500002 cmp r0, #0x2
ffff5828: 1a000006 bne 0xffff5848
ffff582c: e59f010c ldr r0, =0x01c02000
ffff5830: e5900300 ldr r0, [r0, #0x300]
ffff5834: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5838: e59f1100 ldr r1, =0x01c02000
ffff583c: e5810300 str r0, [r1, #0x300]
ffff5840: e3a00002 mov r0, #0x2
ffff5844: eaffffe4 b 0xffff57dc
ffff5848: e59f10fc ldr r1, =0x01c03000
ffff584c: e5910038 ldr r0, [r1, #0x38]
ffff5850: e1a01007 mov r1, r7
ffff5854: ebffff08 bl f_547c
ffff5858: e3500000 cmp r0, #0x0
ffff585c: 0a000006 beq 0xffff587c
ffff5860: e59f00d8 ldr r0, =0x01c02000
ffff5864: e5900300 ldr r0, [r0, #0x300]
ffff5868: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff586c: e59f10cc ldr r1, =0x01c02000
ffff5870: e5810300 str r0, [r1, #0x300]
ffff5874: e3a00003 mov r0, #0x3
ffff5878: eaffffd7 b 0xffff57dc
ffff587c: e59f00bc ldr r0, =0x01c02000
ffff5880: e5900300 ldr r0, [r0, #0x300]
ffff5884: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5888: e59f10b0 ldr r1, =0x01c02000
ffff588c: e5810300 str r0, [r1, #0x300]
ffff5890: e3a00000 mov r0, #0x0
ffff5894: eaffffd0 b 0xffff57dc
nand_read_a_blocks(a,b,c,d)
nand_read_a_blocks:
ffff5898: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr}
ffff589c: e1a04000 mov r4, r0
ffff58a0: e1a05001 mov r5, r1
ffff58a4: e1a09002 mov r9, r2
ffff58a8: e1a06003 mov r6, r3
ffff58ac: e3a07000 mov r7, #0x0
ffff58b0: ea000009 b 0xffff58dc
ffff58b4: e0891507 add r1, r9, r7, lsl #0xa
ffff58b8: e0840007 add r0, r4, r7
ffff58bc: e1a02006 mov r2, r6
ffff58c0: ebffff58 bl nand_read_a
ffff58c4: e1a08000 mov r8, r0
ffff58c8: e3580000 cmp r8, #0x0
ffff58cc: 0a000001 beq 0xffff58d8
ffff58d0: e1a00008 mov r0, r8
ffff58d4: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc}
ffff58d8: e2877001 add r7, r7, #0x1
ffff58dc: e1570005 cmp r7, r5
ffff58e0: 3afffff3 bcc 0xffff58b4
ffff58e4: e3a00000 mov r0, #0x0
ffff58e8: eafffff9 b 0xffff58d4
f_58ec:
ffff58ec: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr}
ffff58f0: e1a04000 mov r4, r0
ffff58f4: e1a05001 mov r5, r1
ffff58f8: e1a09002 mov r9, r2
ffff58fc: e1a06003 mov r6, r3
ffff5900: e3a07000 mov r7, #0x0
ffff5904: ea000009 b 0xffff5930
ffff5908: e0891507 add r1, r9, r7, lsl #0xa
ffff590c: e0840007 add r0, r4, r7
ffff5910: e1a02006 mov r2, r6
ffff5914: ebffff91 bl f_5760
ffff5918: e1a08000 mov r8, r0
ffff591c: e3580000 cmp r8, #0x0
ffff5920: 0a000001 beq 0xffff592c
ffff5924: e1a00008 mov r0, r8
ffff5928: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc}
ffff592c: e2877001 add r7, r7, #0x1
ffff5930: e1570005 cmp r7, r5
ffff5934: 3afffff3 bcc 0xffff5908
ffff5938: e3a00000 mov r0, #0x0
ffff593c: eafffff9 b 0xffff5928
configurePIO_PC_NAND:
ffff595c: e59f0330 ldr r0, =0x22222222
ffff5960: e59f1330 ldr r1, =0x01c20000
ffff5964: e5810848 str r0, [r1, #0x848] ; PC_CFG0
ffff5968: e581084c str r0, [r1, #0x84c] ; PC_CFG1
ffff596c: e1a00240 asr r0, r0, #0x4
ffff5970: e5810850 str r0, [r1, #0x850] ; PC_CFG2
ffff5974: e3a00002 mov r0, #0x2
ffff5978: e5810854 str r0, [r1, #0x854] ; PC_CFG3
ffff597c: e59f0318 ldr r0, =0x55555555
ffff5980: e581085c str r0, [r1, #0x85c] ; PC_DRV0
ffff5984: e1a00740 asr r0, r0, #0xe
ffff5988: e5810860 str r0, [r1, #0x860] ; PC_DRV1
ffff598c: e3050140 movw r0, #0x5140
ffff5990: e5810864 str r0, [r1, #0x864] ; PC_PULL0
ffff5994: e3040016 movw r0, #0x4016
ffff5998: e5810868 str r0, [r1, #0x868] ; PC_PULL1
ffff599c: e12fff1e bx lr
f_59a0:
ffff59a0: e92d4070 push {r4, r5, r6, lr}
ffff59a4: ebffffec bl configurePIO_PC_NAND
ffff59a8: e59f02e8 ldr r0, =0x01c20000
ffff59ac: e5900060 ldr r0, [r0, #0x60]
ffff59b0: e3c00a02 bic r0, r0, #0x2000
ffff59b4: e59f12dc ldr r1, =0x01c20000
ffff59b8: e5810060 str r0, [r1, #0x60]
ffff59bc: e1a00001 mov r0, r1
ffff59c0: e5900060 ldr r0, [r0, #0x60]
ffff59c4: e3800a02 orr r0, r0, #0x2000
ffff59c8: e5810060 str r0, [r1, #0x60]
ffff59cc: e1a00001 mov r0, r1
ffff59d0: e5900080 ldr r0, [r0, #0x80]
ffff59d4: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff59d8: e5810080 str r0, [r1, #0x80]
ffff59dc: e59f42bc ldr r4, =0x0303000f
ffff59e0: e1a00001 mov r0, r1
ffff59e4: e5900080 ldr r0, [r0, #0x80]
ffff59e8: e1c05004 bic r5, r0, r4
ffff59ec: e3855001 orr r5, r5, #0x1
ffff59f0: e1a00001 mov r0, r1
ffff59f4: e5805080 str r5, [r0, #0x80]
ffff59f8: e5900080 ldr r0, [r0, #0x80]
ffff59fc: e3800102 orr r0, r0, #-0x80000000 ; 0x80000000
ffff5a00: e5810080 str r0, [r1, #0x80]
ffff5a04: e1a00001 mov r0, r1
ffff5a08: e5900060 ldr r0, [r0, #0x60]
ffff5a0c: e3800040 orr r0, r0, #0x40
ffff5a10: e5810060 str r0, [r1, #0x60]
ffff5a14: e3a00003 mov r0, #0x3
ffff5a18: e2411a1d sub r1, r1, #0x1d000
ffff5a1c: e5810000 str r0, [r1]
ffff5a20: e3a00000 mov r0, #0x0
ffff5a24: ea000000 b 0xffff5a2c
ffff5a28: e2800001 add r0, r0, #0x1
ffff5a2c: e35000f0 cmp r0, #0xf0
ffff5a30: 3afffffc bcc 0xffff5a28
ffff5a34: e8bd8070 pop {r4, r5, r6, pc}
f_5a38:
ffff5a38: e3a00000 mov r0, #0x0
ffff5a3c: e59f1254 ldr r1, =0x01c20000
ffff5a40: e5810848 str r0, [r1, #0x848] ; PC_CFG0
ffff5a44: e581084c str r0, [r1, #0x84c] ; PC_CFG1
ffff5a48: e5810850 str r0, [r1, #0x850] ; PC_CFG2
ffff5a4c: e5810854 str r0, [r1, #0x854] ; PC_CFG3
ffff5a50: e59f0244 ldr r0, =0x55555555
ffff5a54: e581085c str r0, [r1, #0x85c] ; PC_DRV0
ffff5a58: e1a00740 asr r0, r0, #0xe
ffff5a5c: e5810860 str r0, [r1, #0x860] ; PC_DRV1
ffff5a60: e3050140 movw r0, #0x5140
ffff5a64: e5810864 str r0, [r1, #0x864] ; PC_PULL0
ffff5a68: e3040016 movw r0, #0x4016
ffff5a6c: e5810868 str r0, [r1, #0x868] ; PC_PULL1
ffff5a70: e12fff1e bx lr
nand_set_boot_random_seed:
ffff5a74: e59f0228 ldr r0, =0x4a800008 ; RANDOM_EN,RANDOM_SEED=0x4a80
ffff5a78: e59f1228 ldr r1, =0x01c03000 ; NAND
ffff5a7c: e5810034 str r0, [r1, #0x34] ; ECC_CTL
ffff5a80: e12fff1e bx lr
f_5a84:
ffff5a84: e92d4010 push {r4, lr}
ffff5a88: ebfffff9 bl nand_set_boot_random_seed
ffff5a8c: e59f0214 ldr r0, =0x01c03000
ffff5a90: e5900000 ldr r0, [r0]
ffff5a94: e3c00001 bic r0, r0, #0x1
ffff5a98: e59f1208 ldr r1, =0x01c03000
ffff5a9c: e5810000 str r0, [r1]
ffff5aa0: e2810a1d add r0, r1, #0x1d000
ffff5aa4: e5900080 ldr r0, [r0, #0x80]
ffff5aa8: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5aac: e2811a1d add r1, r1, #0x1d000
ffff5ab0: e5810080 str r0, [r1, #0x80]
ffff5ab4: e1a00001 mov r0, r1
ffff5ab8: e5900060 ldr r0, [r0, #0x60]
ffff5abc: e3c00a02 bic r0, r0, #0x2000
ffff5ac0: e5810060 str r0, [r1, #0x60]
ffff5ac4: e1a00001 mov r0, r1
ffff5ac8: e5900060 ldr r0, [r0, #0x60]
ffff5acc: e3c00040 bic r0, r0, #0x40
ffff5ad0: e5810060 str r0, [r1, #0x60]
ffff5ad4: ebffffd7 bl f_5a38
ffff5ad8: e8bd8010 pop {r4, pc}
f_5adc:
ffff5adc: e92d40f0 push {r4, r5, r6, r7, lr}
ffff5ae0: e3510c02 cmp r1, #0x200
ffff5ae4: 0a000003 beq 0xffff5af8
ffff5ae8: e3510b01 cmp r1, #0x400
ffff5aec: 1a000004 bne 0xffff5b04
ffff5af0: e3a03000 mov r3, #0x0
ffff5af4: ea000005 b 0xffff5b10
ffff5af8: e320f000 nop {0}
ffff5afc: e3a03001 mov r3, #0x1
ffff5b00: ea000002 b 0xffff5b10
ffff5b04: e320f000 nop {0}
ffff5b08: e3a03000 mov r3, #0x0
ffff5b0c: e320f000 nop {0}
ffff5b10: e320f000 nop {0}
ffff5b14: e3500040 cmp r0, #0x40
ffff5b18: 1a000001 bne 0xffff5b24
ffff5b1c: e3a05008 mov r5, #0x8
ffff5b20: ea000002 b 0xffff5b30
ffff5b24: e320f000 nop {0}
ffff5b28: e3a05008 mov r5, #0x8
ffff5b2c: e320f000 nop {0}
ffff5b30: e320f000 nop {0}
ffff5b34: e59f616c ldr r6, =0x01c03000
ffff5b38: e5964034 ldr r4, [r6, #0x34]
ffff5b3c: e30f6220 movw r6, #0xf220
ffff5b40: e1c44006 bic r4, r4, r6
ffff5b44: e1846605 orr r6, r4, r5, lsl #0xc
ffff5b48: e1866283 orr r6, r6, r3, lsl #0x5
ffff5b4c: e3866001 orr r6, r6, #0x1
ffff5b50: e1866482 orr r6, r6, r2, lsl #0x9
ffff5b54: e59f714c ldr r7, =0x01c03000
ffff5b58: e5876034 str r6, [r7, #0x34]
ffff5b5c: e8bd80f0 pop {r4, r5, r6, r7, pc}
f_5b60:
ffff5b60: e92d47f0 push {r4, r5, r6, r7, r8, r9, sl, lr}
ffff5b64: e1a04000 mov r4, r0
ffff5b68: ebffff8c bl f_59a0
ffff5b6c: e5940008 ldr r0, [r4, #0x8]
ffff5b70: e3500000 cmp r0, #0x0
ffff5b74: 0a000000 beq 0xffff5b7c
ffff5b78: ebfffe98 bl nand_reset_chip
ffff5b7c: e594001c ldr r0, [r4, #0x1c]
ffff5b80: e5942020 ldr r2, [r4, #0x20]
ffff5b84: e5941024 ldr r1, [r4, #0x24]
ffff5b88: ebffffd3 bl f_5adc
ffff5b8c: e59f0114 ldr r0, =0x01c03000
ffff5b90: e5900000 ldr r0, [r0]
ffff5b94: e59f1110 ldr r1, =0xfff3b0fb
ffff5b98: e0005001 and r5, r0, r1
ffff5b9c: e5940014 ldr r0, [r4, #0x14]
ffff5ba0: e3500008 cmp r0, #0x8
ffff5ba4: 0a000010 beq 0xffff5bec
ffff5ba8: ca000004 bgt 0xffff5bc0
ffff5bac: e3500002 cmp r0, #0x2
ffff5bb0: 0a000007 beq 0xffff5bd4
ffff5bb4: e3500004 cmp r0, #0x4
ffff5bb8: 1a000014 bne 0xffff5c10
ffff5bbc: ea000007 b 0xffff5be0
ffff5bc0: e3500010 cmp r0, #0x10
ffff5bc4: 0a00000b beq 0xffff5bf8
ffff5bc8: e3500020 cmp r0, #0x20
ffff5bcc: 1a00000f bne 0xffff5c10
ffff5bd0: ea00000b b 0xffff5c04
ffff5bd4: e320f000 nop {0}
ffff5bd8: e3a06000 mov r6, #0x0
ffff5bdc: ea00000e b 0xffff5c1c
ffff5be0: e320f000 nop {0}
ffff5be4: e3a06001 mov r6, #0x1
ffff5be8: ea00000b b 0xffff5c1c
ffff5bec: e320f000 nop {0}
ffff5bf0: e3a06002 mov r6, #0x2
ffff5bf4: ea000008 b 0xffff5c1c
ffff5bf8: e320f000 nop {0}
ffff5bfc: e3a06003 mov r6, #0x3
ffff5c00: ea000005 b 0xffff5c1c
ffff5c04: e320f000 nop {0}
ffff5c08: e3a06004 mov r6, #0x4
ffff5c0c: ea000002 b 0xffff5c1c
ffff5c10: e320f000 nop {0}
ffff5c14: e3a06000 mov r6, #0x0
ffff5c18: e320f000 nop {0}
ffff5c1c: e320f000 nop {0}
ffff5c20: e5940004 ldr r0, [r4, #0x4]
ffff5c24: e2007003 and r7, r0, #0x3
ffff5c28: e1850907 orr r0, r5, r7, lsl #0x12
ffff5c2c: e1800406 orr r0, r0, r6, lsl #0x8
ffff5c30: e3800901 orr r0, r0, #0x4000
ffff5c34: e59f106c ldr r1, =0x01c03000
ffff5c38: e5810000 str r0, [r1]
ffff5c3c: e1a00001 mov r0, r1
ffff5c40: e590000c ldr r0, [r0, #0xc]
ffff5c44: e3001f3f movw r1, #0xf3f
ffff5c48: e1c05001 bic r5, r0, r1
ffff5c4c: e5940004 ldr r0, [r4, #0x4]
ffff5c50: e3500003 cmp r0, #0x3
ffff5c54: 1a000004 bne 0xffff5c6c
ffff5c58: e594000c ldr r0, [r4, #0xc]
ffff5c5c: e200800f and r8, r0, #0xf
ffff5c60: e5940010 ldr r0, [r4, #0x10]
ffff5c64: e200903f and r9, r0, #0x3f
ffff5c68: ea000001 b 0xffff5c74
ffff5c6c: e3a08000 mov r8, #0x0
ffff5c70: e3a09000 mov r9, #0x0
ffff5c74: e1850408 orr r0, r5, r8, lsl #0x8
ffff5c78: e1800009 orr r0, r0, r9
ffff5c7c: e59f1024 ldr r1, =0x01c03000
ffff5c80: e581000c str r0, [r1, #0xc]
ffff5c84: e5940014 ldr r0, [r4, #0x14]
ffff5c88: e1a00480 lsl r0, r0, #0x9
ffff5c8c: e58100a0 str r0, [r1, #0xa0]
ffff5c90: e8bd87f0 pop {r4, r5, r6, r7, r8, r9, sl, pc}
f_5cb0:
ffff5cb0: e92d41f0 push {r4, r5, r6, r7, r8, lr}
ffff5cb4: eb00003c bl f_5dac
ffff5cb8: e3a04000 mov r4, #0x0
ffff5cbc: ea000027 b 0xffff5d60
ffff5cc0: e1a00004 mov r0, r4
ffff5cc4: eb00014f bl f_6208
ffff5cc8: e1a05000 mov r5, r0
ffff5ccc: e3a02001 mov r2, #0x1
ffff5cd0: e3a01000 mov r1, #0x0
ffff5cd4: e1a00001 mov r0, r1
ffff5cd8: e12fff35 blx r5
ffff5cdc: e3500002 cmp r0, #0x2
ffff5ce0: 1a000000 bne 0xffff5ce8
ffff5ce4: ea00001c b 0xffff5d5c
ffff5ce8: e28f1084 ldr r1, =eGON_BT0
ffff5cec: e3a00000 mov r0, #0x0
ffff5cf0: eb000152 bl f_6240
ffff5cf4: e3500000 cmp r0, #0x0
ffff5cf8: 0a000000 beq 0xffff5d00
ffff5cfc: ea000016 b 0xffff5d5c
ffff5d00: e3a07000 mov r7, #0x0
ffff5d04: e5976010 ldr r6, [r7, #0x10]
ffff5d08: e1a00006 mov r0, r6
ffff5d0c: e7df049f bfc r0, #0x9, #0x17
ffff5d10: e3500000 cmp r0, #0x0
ffff5d14: 0a000000 beq 0xffff5d1c
ffff5d18: ea00000f b 0xffff5d5c
ffff5d1c: e1a02426 lsr r2, r6, #0x8
ffff5d20: e3a01000 mov r1, #0x0
ffff5d24: e1a00001 mov r0, r1
ffff5d28: e12fff35 blx r5
ffff5d2c: e3500002 cmp r0, #0x2
ffff5d30: 1a000000 bne 0xffff5d38
ffff5d34: ea000008 b 0xffff5d5c
ffff5d38: e1a01006 mov r1, r6
ffff5d3c: e3a00000 mov r0, #0x0
ffff5d40: eb000151 bl f_628c
ffff5d44: e3500000 cmp r0, #0x0
ffff5d48: 1a000002 bne 0xffff5d58
ffff5d4c: eb000035 bl f_5e28
ffff5d50: e3a00000 mov r0, #0x0
ffff5d54: e8bd81f0 pop {r4, r5, r6, r7, r8, pc}
ffff5d58: e320f000 nop {0}
ffff5d5c: e2844001 add r4, r4, #0x1
ffff5d60: e3540002 cmp r4, #0x2
ffff5d64: 3affffd5 bcc 0xffff5cc0
ffff5d68: eb00002e bl f_5e28
ffff5d6c: e3e00000 mvn r0, #0x0
ffff5d70: eafffff7 b 0xffff5d54
ffff5d74: 4e4f4765 cdpmi 7, 4, cr4, cr15, cr5, {3}
ffff5d78: 3054422e subscc r4, r4, lr, lsr #0x4
ffff5d7c: 00000000 andeq r0, r0, r0
f_5d80:
ffff5d80: e3001333 movw r1, #0x333 ; SPI0_MOSI, SPI0_MISO, SPI0_CLK
ffff5d84: e59f2498 ldr r2, =0x01c20000
ffff5d88: e5821848 str r1, [r2, #0x848] ; PC_CFG0
ffff5d8c: e3a01203 mov r1, #0x30000000 ; SPI0_CS0
ffff5d90: e5821850 str r1, [r2, #0x850] ; PC_CFG2
ffff5d94: e1c21001 bic r1, r2, r1
ffff5d98: e5910868 ldr r0, [r1, #0x868] ; PC_PULL1
ffff5d9c: e3c00903 bic r0, r0, #0xc000]
ffff5da0: e3800901 orr r0, r0, #0x4000] ; SPI0_CS0=PULLDOWN
ffff5da4: e5810868 str r0, [r1, #0x868] ; PC_PULL1
ffff5da8: e12fff1e bx lr
f_5dac:
ffff5dac: e92d4010 push {r4, lr}
ffff5db0: e59f046c ldr r0, =0x01c20000
ffff5db4: e5900060 ldr r0, [r0, #0x60]
ffff5db8: e3800601 orr r0, r0, #0x100000
ffff5dbc: e59f1460 ldr r1, =0x01c20000
ffff5dc0: e5810060 str r0, [r1, #0x60]
ffff5dc4: e1a00001 mov r0, r1
ffff5dc8: e59000a0 ldr r0, [r0, #0xa0]
ffff5dcc: e3800102 orr r0, r0, #-0x80000000 ; 0x80000000
ffff5dd0: e58100a0 str r0, [r1, #0xa0]
ffff5dd4: ebffffe9 bl f_5d80
ffff5dd8: e59f0444 ldr r0, =0x01c20000
ffff5ddc: e5900060 ldr r0, [r0, #0x60]
ffff5de0: e3800040 orr r0, r0, #0x40
ffff5de4: e59f1438 ldr r1, =0x01c20000
ffff5de8: e5810060 str r0, [r1, #0x60]
ffff5dec: e3010002 movw r0, #0x1002
ffff5df0: e2411a1b sub r1, r1, #0x1b000
ffff5df4: e581001c str r0, [r1, #0x1c]
ffff5df8: e3000202 movw r0, #0x202
ffff5dfc: e5810014 str r0, [r1, #0x14]
ffff5e00: e59f0420 ldr r0, =0x0004831f
ffff5e04: e5810008 str r0, [r1, #0x8]
ffff5e08: e8bd8010 pop {r4, pc}
f_5e0c:
ffff5e0c: e3a00000 mov r0, #0x0
ffff5e10: e59f140c ldr r1, =0x01c20000
ffff5e14: e5810848 str r0, [r1, #0x848]
ffff5e18: e5810850 str r0, [r1, #0x850]
ffff5e1c: e3040016 movw r0, #0x4016 ; PC_PULL1=DEFAULT
ffff5e20: e5810868 str r0, [r1, #0x868]
ffff5e24: e12fff1e bx lr
f_5e28:
ffff5e28: e92d4010 push {r4, lr}
ffff5e2c: e3a00000 mov r0, #0x0
ffff5e30: e59f13f4 ldr r1, =0x01c05000
ffff5e34: e5810014 str r0, [r1, #0x14]
ffff5e38: e1c10000 bic r0, r1, r0
ffff5e3c: e5900008 ldr r0, [r0, #0x8]
ffff5e40: e3c00001 bic r0, r0, #0x1
ffff5e44: e5810008 str r0, [r1, #0x8]
ffff5e48: ebffffef bl f_5e0c
ffff5e4c: e59f03d0 ldr r0, =0x01c20000
ffff5e50: e5900060 ldr r0, [r0, #0x60]
ffff5e54: e3c00040 bic r0, r0, #0x40
ffff5e58: e59f13c4 ldr r1, =0x01c20000
ffff5e5c: e5810060 str r0, [r1, #0x60]
ffff5e60: e1a00001 mov r0, r1
ffff5e64: e59000a0 ldr r0, [r0, #0xa0]
ffff5e68: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5e6c: e58100a0 str r0, [r1, #0xa0]
ffff5e70: e1a00001 mov r0, r1
ffff5e74: e5900060 ldr r0, [r0, #0x60]
ffff5e78: e3c00601 bic r0, r0, #0x100000
ffff5e7c: e5810060 str r0, [r1, #0x60]
ffff5e80: e8bd8010 pop {r4, pc}
f_5e84:
ffff5e84: e1a01000 mov r1, r0
ffff5e88: e320f000 nop {0}
ffff5e8c: e59f039c ldr r0, =0x01c02000
ffff5e90: e5900120 ldr r0, [r0, #0x120]
ffff5e94: e3100102 tst r0, #-0x80000000 ; 0x80000000
ffff5e98: 1a000001 bne 0xffff5ea4
ffff5e9c: e3a00000 mov r0, #0x0
ffff5ea0: e12fff1e bx lr
ffff5ea4: e2410001 sub r0, r1, #0x1
ffff5ea8: e1b01000 movs r1, r0
ffff5eac: 1afffff6 bne 0xffff5e8c
ffff5eb0: e3a00002 mov r0, #0x2
ffff5eb4: eafffff9 b 0xffff5ea0
f_5eb8:
ffff5eb8: e1a01000 mov r1, r0
ffff5ebc: e320f000 nop {0}
ffff5ec0: e59f0368 ldr r0, =0x01c02000
ffff5ec4: e5900140 ldr r0, [r0, #0x140]
ffff5ec8: e3100102 tst r0, #-0x80000000 ; 0x80000000
ffff5ecc: 1a000001 bne 0xffff5ed8
ffff5ed0: e3a00000 mov r0, #0x0
ffff5ed4: e12fff1e bx lr
ffff5ed8: e2410001 sub r0, r1, #0x1
ffff5edc: e1b01000 movs r1, r0
ffff5ee0: 1afffff6 bne 0xffff5ec0
ffff5ee4: e3a00002 mov r0, #0x2
ffff5ee8: eafffff9 b 0xffff5ed4
f_5eec:
ffff5eec: e30f1fff movw r1, #0xffff
ffff5ef0: e320f000 nop {0}
ffff5ef4: e1b00001 movs r0, r1
ffff5ef8: e2411001 sub r1, r1, #0x1
ffff5efc: 0a000003 beq 0xffff5f10
ffff5f00: e59f0324 ldr r0, =0x01c05000
ffff5f04: e5900010 ldr r0, [r0, #0x10]
ffff5f08: e3100102 tst r0, #-0x80000000 ; 0x80000000
ffff5f0c: 1afffff8 bne 0xffff5ef4
ffff5f10: e3510000 cmp r1, #0x0
ffff5f14: da000001 ble 0xffff5f20
ffff5f18: e3a00000 mov r0, #0x0
ffff5f1c: e12fff1e bx lr
ffff5f20: e3a00002 mov r0, #0x2
ffff5f24: eafffffc b 0xffff5f1c
f_5f28:
ffff5f28: e1a01000 mov r1, r0
ffff5f2c: e320f000 nop {0}
ffff5f30: e59f02f4 ldr r0, =0x01c05000
ffff5f34: e5900010 ldr r0, [r0, #0x10]
ffff5f38: e3100801 tst r0, #0x10000
ffff5f3c: 0a000001 beq 0xffff5f48
ffff5f40: e3a00000 mov r0, #0x0
ffff5f44: e12fff1e bx lr
ffff5f48: e2410001 sub r0, r1, #0x1
ffff5f4c: e1b01000 movs r1, r0
ffff5f50: 1afffff6 bne 0xffff5f30
ffff5f54: e3a00002 mov r0, #0x2
ffff5f58: eafffff9 b 0xffff5f44
f_5f5c:
ffff5f5c: e92d41f0 push {r4, r5, r6, r7, r8, lr}
ffff5f60: e1a04000 mov r4, r0
ffff5f64: e1a05001 mov r5, r1
ffff5f68: e1a06002 mov r6, r2
ffff5f6c: e1a07003 mov r7, r3
ffff5f70: e0840005 add r0, r4, r5
ffff5f74: e2808e96 add r8, r0, #0x960
ffff5f78: e0840005 add r0, r4, r5
ffff5f7c: e59f12a8 ldr r1, =0x01c05000
ffff5f80: e5810020 str r0, [r1, #0x20]
ffff5f84: e1a00001 mov r0, r1
ffff5f88: e5804024 str r4, [r0, #0x24]
ffff5f8c: e2400a03 sub r0, r0, #0x3000
ffff5f90: e5806144 str r6, [r0, #0x144]
ffff5f94: e2810004 add r0, r1, #0x4
ffff5f98: e2411a03 sub r1, r1, #0x3000
ffff5f9c: e5810148 str r0, [r1, #0x148]
ffff5fa0: e1c101c0 bic r0, r1, r0, asr #0x3
ffff5fa4: e580414c str r4, [r0, #0x14c]
ffff5fa8: e59f0284 ldr r0, =0x9c380415
ffff5fac: e5810140 str r0, [r1, #0x140]
ffff5fb0: e2810a03 add r0, r1, #0x3000
ffff5fb4: e5810124 str r0, [r1, #0x124]
ffff5fb8: e2400a03 sub r0, r0, #0x3000
ffff5fbc: e5807128 str r7, [r0, #0x128]
ffff5fc0: e580512c str r5, [r0, #0x12c]
ffff5fc4: e59f026c ldr r0, =0x9c150438
ffff5fc8: e5810120 str r0, [r1, #0x120]
ffff5fcc: e2810a03 add r0, r1, #0x3000
ffff5fd0: e5900008 ldr r0, [r0, #0x8]
ffff5fd4: e3800b01 orr r0, r0, #0x400
ffff5fd8: e2811a03 add r1, r1, #0x3000
ffff5fdc: e5810008 str r0, [r1, #0x8]
ffff5fe0: e1a00008 mov r0, r8
ffff5fe4: ebffffb3 bl f_5eb8
ffff5fe8: e3500002 cmp r0, #0x2
ffff5fec: 1a00000a bne 0xffff601c
ffff5ff0: e59f0238 ldr r0, =0x01c02000
ffff5ff4: e5900140 ldr r0, [r0, #0x140]
ffff5ff8: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff5ffc: e59f122c ldr r1, =0x01c02000
ffff6000: e5810140 str r0, [r1, #0x140]
ffff6004: e1a00001 mov r0, r1
ffff6008: e5900120 ldr r0, [r0, #0x120]
ffff600c: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff6010: e5810120 str r0, [r1, #0x120]
ffff6014: e3a00002 mov r0, #0x2
ffff6018: e8bd81f0 pop {r4, r5, r6, r7, r8, pc}
ffff601c: e1a00008 mov r0, r8
ffff6020: ebffff97 bl f_5e84
ffff6024: e3500002 cmp r0, #0x2
ffff6028: 1a00000a bne 0xffff6058
ffff602c: e59f01fc ldr r0, =0x01c02000
ffff6030: e5900140 ldr r0, [r0, #0x140]
ffff6034: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff6038: e59f11f0 ldr r1, =0x01c02000
ffff603c: e5810140 str r0, [r1, #0x140]
ffff6040: e1a00001 mov r0, r1
ffff6044: e5900120 ldr r0, [r0, #0x120]
ffff6048: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff604c: e5810120 str r0, [r1, #0x120]
ffff6050: e3a00002 mov r0, #0x2
ffff6054: eaffffef b 0xffff6018
ffff6058: e1a00008 mov r0, r8
ffff605c: ebffffb1 bl f_5f28
ffff6060: e3500002 cmp r0, #0x2
ffff6064: 1a00000a bne 0xffff6094
ffff6068: e59f01c0 ldr r0, =0x01c02000
ffff606c: e5900140 ldr r0, [r0, #0x140]
ffff6070: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff6074: e59f11b4 ldr r1, =0x01c02000
ffff6078: e5810140 str r0, [r1, #0x140]
ffff607c: e1a00001 mov r0, r1
ffff6080: e5900120 ldr r0, [r0, #0x120]
ffff6084: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff6088: e5810120 str r0, [r1, #0x120]
ffff608c: e3a00002 mov r0, #0x2
ffff6090: eaffffe0 b 0xffff6018
ffff6094: e59f0194 ldr r0, =0x01c02000
ffff6098: e5900140 ldr r0, [r0, #0x140]
ffff609c: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff60a0: e59f1188 ldr r1, =0x01c02000
ffff60a4: e5810140 str r0, [r1, #0x140]
ffff60a8: e1a00001 mov r0, r1
ffff60ac: e5900120 ldr r0, [r0, #0x120]
ffff60b0: e3c00102 bic r0, r0, #-0x80000000 ; 0x80000000
ffff60b4: e5810120 str r0, [r1, #0x120]
ffff60b8: e2810a03 add r0, r1, #0x3000
ffff60bc: e5900010 ldr r0, [r0, #0x10]
ffff60c0: e3800801 orr r0, r0, #0x10000
ffff60c4: e2811a03 add r1, r1, #0x3000
ffff60c8: e5810010 str r0, [r1, #0x10]
ffff60cc: ebffff86 bl f_5eec
ffff60d0: e3500002 cmp r0, #0x2
ffff60d4: 1a000001 bne 0xffff60e0
ffff60d8: e3a00002 mov r0, #0x2
ffff60dc: eaffffcd b 0xffff6018
ffff60e0: e3a00000 mov r0, #0x0
ffff60e4: eaffffcb b 0xffff6018
f_60e8:
ffff60e8: e92d4ff8 push {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
ffff60ec: e1a04000 mov r4, r0
ffff60f0: e1a05001 mov r5, r1
ffff60f4: e1a06002 mov r6, r2
ffff60f8: e1a0b005 mov fp, r5
ffff60fc: e3a08000 mov r8, #0x0
ffff6100: e1a07404 lsl r7, r4, #0x8
ffff6104: e1a0a406 lsl sl, r6, #0x8
ffff6108: ea000018 b 0xffff6170
ffff610c: e3a00003 mov r0, #0x3
ffff6110: e5cd0000 strb r0, [sp]
ffff6114: e1a00827 lsr r0, r7, #0x10
ffff6118: e5cd0001 strb r0, [sp, #0x1]
ffff611c: e1a00427 lsr r0, r7, #0x8
ffff6120: e5cd0002 strb r0, [sp, #0x2]
ffff6124: e5cd7003 strb r7, [sp, #0x3]
ffff6128: e04a0008 sub r0, sl, r8
ffff612c: e3500b02 cmp r0, #0x800
ffff6130: 9a000001 bls 0xffff613c
ffff6134: e3a00b02 mov r0, #0x800
ffff6138: ea000000 b 0xffff6140
ffff613c: e04a0008 sub r0, sl, r8
ffff6140: e1a09000 mov r9, r0
ffff6144: e08b3008 add r3, fp, r8
ffff6148: e1a0200d mov r2, sp
ffff614c: e1a01009 mov r1, r9
ffff6150: e3a00004 mov r0, #0x4
ffff6154: ebffff80 bl f_5f5c
ffff6158: e3500002 cmp r0, #0x2
ffff615c: 1a000001 bne 0xffff6168
ffff6160: e3a00002 mov r0, #0x2
ffff6164: e8bd8ff8 pop {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
ffff6168: e0877009 add r7, r7, r9
ffff616c: e0888009 add r8, r8, r9
ffff6170: e158000a cmp r8, sl
ffff6174: 3affffe4 bcc 0xffff610c
ffff6178: e3a00000 mov r0, #0x0
ffff617c: eafffff8 b 0xffff6164
f_6180:
ffff6180: e92d47fc push {r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
ffff6184: e1a04000 mov r4, r0
ffff6188: e1a05001 mov r5, r1
ffff618c: e1a06002 mov r6, r2
ffff6190: e1a09005 mov r9, r5
ffff6194: e3a00000 mov r0, #0x0
ffff6198: e58d0004 str r0, [sp, #0x4]
ffff619c: e3a07000 mov r7, #0x0
ffff61a0: e3a0a000 mov sl, #0x0
ffff61a4: e1a08484 lsl r8, r4, #0x9
ffff61a8: ea000012 b 0xffff61f8
ffff61ac: e3a000e8 mov r0, #0xe8
ffff61b0: e5cd0000 strb r0, [sp]
ffff61b4: e1a00828 lsr r0, r8, #0x10
ffff61b8: e5cd0001 strb r0, [sp, #0x1]
ffff61bc: e1a00428 lsr r0, r8, #0x8
ffff61c0: e5cd0002 strb r0, [sp, #0x2]
ffff61c4: e5cd8003 strb r8, [sp, #0x3]
ffff61c8: e089300a add r3, r9, sl
ffff61cc: e1a0200d mov r2, sp
ffff61d0: e3a01c01 mov r1, #0x100
ffff61d4: e3a00008 mov r0, #0x8
ffff61d8: ebffff5f bl f_5f5c
ffff61dc: e3500002 cmp r0, #0x2
ffff61e0: 1a000001 bne 0xffff61ec
ffff61e4: e3a00002 mov r0, #0x2
ffff61e8: e8bd87fc pop {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
ffff61ec: e2877001 add r7, r7, #0x1
ffff61f0: e28aac01 add sl, sl, #0x100
ffff61f4: e2888c02 add r8, r8, #0x200
ffff61f8: e1570006 cmp r7, r6
ffff61fc: 3affffea bcc 0xffff61ac
ffff6200: e3a00000 mov r0, #0x0
ffff6204: eafffff7 b 0xffff61e8
f_6208:
ffff6208: e92d400c push {r2, r3, lr}
ffff620c: e1a01000 mov r1, r0
ffff6210: e59f2024 ldr r2, =d_6608
ffff6214: e8920005 ldm r2, {r0, r2}
ffff6218: e88d0005 stm sp, {r0, r2}
ffff621c: e79d0101 ldr r0, [sp, r1, lsl #0x2]
ffff6220: e8bd800c pop {r2, r3, pc}
f_6240:
ffff6240: e92d40f0 push {r4, r5, r6, r7, lr}
ffff6244: e1a02000 mov r2, r0
ffff6248: e1a03002 mov r3, r2
ffff624c: e1a02003 mov r2, r3
ffff6250: e2836004 add r6, r3, #0x4
ffff6254: e3a04000 mov r4, #0x0
ffff6258: e3a05008 mov r5, #0x8
ffff625c: ea000006 b 0xffff627c
ffff6260: e4d60001 ldrb r0, [r6], #0x1
ffff6264: e4d17001 ldrb r7, [r1], #0x1
ffff6268: e1500007 cmp r0, r7
ffff626c: 0a000001 beq 0xffff6278
ffff6270: e3a00001 mov r0, #0x1
ffff6274: e8bd80f0 pop {r4, r5, r6, r7, pc}
ffff6278: e2844001 add r4, r4, #0x1
ffff627c: e1540005 cmp r4, r5
ffff6280: 3afffff6 bcc 0xffff6260
ffff6284: e3a00000 mov r0, #0x0
ffff6288: eafffff9 b 0xffff6274
f_628c:
ffff628c: e92d40f0 push {r4, r5, r6, r7, lr}
ffff6290: e1a02000 mov r2, r0
ffff6294: e1a06002 mov r6, r2
ffff6298: e1a02006 mov r2, r6
ffff629c: e596500c ldr r5, [r6, #0xc]
ffff62a0: e59f00c0 ldr r0, =0x5f0a6c39
ffff62a4: e1a02006 mov r2, r6
ffff62a8: e586000c str r0, [r6, #0xc]
ffff62ac: e1a04121 lsr r4, r1, #0x2
ffff62b0: e3a07000 mov r7, #0x0
ffff62b4: e1a03002 mov r3, r2
ffff62b8: e320f000 nop {0}
ffff62bc: e4930004 ldr r0, [r3], #0x4
ffff62c0: e0877000 add r7, r7, r0
ffff62c4: e4930004 ldr r0, [r3], #0x4
ffff62c8: e0877000 add r7, r7, r0
ffff62cc: e4930004 ldr r0, [r3], #0x4
ffff62d0: e0877000 add r7, r7, r0
ffff62d4: e4930004 ldr r0, [r3], #0x4
ffff62d8: e0877000 add r7, r7, r0
ffff62dc: e2440004 sub r0, r4, #0x4
ffff62e0: e1a04000 mov r4, r0
ffff62e4: e3500003 cmp r0, #0x3
ffff62e8: 8afffff3 bhi 0xffff62bc
ffff62ec: ea000001 b 0xffff62f8
ffff62f0: e4930004 ldr r0, [r3], #0x4
ffff62f4: e0877000 add r7, r7, r0
ffff62f8: e1b00004 movs r0, r4
ffff62fc: e2444001 sub r4, r4, #0x1
ffff6300: 1afffffa bne 0xffff62f0
ffff6304: e586500c str r5, [r6, #0xc]
ffff6308: e1570005 cmp r7, r5
ffff630c: 1a000001 bne 0xffff6318
ffff6310: e3a00000 mov r0, #0x0
ffff6314: e8bd80f0 pop {r4, r5, r6, r7, pc}
ffff6318: e3a00001 mov r0, #0x1
ffff631c: eafffffc b 0xffff6314
ffff6320: e92d4070 push {r4, r5, r6, lr}
ffff6324: e1a04000 mov r4, r0
ffff6328: e1a05001 mov r5, r1
ffff632c: e1a06002 mov r6, r2
ffff6330: e1a01006 mov r1, r6
ffff6334: e1a00004 mov r0, r4
ffff6338: ebffffc0 bl f_6240
ffff633c: e3500000 cmp r0, #0x0
ffff6340: 1a000006 bne 0xffff6360
ffff6344: e1a01005 mov r1, r5
ffff6348: e1a00004 mov r0, r4
ffff634c: ebffffce bl f_628c
ffff6350: e3500000 cmp r0, #0x0
ffff6354: 1a000001 bne 0xffff6360
ffff6358: e3a00000 mov r0, #0x0
ffff635c: e8bd8070 pop {r4, r5, r6, pc}
ffff6360: e3a00001 mov r0, #0x1
ffff6364: eafffffc b 0xffff635c
udelay:
ffff636c: e1a01000 mov r1, r0
ffff6370: ea000000 b 0xffff6378
ffff6374: e2411001 sub r1, r1, #0x1
ffff6378: e3510000 cmp r1, #0x0
ffff637c: cafffffc bgt 0xffff6374
ffff6380: e12fff1e bx lr
check_uboot:
ffff6384: e92d4070 push {r4, r5, r6, lr}
ffff6388: e3a05000 mov r5, #0x0
ffff638c: e3a0603c mov r6, #0x3c
ffff6390: e3a04004 mov r4, #0x4
ffff6394: ea000006 b 0xffff63b4
ffff6398: e1a00006 mov r0, r6
ffff639c: ebfffff2 bl udelay
ffff63a0: e3a00507 mov r0, #0x1c00000
ffff63a4: e5900024 ldr r0, [r0, #0x24] ; = 0x1c00024 FEL button?
ffff63a8: e7e00450 ubfx r0, r0, #0x8, #0x1
ffff63ac: e0855000 add r5, r5, r0
ffff63b0: e2444001 sub r4, r4, #0x1
ffff63b4: e3540000 cmp r4, #0x0
ffff63b8: cafffff6 bgt 0xffff6398
ffff63bc: e3550000 cmp r5, #0x0
ffff63c0: 1a000001 bne 0xffff63cc
ffff63c4: e3e00000 mvn r0, #0x0
ffff63c8: e8bd8070 pop {r4, r5, r6, pc}
ffff63cc: e3a00000 mov r0, #0x0
ffff63d0: eafffffc b 0xffff63c8
ffff63d4: e12fff1e bx lr
memcpy:
ffff63d8: e92d41f0 push {r4, r5, r6, r7, r8, lr}
ffff63dc: e2522020 subs r2, r2, #0x20
ffff63e0: 3a00000d bcc 0xffff641c
ffff63e4: e3520e12 cmp r2, #0x120
ffff63e8: 3a000007 bcc 0xffff640c
ffff63ec: f5d1f100 pld [r1, #0x100]
ffff63f0: e8b151f8 ldm r1!, {r3, r4, r5, r6, r7, r8, ip, lr}
ffff63f4: e2422040 sub r2, r2, #0x40
ffff63f8: e3520e12 cmp r2, #0x120
ffff63fc: e8a051f8 stmia r0!, {r3, r4, r5, r6, r7, r8, ip, lr}
ffff6400: e8b151f8 ldm r1!, {r3, r4, r5, r6, r7, r8, ip, lr}
ffff6404: e8a051f8 stmia r0!, {r3, r4, r5, r6, r7, r8, ip, lr}
ffff6408: 2afffff7 bcs 0xffff63ec
ffff640c: e8b151f8 ldm r1!, {r3, r4, r5, r6, r7, r8, ip, lr}
ffff6410: e2522020 subs r2, r2, #0x20
ffff6414: e8a051f8 stmia r0!, {r3, r4, r5, r6, r7, r8, ip, lr}
ffff6418: 2afffffb bcs 0xffff640c
ffff641c: e1b0ce02 lsls ip, r2, #0x1c
ffff6420: 28b15018 ldmcs r1!, {r3, r4, ip, lr}
ffff6424: 28a05018 stmiacs r0!, {r3, r4, ip, lr}
ffff6428: 48b10018 ldmmi r1!, {r3, r4}
ffff642c: 48a00018 stmiami r0!, {r3, r4}
ffff6430: e8bd41f0 pop {r4, r5, r6, r7, r8, lr}
ffff6434: e1b0cf02 lsls ip, r2, #0x1e
ffff6438: 24913004 ldrcs r3, [r1], #0x4
ffff643c: 24803004 strcs r3, [r0], #0x4
ffff6440: 012fff1e bxeq lr
ffff6444: e1b02f82 lsls r2, r2, #0x1f
ffff6448: 20d130b2 ldrhcs r3, [r1], #0x2
ffff644c: 44d12001 ldrbmi r2, [r1], #0x1
ffff6450: 20c030b2 strhcs r3, [r0], #0x2
ffff6454: 44c02001 strbmi r2, [r0], #0x1
ffff6458: e12fff1e bx lr
call_r0:
ffff645c: e1a0f000 mov pc, r0
d_6460:
ffff6460: .l 0x00000000
ffff6464: .l 0x00000000
ffff6468: .l 0x00000001
ffff646c: .l 0x00000200
ffff6470: .l 0x00ffffff
ffff6474: .l 0x000000ff
d_6478:
ffff6478: .l nand_read_a_blocks
ffff647c: .l 0x00000000
ffff6480: .l 0x00000001
ffff6484: .l 0x00000000
ffff6488: .l 0x00000000
ffff648c: .l 0x00000002
ffff6490: .l 0x00000001
ffff6494: .l 0x00000040
ffff6498: .l 0x00000001
ffff649c: .l 0x00000400
ffff64a0: .l f_58ec
ffff64a4: .l 0x00000000
ffff64a8: .l 0x00000000
ffff64ac: .l 0x00000000
ffff64b0: .l 0x00000000
ffff64b4: .l 0x00000002
ffff64b8: .l 0x00000001
ffff64bc: .l 0x00000040
ffff64c0: .l 0x00000001
ffff64c4: .l 0x00000200
ffff64c8: .l nand_read_a_blocks
ffff64cc: .l 0x00000000
ffff64d0: .l 0x00000000
ffff64d4: .l 0x00000000
ffff64d8: .l 0x00000000
ffff64dc: .l 0x00000002
ffff64e0: .l 0x00000000
ffff64e4: .l 0x00000040
ffff64e8: .l 0x00000001
ffff64ec: .l 0x00000400
ffff64f0: .l f_58ec
ffff64f4: .l 0x00000000
ffff64f8: .l 0x00000000
ffff64fc: .l 0x00000000
ffff6500: .l 0x00000000
ffff6504: .l 0x00000002
ffff6508: .l 0x00000000
ffff650c: .l 0x00000040
ffff6510: .l 0x00000001
ffff6514: .l 0x00000200
ffff6518: .l nand_read_a_blocks
ffff651c: .l 0x00000003
ffff6520: .l 0x00000001
ffff6524: .l 0x00000001
ffff6528: .l 0x0000003f
ffff652c: .l 0x00000002
ffff6530: .l 0x00000001
ffff6534: .l 0x00000040
ffff6538: .l 0x00000001
ffff653c: .l 0x00000400
ffff6540: .l nand_read_a_blocks
ffff6544: .l 0x00000003
ffff6548: .l 0x00000000
ffff654c: .l 0x00000002
ffff6550: .l 0x0000003f
ffff6554: .l 0x00000002
ffff6558: .l 0x00000001
ffff655c: .l 0x00000040
ffff6560: .l 0x00000001
ffff6564: .l 0x00000400
ffff6568: .l nand_read_a_blocks
ffff656c: .l 0x00000003
ffff6570: .l 0x00000000
ffff6574: .l 0x00000003
ffff6578: .l 0x0000003f
ffff657c: .l 0x00000002
ffff6580: .l 0x00000001
ffff6584: .l 0x00000040
ffff6588: .l 0x00000001
ffff658c: .l 0x00000400
ffff6590: .l f_58ec
ffff6594: .l 0x00000003
ffff6598: .l 0x00000000
ffff659c: .l 0x00000001
ffff65a0: .l 0x0000003f
ffff65a4: .l 0x00000002
ffff65a8: .l 0x00000001
ffff65ac: .l 0x00000040
ffff65b0: .l 0x00000001
ffff65b4: .l 0x00000200
ffff65b8: .l f_58ec
ffff65bc: .l 0x00000003
ffff65c0: .l 0x00000000
ffff65c4: .l 0x00000002
ffff65c8: .l 0x0000003f
ffff65cc: .l 0x00000002
ffff65d0: .l 0x00000001
ffff65d4: .l 0x00000040
ffff65d8: .l 0x00000001
ffff65dc: .l 0x00000200
ffff65e0: .l f_58ec
ffff65e4: .l 0x00000003
ffff65e8: .l 0x00000000
ffff65ec: .l 0x00000003
ffff65f0: .l 0x0000003f
ffff65f4: .l 0x00000002
ffff65f8: .l 0x00000001
ffff65fc: .l 0x00000040
ffff6600: .l 0x00000001
ffff6604: .l 0x00000200
d_6608:
ffff6608: .l f_60e8
ffff660c: .l f_6180

Leave a Reply
You must be logged in to post a comment.