diff pirelli/fw-disasm @ 233:4cd01d1458df

pirelli/fw-disasm: main and init modules located
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 21 Dec 2017 23:12:46 +0000
parents f5ad21985e20
children 5b530eea8f4e
line wrap: on
line diff
--- 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