# HG changeset patch # User Mychaela Falconia # Date 1513908656 0 # Node ID 5b530eea8f4ed9352f0141106f905fc1e72cb362 # Parent 4cd01d1458df1709c3b64a7c789b9f117a109395 pirelli/fw-disasm: IRAM code loading located diff -r 4cd01d1458df -r 5b530eea8f4e pirelli/fw-disasm --- a/pirelli/fw-disasm Thu Dec 21 23:12:46 2017 +0000 +++ b/pirelli/fw-disasm Fri Dec 22 02:10:56 2017 +0000 @@ -81,12 +81,12 @@ 40128: e59f2318 ldr r2, =0x17751ec ; via 0x40448 4012c: e0422000 sub r2, r2, r0 40130: e3a01000 mov r1, #0 - 40134: eb0000e1 bl 0x404c0 + 40134: eb0000e1 bl 0x404c0 ; _INT_memset 40138: e59f030c ldr r0, =0x800000 ; via 0x4044c 4013c: e59f230c ldr r2, =0x82d1ec ; via 0x40450 40140: e0422000 sub r2, r2, r0 40144: e3a01000 mov r1, #0 - 40148: eb0000dc bl 0x404c0 + 40148: eb0000dc bl 0x404c0 ; _INT_memset 4014c: e8bd000f ldmia sp!, {r0, r1, r2, r3} 40150: e3a00001 mov r0, #1 40154: e59f12fc ldr r1, =0x1775074 ; via 0x40458 @@ -762,6 +762,83 @@ 3bba2e: f484 fc2d bl 0x4028c ; $INT_EnableIRQ 3bba32: bd00 pop {pc} +_f_checksum: + 3e6990: e1a0c000 mov r12, r0 + 3e6994: e3a00000 mov r0, #0 + 3e6998: e3510000 cmp r1, #0 + 3e699c: 012fff1e bxeq lr + 3e69a0: e4dc2001 ldrb r2, [r12], #1 + 3e69a4: e0820000 add r0, r2, r0 + 3e69a8: e1a00800 mov r0, r0, lsl #16 + 3e69ac: e1a00820 mov r0, r0, lsr #16 + 3e69b0: e2511001 subs r1, r1, #1 + 3e69b4: 1afffff9 bne 0x3e69a0 + 3e69b8: e12fff1e bx lr + +_f_load_int_mem: + 3e69bc: e92d4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + 3e69c0: e59f90c8 ldr r9, =0x1775070 ; via 0x3e6a90 + 3e69c4: e3a0c000 mov r12, #0 + 3e69c8: e1c9c0b0 strh r12, [r9] + 3e69cc: e59fa0c0 ldr r10, =0x1775072 ; via 0x3e6a94 + 3e69d0: e1cac0b0 strh r12, [r10] + 3e69d4: e59fc0bc ldr r12, =0x82d1f0 ; via 0x3e6a98 + 3e69d8: e59f00bc ldr r0, =0x848788 ; via 0x3e6a9c + 3e69dc: e040000c sub r0, r0, r12 + 3e69e0: e2408004 sub r8, r0, #4 + 3e69e4: e28c7004 add r7, r12, #4 + 3e69e8: e1a00007 mov r0, r7 + 3e69ec: e3a01000 mov r1, #0 + 3e69f0: e1a02008 mov r2, r8 + 3e69f4: ebf166b1 bl 0x404c0 ; _INT_memset + 3e69f8: e59f40a0 ldr r4, =0x84878c ; via 0x3e6aa0 + 3e69fc: e59fc0a0 ldr r12, =0x848d1c ; via 0x3e6aa4 + 3e6a00: e04c6004 sub r6, r12, r4 + 3e6a04: e1a00004 mov r0, r4 + 3e6a08: e3a01000 mov r1, #0 + 3e6a0c: e1a02006 mov r2, r6 + 3e6a10: ebf166aa bl 0x404c0 ; _INT_memset + 3e6a14: e59fb08c ldr r11, =0x40708 ; via 0x3e6aa8 + 3e6a18: e1a0000b mov r0, r11 + 3e6a1c: e1a01008 mov r1, r8 + 3e6a20: ebffffda bl 0x3e6990 ; _f_checksum + 3e6a24: e1a03000 mov r3, r0 + 3e6a28: e1c930b0 strh r3, [r9] + 3e6a2c: e59f5078 ldr r5, =0x5bca0 ; via 0x3e6aac + 3e6a30: e1a00005 mov r0, r5 + 3e6a34: e1a01006 mov r1, r6 + 3e6a38: ebffffd4 bl 0x3e6990 ; _f_checksum + 3e6a3c: e083c000 add r12, r3, r0 + 3e6a40: e1c9c0b0 strh r12, [r9] + 3e6a44: e1a00007 mov r0, r7 + 3e6a48: e1a0100b mov r1, r11 + 3e6a4c: e1a02008 mov r2, r8 + 3e6a50: ebf166c0 bl 0x40558 ; _INT_memcpy + 3e6a54: e1a00004 mov r0, r4 + 3e6a58: e1a01005 mov r1, r5 + 3e6a5c: e1a02006 mov r2, r6 + 3e6a60: ebf166bc bl 0x40558 ; _INT_memcpy + 3e6a64: e1a00007 mov r0, r7 + 3e6a68: e1a01008 mov r1, r8 + 3e6a6c: ebffffc7 bl 0x3e6990 ; _f_checksum + 3e6a70: e1a03000 mov r3, r0 + 3e6a74: e1ca30b0 strh r3, [r10] + 3e6a78: e1a00004 mov r0, r4 + 3e6a7c: e1a01006 mov r1, r6 + 3e6a80: ebffffc2 bl 0x3e6990 ; _f_checksum + 3e6a84: e083c000 add r12, r3, r0 + 3e6a88: e1cac0b0 strh r12, [r10] + 3e6a8c: e8bd8ff0 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + + 3e6a90: 01775070 _d_checksum1 + 3e6a94: 01775072 _d_checksum2 + 3e6a98: 0082d1f0 _d_application_run_start + 3e6a9c: 00848788 _d_application_run_end + 3e6aa0: 0084878c __470_S_MEM_out_call_run_start + 3e6aa4: 00848d1c __470_S_MEM_out_call_run_end + 3e6aa8: 00040708 .ldfl+8 + 3e6aac: 0005bca0 __470_S_MEM_out_call_load_start + $Application_Initialize: 3f11f8: b500 push {lr} 3f11fa: f7ca faeb bl 0x3bb7d4 ; $Init_Target