# HG changeset patch # User Mychaela Falconia # Date 1513897966 0 # Node ID 4cd01d1458df1709c3b64a7c789b9f117a109395 # Parent 2767ff8d26d58e1df6f85784a45b87a0667f88e3 pirelli/fw-disasm: main and init modules located diff -r 2767ff8d26d5 -r 4cd01d1458df pirelli/fw-disasm --- a/pirelli/fw-disasm Thu Dec 21 22:17:11 2017 +0000 +++ b/pirelli/fw-disasm Thu Dec 21 23:12:46 2017 +0000 @@ -481,6 +481,341 @@ 406d0: 1afffffb bne 0x406c4 406d4: e8bd8001 ldmia sp!, {r0, pc} +$Init_Target: + 3bb7d4: b570 push {r4, r5, r6, lr} + 3bb7d6: b081 sub sp, #4 + 3bb7d8: 4c96 ldr r4, =0xfffef008 ; via 0x3bba34 + 3bb7da: 4897 ldr r0, =0x6050 ; via 0x3bba38 + 3bb7dc: 8020 strh r0, [r4, #0] + 3bb7de: f025 ffed bl 0x3e17bc ; $TM_DisableWatchdog + 3bb7e2: 4896 ldr r0, =0xfffffd02 ; via 0x3bba3c + 3bb7e4: 2105 mov r1, #5 + 3bb7e6: 8802 ldrh r2, [r0, #0] + 3bb7e8: 4311 orr r1, r2 + 3bb7ea: 8001 strh r1, [r0, #0] + 3bb7ec: 4994 ldr r1, =0xff3f ; via 0x3bba40 + 3bb7ee: 8802 ldrh r2, [r0, #0] + 3bb7f0: 4011 and r1, r2 + 3bb7f2: 8001 strh r1, [r0, #0] + 3bb7f4: 2180 mov r1, #128 ; 0x80 + 3bb7f6: 8802 ldrh r2, [r0, #0] + 3bb7f8: 4311 orr r1, r2 + 3bb7fa: 8001 strh r1, [r0, #0] + 3bb7fc: 4991 ldr r1, =0xffdf ; via 0x3bba44 + 3bb7fe: 8802 ldrh r2, [r0, #0] + 3bb800: 4011 and r1, r2 + 3bb802: 8001 strh r1, [r0, #0] + 3bb804: 4e90 ldr r6, =0xfffff900 ; via 0x3bba48 + 3bb806: 20ff mov r0, #255 ; 0xff + 3bb808: 0200 lsl r0, r0, #8 + 3bb80a: 8030 strh r0, [r6, #0] + 3bb80c: 4d8f ldr r5, =0xffff9800 ; via 0x3bba4c + 3bb80e: 4890 ldr r0, =0xfff3 ; via 0x3bba50 + 3bb810: 8829 ldrh r1, [r5, #0] + 3bb812: 4008 and r0, r1 + 3bb814: 8028 strh r0, [r5, #0] + 3bb816: 8828 ldrh r0, [r5, #0] + 3bb818: 8028 strh r0, [r5, #0] + 3bb81a: 488e ldr r0, =0xf01f ; via 0x3bba54 + 3bb81c: 8829 ldrh r1, [r5, #0] + 3bb81e: 4008 and r0, r1 + 3bb820: 8028 strh r0, [r5, #0] + 3bb822: 2001 mov r0, #1 + 3bb824: 0280 lsl r0, r0, #10 + 3bb826: 8829 ldrh r1, [r5, #0] + 3bb828: 4308 orr r0, r1 + 3bb82a: 8028 strh r0, [r5, #0] + 3bb82c: 2000 mov r0, #0 + 3bb82e: 2102 mov r1, #2 + 3bb830: 2200 mov r2, #0 + 3bb832: f027 fb45 bl 0x3e2ec0 ; $CLKM_InitARMClock + 3bb836: 4988 ldr r1, =0xfffffb00 ; via 0x3bba58 + 3bb838: 20a4 mov r0, #164 ; 0xa4 + 3bb83a: 8008 strh r0, [r1, #0] + 3bb83c: 8048 strh r0, [r1, #2] + 3bb83e: 22a5 mov r2, #165 ; 0xa5 + 3bb840: 808a strh r2, [r1, #4] + 3bb842: 80c8 strh r0, [r1, #6] + 3bb844: 20a7 mov r0, #167 ; 0xa7 + 3bb846: 8148 strh r0, [r1, #10] ; 0xa + 3bb848: 20c0 mov r0, #192 ; 0xc0 + 3bb84a: 8188 strh r0, [r1, #12] ; 0xc + 3bb84c: 2040 mov r0, #64 ; 0x40 + 3bb84e: 8108 strh r0, [r1, #8] + 3bb850: 2020 mov r0, #32 ; 0x20 + 3bb852: 8070 strh r0, [r6, #2] + 3bb854: 2000 mov r0, #0 + 3bb856: 80b0 strh r0, [r6, #4] + 3bb858: 2010 mov r0, #16 ; 0x10 + 3bb85a: 8829 ldrh r1, [r5, #0] + 3bb85c: 4308 orr r0, r1 + 3bb85e: 8028 strh r0, [r5, #0] + 3bb860: 487e ldr r0, =0xfffffa08 ; via 0x3bba5c + 3bb862: 497f ldr r1, =0xffff ; via 0x3bba60 + 3bb864: 8001 strh r1, [r0, #0] + 3bb866: 8041 strh r1, [r0, #2] + 3bb868: 2103 mov r1, #3 + 3bb86a: 8181 strh r1, [r0, #12] ; 0xc + 3bb86c: f024 f9be bl 0x3dfbec ; $IQ_SetupInterrupts + 3bb870: 487c ldr r0, =0xfffffc00 ; via 0x3bba64 + 3bb872: 2124 mov r1, #36 ; 0x24 + 3bb874: 8001 strh r1, [r0, #0] + 3bb876: 210d mov r1, #13 ; 0xd + 3bb878: 8041 strh r1, [r0, #2] + 3bb87a: 2500 mov r5, #0 + 3bb87c: 487a ldr r0, =0xfffe2016 ; via 0x3bba68 + 3bb87e: 8005 strh r5, [r0, #0] + 3bb880: 497a ldr r1, =0xfffe2014 ; via 0x3bba6c + 3bb882: 2002 mov r0, #2 + 3bb884: 8008 strh r0, [r1, #0] + 3bb886: 497a ldr r1, =0xfffe2002 ; via 0x3bba70 + 3bb888: 2084 mov r0, #132 ; 0x84 + 3bb88a: 8008 strh r0, [r1, #0] + 3bb88c: 4979 ldr r1, =0xfffe2000 ; via 0x3bba74 + 3bb88e: 487a ldr r0, =0x3de0 ; via 0x3bba78 + 3bb890: 8008 strh r0, [r1, #0] + 3bb892: 4a7a ldr r2, =0xfffe2022 ; via 0x3bba7c + 3bb894: 200a mov r0, #10 ; 0xa + 3bb896: 8010 strh r0, [r2, #0] ; DIFF! + 3bb898: 4879 ldr r0, =0xfffe2020 ; via 0x3bba80 + 3bb89a: 4a7a ldr r2, =0x45a ; via 0x3bba84 + 3bb89c: 8002 strh r2, [r0, #0] + 3bb89e: 4a7a ldr r2, =0xfffe201e ; via 0x3bba88 + 3bb8a0: 20ff mov r0, #255 ; 0xff + 3bb8a2: 304b add r0, #75 ; 0x4b + 3bb8a4: 8010 strh r0, [r2, #0] ; DIFF! + 3bb8a6: 4879 ldr r0, =0xfffe201c ; via 0x3bba8c + 3bb8a8: 221f mov r2, #31 ; 0x1f + 3bb8aa: 8002 strh r2, [r0, #0] + 3bb8ac: 4878 ldr r0, =0xfffe2024 ; via 0x3bba90 + 3bb8ae: 8005 strh r5, [r0, #0] + 3bb8b0: 4a78 ldr r2, =0xfffe2010 ; via 0x3bba94 + 3bb8b2: 2002 mov r0, #2 + 3bb8b4: 8813 ldrh r3, [r2, #0] + 3bb8b6: 4318 orr r0, r3 + 3bb8b8: 8010 strh r0, [r2, #0] + 3bb8ba: 2004 mov r0, #4 + 3bb8bc: 8813 ldrh r3, [r2, #0] + 3bb8be: 4318 orr r0, r3 + 3bb8c0: 8010 strh r0, [r2, #0] + 3bb8c2: 2027 mov r0, #39 ; 0x27 + 3bb8c4: 80a0 strh r0, [r4, #4] + 3bb8c6: 8a08 ldrh r0, [r1, #16] ; 0x10 + 3bb8c8: 0840 lsr r0, r0, #1 + 3bb8ca: d30f bcc 0x3bb8ec + 3bb8cc: 8a08 ldrh r0, [r1, #16] ; 0x10 + 3bb8ce: 0400 lsl r0, r0, #16 + 3bb8d0: 0c40 lsr r0, r0, #17 + 3bb8d2: 0040 lsl r0, r0, #1 + 3bb8d4: 8208 strh r0, [r1, #16] ; 0x10 + 3bb8d6: 2001 mov r0, #1 + 3bb8d8: e001 b 0x3bb8de + 3bb8da: 9800 ldr r0, [sp, #0] + 3bb8dc: 3001 add r0, #1 + 3bb8de: 9000 str r0, [sp, #0] + 3bb8e0: 9800 ldr r0, [sp, #0] + 3bb8e2: 2832 cmp r0, #50 ; 0x32 + 3bb8e4: d3f9 bcc 0x3bb8da + 3bb8e6: 8a48 ldrh r0, [r1, #18] ; 0x12 + 3bb8e8: 2800 cmp r0, #0 + 3bb8ea: d0fc beq 0x3bb8e6 + 3bb8ec: f027 fbcd bl 0x3e308a ; $AI_ClockEnable + 3bb8f0: f027 fbd1 bl 0x3e3096 ; $AI_InitIOConfig + 3bb8f4: 2027 mov r0, #39 ; 0x27 + 3bb8f6: 0500 lsl r0, r0, #20 + 3bb8f8: 8005 strh r5, [r0, #0] + 3bb8fa: 2001 mov r0, #1 + 3bb8fc: f025 ff6c bl 0x3e17d8 ; $TM_EnableTimer + 3bb900: 2002 mov r0, #2 + 3bb902: f025 ff69 bl 0x3e17d8 ; $TM_EnableTimer + 3bb906: b001 add sp, #4 + 3bb908: bd70 pop {r4, r5, r6, pc} + +; The following code is a different version of Init_Target(), +; but does not seem to be used, probably defunct but still-compiled +; code in init.c in between the functional Init_Target() and the +; normally-following Init_Drivers(). + + 3bb90a: b570 push {r4, r5, r6, lr} + 3bb90c: 4d49 ldr r5, =0xfffef008 ; via 0x3bba34 + 3bb90e: 4862 ldr r0, =0x6040 ; via 0x3bba98 + 3bb910: 8028 strh r0, [r5, #0] + 3bb912: f025 ff53 bl 0x3e17bc ; $TM_DisableWatchdog + 3bb916: 4849 ldr r0, =0xfffffd02 ; via 0x3bba3c + 3bb918: 2105 mov r1, #5 + 3bb91a: 8802 ldrh r2, [r0, #0] + 3bb91c: 4311 orr r1, r2 + 3bb91e: 8001 strh r1, [r0, #0] + 3bb920: 4947 ldr r1, =0xff3f ; via 0x3bba40 + 3bb922: 8802 ldrh r2, [r0, #0] + 3bb924: 4011 and r1, r2 + 3bb926: 8001 strh r1, [r0, #0] + 3bb928: 2180 mov r1, #128 ; 0x80 + 3bb92a: 8802 ldrh r2, [r0, #0] + 3bb92c: 4311 orr r1, r2 + 3bb92e: 8001 strh r1, [r0, #0] + 3bb930: 4e45 ldr r6, =0xfffff900 ; via 0x3bba48 + 3bb932: 20ff mov r0, #255 ; 0xff + 3bb934: 0200 lsl r0, r0, #8 + 3bb936: 8030 strh r0, [r6, #0] + 3bb938: 4c44 ldr r4, =0xffff9800 ; via 0x3bba4c + 3bb93a: 4845 ldr r0, =0xfff3 ; via 0x3bba50 + 3bb93c: 8821 ldrh r1, [r4, #0] + 3bb93e: 4008 and r0, r1 + 3bb940: 8020 strh r0, [r4, #0] + 3bb942: 8820 ldrh r0, [r4, #0] + 3bb944: 8020 strh r0, [r4, #0] + 3bb946: 4843 ldr r0, =0xf01f ; via 0x3bba54 + 3bb948: 8821 ldrh r1, [r4, #0] + 3bb94a: 4008 and r0, r1 + 3bb94c: 8020 strh r0, [r4, #0] + 3bb94e: 2001 mov r0, #1 + 3bb950: 0280 lsl r0, r0, #10 + 3bb952: 8821 ldrh r1, [r4, #0] + 3bb954: 4308 orr r0, r1 + 3bb956: 8020 strh r0, [r4, #0] + 3bb958: 2000 mov r0, #0 + 3bb95a: 2102 mov r1, #2 + 3bb95c: 2200 mov r2, #0 + 3bb95e: f027 faaf bl 0x3e2ec0 ; $CLKM_InitARMClock + 3bb962: 4a3d ldr r2, =0xfffffb00 ; via 0x3bba58 + 3bb964: 20a4 mov r0, #164 ; 0xa4 + 3bb966: 8010 strh r0, [r2, #0] + 3bb968: 8050 strh r0, [r2, #2] + 3bb96a: 2185 mov r1, #133 ; 0x85 + 3bb96c: 8091 strh r1, [r2, #4] + 3bb96e: 80d0 strh r0, [r2, #6] + 3bb970: 20a7 mov r0, #167 ; 0xa7 + 3bb972: 8150 strh r0, [r2, #10] ; 0xa + 3bb974: 20c0 mov r0, #192 ; 0xc0 + 3bb976: 8190 strh r0, [r2, #12] ; 0xc + 3bb978: 2040 mov r0, #64 ; 0x40 + 3bb97a: 8110 strh r0, [r2, #8] + 3bb97c: 2020 mov r0, #32 ; 0x20 + 3bb97e: 8070 strh r0, [r6, #2] + 3bb980: 2000 mov r0, #0 + 3bb982: 80b0 strh r0, [r6, #4] + 3bb984: 2010 mov r0, #16 ; 0x10 + 3bb986: 8821 ldrh r1, [r4, #0] + 3bb988: 4308 orr r0, r1 + 3bb98a: 8020 strh r0, [r4, #0] + 3bb98c: f027 fb76 bl 0x3e307c + 3bb990: 2001 mov r0, #1 + 3bb992: f027 fb50 bl 0x3e3036 + 3bb996: 4841 ldr r0, =0xfffd ; via 0x3bba9c + 3bb998: 8829 ldrh r1, [r5, #0] + 3bb99a: 4008 and r0, r1 + 3bb99c: 8028 strh r0, [r5, #0] + 3bb99e: 2001 mov r0, #1 + 3bb9a0: f027 fb50 bl 0x3e3044 + 3bb9a4: 2004 mov r0, #4 + 3bb9a6: f027 fb46 bl 0x3e3036 + 3bb9aa: 2000 mov r0, #0 + 3bb9ac: f027 fb2e bl 0x3e300c + 3bb9b0: 2004 mov r0, #4 + 3bb9b2: f027 fb47 bl 0x3e3044 + 3bb9b6: 2007 mov r0, #7 + 3bb9b8: f027 fb36 bl 0x3e3028 + 3bb9bc: 2003 mov r0, #3 + 3bb9be: f027 fb25 bl 0x3e300c + 3bb9c2: 2007 mov r0, #7 + 3bb9c4: f027 fb3e bl 0x3e3044 + 3bb9c8: bd70 pop {r4, r5, r6, pc} + +$Init_Drivers: + 3bb9ca: b500 push {lr} + 3bb9cc: f78d fc0f bl 0x3491ee + 3bb9d0: f5a6 fa25 bl 0x161e1e + 3bb9d4: f7ad fda3 bl 0x36951e + 3bb9d8: f039 fb95 bl 0x3f5106 + 3bb9dc: f6f5 f927 bl 0x2b0c2e + 3bb9e0: f720 fb16 bl 0x2dc010 + 3bb9e4: f7bc fa46 bl 0x377e74 + 3bb9e8: f6ca fcfa bl 0x2863e0 + 3bb9ec: f001 fd3b bl 0x3bd466 + 3bb9f0: bd00 pop {pc} + +$Init_Serial_Flows: + 3bb9f2: b500 push {lr} + 3bb9f4: 482a ldr r0, =0x1773764 ; via 0x3bbaa0 + 3bb9f6: f793 fb8f bl 0x34f118 ; $SER_InitSerialConfig + 3bb9fa: 2000 mov r0, #0 + 3bb9fc: 2103 mov r1, #3 + 3bb9fe: 2200 mov r2, #0 + 3bba00: f793 fc2b bl 0x34f25a ; $SER_tr_Init + 3bba04: f793 fc85 bl 0x34f312 ; $SER_fd_Initialize + 3bba08: bd00 pop {pc} + +$Init_Unmask_IT: + 3bba0a: b500 push {lr} + 3bba0c: f484 fc59 bl 0x402c2 ; $INT_DisableIRQ + 3bba10: 2004 mov r0, #4 + 3bba12: f024 f94c bl 0x3dfcae ; $IQ_Unmask + 3bba16: 2012 mov r0, #18 ; 0x12 + 3bba18: f024 f949 bl 0x3dfcae ; $IQ_Unmask + 3bba1c: 2007 mov r0, #7 + 3bba1e: f024 f946 bl 0x3dfcae ; $IQ_Unmask + 3bba22: 2008 mov r0, #8 + 3bba24: f024 f943 bl 0x3dfcae ; $IQ_Unmask + 3bba28: 200f mov r0, #15 ; 0xf + 3bba2a: f024 f940 bl 0x3dfcae ; $IQ_Unmask + 3bba2e: f484 fc2d bl 0x4028c ; $INT_EnableIRQ + 3bba32: bd00 pop {pc} + +$Application_Initialize: + 3f11f8: b500 push {lr} + 3f11fa: f7ca faeb bl 0x3bb7d4 ; $Init_Target + 3f11fe: f7ca fbe4 bl 0x3bb9ca ; $Init_Drivers + 3f1202: f686 f8eb bl 0x2773dc + 3f1206: f686 f985 bl 0x277514 + 3f120a: f008 ffa7 bl 0x3fa15c + 3f120e: f7ff ffcd bl 0x3f11ac + 3f1212: 2801 cmp r0, #1 + 3f1214: d001 beq 0x3f121a + 3f1216: f7b0 fa2d bl 0x3a1674 + 3f121a: f7b0 fa3e bl 0x3a169a + 3f121e: f75e fb4d bl 0x34f8bc + 3f1222: f7ca fbe6 bl 0x3bb9f2 ; $Init_Serial_Flows + 3f1226: f709 fe44 bl 0x2faeb2 + 3f122a: f7ca fbee bl 0x3bba0a ; $Init_Unmask_IT + 3f122e: bd00 pop {pc} + +$INC_Initialize: + 3f3e74: b530 push {r4, r5, lr} + 3f3e76: 1c05 add r5, r0, #0 + 3f3e78: 4c13 ldr r4, =0x1775048 ; via 0x3f3ec8 + 3f3e7a: 2001 mov r0, #1 + 3f3e7c: 6020 str r0, [r4, #0] + 3f3e7e: f003 f99d bl 0x3f71bc + 3f3e82: f003 f99f bl 0x3f71c4 + 3f3e86: f003 f947 bl 0x3f7118 + 3f3e8a: f001 fe75 bl 0x3f5b78 + 3f3e8e: f7f5 ffcd bl 0x3e9e2c + 3f3e92: f002 fb55 bl 0x3f6540 + 3f3e96: f002 fb23 bl 0x3f64e0 + 3f3e9a: f002 fb41 bl 0x3f6520 + 3f3e9e: f002 fb0f bl 0x3f64c0 + 3f3ea2: f002 fb6d bl 0x3f6580 + 3f3ea6: f002 fb2b bl 0x3f6500 + 3f3eaa: f002 fb79 bl 0x3f65a0 + 3f3eae: f7fa fc8b bl 0x3ee7c8 + 3f3eb2: f002 fb55 bl 0x3f6560 + 3f3eb6: 1c28 add r0, r5, #0 + 3f3eb8: f7fd f99e bl 0x3f11f8 ; $Application_Initialize + 3f3ebc: 2002 mov r0, #2 + 3f3ebe: 6020 str r0, [r4, #0] + 3f3ec0: f005 fbdc bl 0x3f967c + 3f3ec4: bd30 pop {r4, r5, pc} + +_INC_Initialize: + 3f6b40: e92d4000 stmdb sp!, {lr} + 3f6b44: e28fe001 add lr, pc, #1 + 3f6b48: e12fff1e bx lr + 3f6b4c: f7fd f992 bl 0x3f3e74 ; $INC_Initialize + 3f6b50: 4778 bx pc + 3f6b52: 46c0 nop (mov r8, r8) + 3f6b54: e8bd8000 ldmia sp!, {pc} + 003F81AC $madc_hex_2_physical call trampoline 0052FB70 _RVM_SWE_GET_INFO_ARRAY