view moko1-fw-disasm @ 371:c7514c8b5b41

pirelli/headset: plug insertion detection figured out
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 14 Jun 2021 01:33:48 +0000
parents ae39d76d5b7a
children
line wrap: on
line source

; The earliest surviving version of Openmoko fw is moko1, although it is only
; a binary without symbols.  The present disassembly is a quick look at this
; binary, dug only far enough to get to the init module.  The objective was to
; see how the init module of moko1 (presumably coming from TI's 20070419 fw
; delivery) compares to our familiar 20070608 version, used in moko3 through
; moko11.  Result: the init module is confirmed to be identical between the two
; versions, meaning that:
;
; 1) Small Samsung flash must have already been adopted by the time of moko1.
;    If someone were to populate an S71PL129J chip on a GTA01 board and flash
;    moko1 (or any later version up to moko11) into its first bank, the 2nd
;    bank on nCS4 won't work because nCS4 is not set up correctly by the MEMIF
;    setup code in Init_Target().
;
; 2) The GPIO bogon functions inserted into the init module were already
;    present in this 20070419 version.

       0:	ea0004b3	b	0x12d4
       4:	ea003ffd	b	0x10000
       8:	ea003ffd	b	0x10004
       c:	ea003ffd	b	0x10008
      10:	ea003ffd	b	0x1000c
      14:	ea003ffd	b	0x10010
      18:	ea003ffd	b	0x10014
      1c:	ea003ffd	b	0x10018

_INT_Bootloader_Start:
    12d4:	e51f101c	ldr	r1, =0xffff9800	; via 0x12c0
    12d8:	e15f21b2	ldrh	r2, =0x2006	; via 0x12ce
    12dc:	e1c120b0	strh	r2, [r1]
    12e0:	e5912000	ldr	r2, [r1]
    12e4:	e2022001	and	r2, r2, #1
    12e8:	e3520001	cmp	r2, #1
    12ec:	0afffffb	beq	0x12e0
    12f0:	e51f103c	ldr	r1, =0xfffffd00	; via 0x12bc
    12f4:	e15f23b0	ldrh	r2, =0x1081	; via 0x12cc
    12f8:	e1c120b0	strh	r2, [r1]
    12fc:	e51f1040	ldr	r1, =0xfffffb10	; via 0x12c4
    1300:	e15f23b8	ldrh	r2, =0x800	; via 0x12d0
    1304:	e1d100b0	ldrh	r0, [r1]
    1308:	e1800002	orr	r0, r0, r2
    130c:	e1c100b0	strh	r0, [r1]
    1310:	e51f1050	ldr	r1, =0xffffff08	; via 0x12c8
    1314:	e15f24ba	ldrh	r2, =0x0	; via 0x12d2
    1318:	e1c120b0	strh	r2, [r1]
    131c:	e51f107c	ldr	r1, =0xfffffb00	; via 0x12a8
    1320:	e15f27bc	ldrh	r2, =0x2a1	; via 0x12ac
    1324:	e1c120b0	strh	r2, [r1]
    1328:	e15f28b2	ldrh	r2, =0x2a1	; via 0x12ae
    132c:	e1c120b2	strh	r2, [r1, #2]
    1330:	e15f28b8	ldrh	r2, =0x2a1	; via 0x12b0
    1334:	e1c120b4	strh	r2, [r1, #4]
    1338:	e15f28be	ldrh	r2, =0x283	; via 0x12b2
    133c:	e1c120b6	strh	r2, [r1, #6]
    1340:	e15f29b4	ldrh	r2, =0x281	; via 0x12b4
    1344:	e1c120ba	strh	r2, [r1, #10]	; 0xa
    1348:	e15f29ba	ldrh	r2, =0xc0	; via 0x12b6
    134c:	e1c120bc	strh	r2, [r1, #12]	; 0xc
    1350:	e15f2ab0	ldrh	r2, =0x40	; via 0x12b8
    1354:	e1c120b8	strh	r2, [r1, #8]
    1358:	e15f2ab6	ldrh	r2, =0x2a	; via 0x12ba
    135c:	e1c120be	strh	r2, [r1, #14]	; 0xe
    1360:	e59f0020	ldr	r0, =0x107e32c	; via 0x1388
    1364:	e3a01b01	mov	r1, #1024	; 0x400
    1368:	e2411004	sub	r1, r1, #4
    136c:	e0802001	add	r2, r0, r1
    1370:	e3c22003	bic	r2, r2, #3
    1374:	e1a0d002	mov	sp, r2
    1378:	e92d100f	stmdb	sp!, {r0, r1, r2, r3, r12}
    137c:	eb000043	bl	0x1490	; _sta_select_application
    1380:	e8bd100f	ldmia	sp!, {r0, r1, r2, r3, r12}
    1384:	ea003b33	b	0x10058		; _INT_Initialize

_sta_select_application:
    1490:	e92d4000	stmdb	sp!, {lr}
    1494:	e28fe001	add	lr, pc, #1
    1498:	e12fff1e	bx	lr
    149c:	f7ff fd71	bl	0xf82	; $sta_select_application
    14a0:	4778		bx	pc
    14a2:	46c0		nop			(mov r8, r8)
    14a4:	e8bd8000	ldmia	sp!, {pc}

    2000:	00000001

.inttext:
   10000:	ea0000d0	b	0x10348
   10004:	ea0000d2	b	0x10354
   10008:	ea0000d4	b	0x10360
   1000c:	ea0000d6	b	0x1036c
   10010:	ea0000d8	b	0x10378
   10014:	ea0000bc	b	0x1030c
   10018:	ea0000c5	b	0x10334

_c_int00:
   1001c:	02a102a1
   10020:	028302a1
   10024:	02c00e85
   10028:	002a0040
   1002c:	fffffb00
   10030:	fffef006
   10034:	00000008
   10038:	fffffd00
   1003c:	ffff9800
   10040:	fffffb10
   10044:	ffffff08
   10048:	20021081
   1004c:	f7ff0800
   10050:	00000000
   10054:	001f0e34	; cinit

_INT_Initialize:
   10058:	e51f1024	ldr	r1, =0xffff9800	; via 0x1003c
   1005c:	e15f21ba	ldrh	r2, =0x2002	; via 0x1004a
   10060:	e1c120b0	strh	r2, [r1]
   10064:	e5912000	ldr	r2, [r1]
   10068:	e2022001	and	r2, r2, #1
   1006c:	e3520001	cmp	r2, #1
   10070:	0afffffb	beq	0x10064
   10074:	e51f1044	ldr	r1, =0xfffffd00	; via 0x10038
   10078:	e15f23b8	ldrh	r2, =0x1081	; via 0x10048
   1007c:	e1c120b0	strh	r2, [r1]
   10080:	e51f1048	ldr	r1, =0xfffffb10	; via 0x10040
   10084:	e15f23be	ldrh	r2, =0xf7ff	; via 0x1004e
   10088:	e1d100b0	ldrh	r0, [r1]
   1008c:	e0000002	and	r0, r0, r2
   10090:	e1c100b0	strh	r0, [r1]
   10094:	e51f1058	ldr	r1, =0xffffff08	; via 0x10044
   10098:	e15f25b0	ldrh	r2, =0x0	; via 0x10050
   1009c:	e1c120b0	strh	r2, [r1]
   100a0:	e51f107c	ldr	r1, =0xfffffb00	; via 0x1002c
   100a4:	e15f29b0	ldrh	r2, =0x2a1	; via 0x1001c
   100a8:	e1c120b0	strh	r2, [r1]
   100ac:	e15f29b6	ldrh	r2, =0x2a1	; via 0x1001e
   100b0:	e1c120b2	strh	r2, [r1, #2]
   100b4:	e15f29bc	ldrh	r2, =0x2a1	; via 0x10020
   100b8:	e1c120b4	strh	r2, [r1, #4]
   100bc:	e15f2ab2	ldrh	r2, =0x283	; via 0x10022
   100c0:	e1c120b6	strh	r2, [r1, #6]
   100c4:	e15f2ab8	ldrh	r2, =0xe85	; via 0x10024
   100c8:	e1c120ba	strh	r2, [r1, #10]	; 0xa
   100cc:	e15f2abe	ldrh	r2, =0x2c0	; via 0x10026
   100d0:	e1c120bc	strh	r2, [r1, #12]	; 0xc
   100d4:	e15f2bb4	ldrh	r2, =0x40	; via 0x10028
   100d8:	e1c120b8	strh	r2, [r1, #8]
   100dc:	e15f2bba	ldrh	r2, =0x2a	; via 0x1002a
   100e0:	e1c120be	strh	r2, [r1, #14]	; 0xe
   100e4:	e51f10bc	ldr	r1, =0xfffef006	; via 0x10030
   100e8:	e1d120b0	ldrh	r2, [r1]
   100ec:	e51f00c0	ldr	r0, =0x8	; via 0x10034
   100f0:	e1800002	orr	r0, r0, r2
   100f4:	e1c100b0	strh	r0, [r1]
   100f8:	e10f0000	mrs	r0, CPSR
   100fc:	e3c0001f	bic	r0, r0, #31	; 0x1f
   10100:	e3800013	orr	r0, r0, #19	; 0x13
   10104:	e38000c0	orr	r0, r0, #192	; 0xc0
   10108:	e129f000	msr	CPSR_fc, r0
   1010c:	e59f0340	ldr	r0, =0x107e418	; via 0x10454
   10110:	e3a01b01	mov	r1, #1024	; 0x400
   10114:	e2411004	sub	r1, r1, #4
   10118:	e0802001	add	r2, r0, r1
   1011c:	e1a0d002	mov	sp, r2
   10120:	e92d000f	stmdb	sp!, {r0, r1, r2, r3}
   10124:	e59f0318	ldr	r0, =0x1000cf4	; via 0x10444
   10128:	e59f2318	ldr	r2, =0x107e32c	; via 0x10448
   1012c:	e0422000	sub	r2, r2, r0
   10130:	e3a01000	mov	r1, #0
   10134:	eb0000e1	bl	0x104c0
   10138:	e59f030c	ldr	r0, =0x800000	; via 0x1044c
   1013c:	e59f230c	ldr	r2, =0x81d448	; via 0x10450
   10140:	e0422000	sub	r2, r2, r0
   10144:	e3a01000	mov	r1, #0
   10148:	eb0000dc	bl	0x104c0
   1014c:	e8bd000f	ldmia	sp!, {r0, r1, r2, r3}
   10150:	e3a00001	mov	r0, #1
   10154:	e59f12fc	ldr	r1, =0x107e254	; via 0x10458
   10158:	e5810000	str	r0, [r1]
   1015c:	e59f02f0	ldr	r0, =0x107e418	; via 0x10454
   10160:	e3a01b01	mov	r1, #1024	; 0x400
   10164:	e2411004	sub	r1, r1, #4
   10168:	e0802001	add	r2, r0, r1
   1016c:	e1a0a000	mov	r10, r0
   10170:	e59f32e4	ldr	r3, =0x804978	; via 0x1045c
   10174:	e583a000	str	r10, [r3]
   10178:	e1a0d002	mov	sp, r2
   1017c:	e59f32dc	ldr	r3, =0x804a9c	; via 0x10460
   10180:	e583d000	str	sp, [r3]
   10184:	e3a01080	mov	r1, #128	; 0x80
   10188:	e0822001	add	r2, r2, r1
   1018c:	e10f0000	mrs	r0, CPSR
   10190:	e3c0001f	bic	r0, r0, #31	; 0x1f
   10194:	e3800012	orr	r0, r0, #18	; 0x12
   10198:	e129f000	msr	CPSR_fc, r0
   1019c:	e1a0d002	mov	sp, r2
   101a0:	e3a01c02	mov	r1, #512	; 0x200
   101a4:	e0822001	add	r2, r2, r1
   101a8:	e10f0000	mrs	r0, CPSR
   101ac:	e3c0001f	bic	r0, r0, #31	; 0x1f
   101b0:	e3800011	orr	r0, r0, #17	; 0x11
   101b4:	e129f000	msr	CPSR_fc, r0
   101b8:	e1a0d002	mov	sp, r2
   101bc:	e10f0000	mrs	r0, CPSR
   101c0:	e3c0001f	bic	r0, r0, #31	; 0x1f
   101c4:	e3800017	orr	r0, r0, #23	; 0x17
   101c8:	e129f000	msr	CPSR_fc, r0
   101cc:	e59fd29c	ldr	sp, =0x107e380	; via 0x10470
   101d0:	e10f0000	mrs	r0, CPSR
   101d4:	e3c0001f	bic	r0, r0, #31	; 0x1f
   101d8:	e380001b	orr	r0, r0, #27	; 0x1b
   101dc:	e129f000	msr	CPSR_fc, r0
   101e0:	e59fd288	ldr	sp, =0x107e380	; via 0x10470
   101e4:	e10f0000	mrs	r0, CPSR
   101e8:	e3c0001f	bic	r0, r0, #31	; 0x1f
   101ec:	e3800013	orr	r0, r0, #19	; 0x13
   101f0:	e129f000	msr	CPSR_fc, r0
   101f4:	e59f3268	ldr	r3, =0x8048e0	; via 0x10464
   101f8:	e2822004	add	r2, r2, #4
   101fc:	e5832000	str	r2, [r3]
   10200:	e3a01b01	mov	r1, #1024	; 0x400
   10204:	e3c11003	bic	r1, r1, #3
   10208:	e0822001	add	r2, r2, r1
   1020c:	e59f3254	ldr	r3, =0x804964	; via 0x10468
   10210:	e5831000	str	r1, [r3]
   10214:	e3a01002	mov	r1, #2
   10218:	e59f324c	ldr	r3, =0x804974	; via 0x1046c
   1021c:	e5831000	str	r1, [r3]
   10220:	e1a04002	mov	r4, r2
   10224:	eb076638	bl	0x1e9b0c	; _f_load_int_mem
   10228:	e1a02004	mov	r2, r4
   1022c:	e59f1228	ldr	r1, =0x804978	; via 0x1045c
   10230:	e5910000	ldr	r0, [r1]
   10234:	e3a030fe	mov	r3, #254	; 0xfe
   10238:	e5c03000	strb	r3, [r0]
   1023c:	e5c03001	strb	r3, [r0, #1]
   10240:	e5c03002	strb	r3, [r0, #2]
   10244:	e5c03003	strb	r3, [r0, #3]
   10248:	e4903004	ldr	r3, [r0], #4
   1024c:	e4803004	str	r3, [r0], #4
   10250:	e1500002	cmp	r0, r2
   10254:	bafffffc	blt	0x1024c
   10258:	e51f020c	ldr	r0, =0x1f0e34	; via 0x10054
   1025c:	e3700001	cmn	r0, #1
   10260:	1b000084	blne	0x10478
   10264:	e1a00002	mov	r0, r2
   10268:	ea07814e	b	0x1f07a8	; _INC_Initialize

$Init_Target:
  1d98d4:	b570		push	{r4, r5, r6, lr}
  1d98d6:	b081		sub	sp, #4
  1d98d8:	4d84		ldr	r5, =0xfffef008	; via 0x1d9aec
  1d98da:	2003		mov	r0, #3
  1d98dc:	0340		lsl	r0, r0, #13
  1d98de:	8028		strh	r0, [r5, #0]
  1d98e0:	f00d fe2a	bl	0x1e7538
  1d98e4:	4882		ldr	r0, =0xfffffd02	; via 0x1d9af0
  1d98e6:	2105		mov	r1, #5
  1d98e8:	8802		ldrh	r2, [r0, #0]
  1d98ea:	4311		orr	r1, r2
  1d98ec:	8001		strh	r1, [r0, #0]
  1d98ee:	4981		ldr	r1, =0xff3f	; via 0x1d9af4
  1d98f0:	8802		ldrh	r2, [r0, #0]
  1d98f2:	4011		and	r1, r2
  1d98f4:	8001		strh	r1, [r0, #0]
  1d98f6:	2180		mov	r1, #128	; 0x80
  1d98f8:	8802		ldrh	r2, [r0, #0]
  1d98fa:	4311		orr	r1, r2
  1d98fc:	8001		strh	r1, [r0, #0]
  1d98fe:	497e		ldr	r1, =0xffdf	; via 0x1d9af8
  1d9900:	8802		ldrh	r2, [r0, #0]
  1d9902:	4011		and	r1, r2
  1d9904:	8001		strh	r1, [r0, #0]
  1d9906:	4e7d		ldr	r6, =0xfffff900	; via 0x1d9afc
  1d9908:	20ff		mov	r0, #255	; 0xff
  1d990a:	0200		lsl	r0, r0, #8
  1d990c:	8030		strh	r0, [r6, #0]
  1d990e:	4c7c		ldr	r4, =0xffff9800	; via 0x1d9b00
  1d9910:	487c		ldr	r0, =0xfff3	; via 0x1d9b04
  1d9912:	8821		ldrh	r1, [r4, #0]
  1d9914:	4008		and	r0, r1
  1d9916:	8020		strh	r0, [r4, #0]
  1d9918:	8820		ldrh	r0, [r4, #0]
  1d991a:	8020		strh	r0, [r4, #0]
  1d991c:	487a		ldr	r0, =0xf01f	; via 0x1d9b08
  1d991e:	8821		ldrh	r1, [r4, #0]
  1d9920:	4008		and	r0, r1
  1d9922:	8020		strh	r0, [r4, #0]
  1d9924:	2001		mov	r0, #1
  1d9926:	0280		lsl	r0, r0, #10
  1d9928:	8821		ldrh	r1, [r4, #0]
  1d992a:	4308		orr	r0, r1
  1d992c:	8020		strh	r0, [r4, #0]
  1d992e:	2000		mov	r0, #0
  1d9930:	2102		mov	r1, #2
  1d9932:	2200		mov	r2, #0
  1d9934:	f00e fa3c	bl	0x1e7db0
  1d9938:	4974		ldr	r1, =0xfffffb00	; via 0x1d9b0c
  1d993a:	20a3		mov	r0, #163	; 0xa3
  1d993c:	8008		strh	r0, [r1, #0]
  1d993e:	8048		strh	r0, [r1, #2]
  1d9940:	22a5		mov	r2, #165	; 0xa5
  1d9942:	808a		strh	r2, [r1, #4]
  1d9944:	80c8		strh	r0, [r1, #6]
  1d9946:	2080		mov	r0, #128	; 0x80
  1d9948:	8148		strh	r0, [r1, #10]	; 0xa
  1d994a:	20c0		mov	r0, #192	; 0xc0
  1d994c:	8188		strh	r0, [r1, #12]	; 0xc
  1d994e:	2040		mov	r0, #64	; 0x40
  1d9950:	8108		strh	r0, [r1, #8]
  1d9952:	2020		mov	r0, #32	; 0x20
  1d9954:	8070		strh	r0, [r6, #2]
  1d9956:	2000		mov	r0, #0
  1d9958:	80b0		strh	r0, [r6, #4]
  1d995a:	2010		mov	r0, #16	; 0x10
  1d995c:	8821		ldrh	r1, [r4, #0]
  1d995e:	4308		orr	r0, r1
  1d9960:	8020		strh	r0, [r4, #0]
  1d9962:	486b		ldr	r0, =0xfffffa08	; via 0x1d9b10
  1d9964:	496b		ldr	r1, =0xffff	; via 0x1d9b14
  1d9966:	8001		strh	r1, [r0, #0]
  1d9968:	8041		strh	r1, [r0, #2]
  1d996a:	2103		mov	r1, #3
  1d996c:	8181		strh	r1, [r0, #12]	; 0xc
  1d996e:	f00c fce7	bl	0x1e6340
  1d9972:	4869		ldr	r0, =0xfffffc00	; via 0x1d9b18
  1d9974:	2124		mov	r1, #36	; 0x24
  1d9976:	8001		strh	r1, [r0, #0]
  1d9978:	210d		mov	r1, #13	; 0xd
  1d997a:	8041		strh	r1, [r0, #2]
  1d997c:	2400		mov	r4, #0
  1d997e:	4867		ldr	r0, =0xfffe2016	; via 0x1d9b1c
  1d9980:	8004		strh	r4, [r0, #0]
  1d9982:	4967		ldr	r1, =0xfffe2014	; via 0x1d9b20
  1d9984:	2002		mov	r0, #2
  1d9986:	8008		strh	r0, [r1, #0]
  1d9988:	4966		ldr	r1, =0xfffe2002	; via 0x1d9b24
  1d998a:	2084		mov	r0, #132	; 0x84
  1d998c:	8008		strh	r0, [r1, #0]
  1d998e:	4866		ldr	r0, =0xfffe2000	; via 0x1d9b28
  1d9990:	4966		ldr	r1, =0x3de0	; via 0x1d9b2c
  1d9992:	8001		strh	r1, [r0, #0]
  1d9994:	4a66		ldr	r2, =0xfffe2022	; via 0x1d9b30
  1d9996:	210c		mov	r1, #12	; 0xc
  1d9998:	8011		strh	r1, [r2, #0]
  1d999a:	4a66		ldr	r2, =0xfffe2020	; via 0x1d9b34
  1d999c:	4966		ldr	r1, =0x45a	; via 0x1d9b38
  1d999e:	8011		strh	r1, [r2, #0]
  1d99a0:	4a66		ldr	r2, =0xfffe201e	; via 0x1d9b3c
  1d99a2:	21a5		mov	r1, #165	; 0xa5
  1d99a4:	0089		lsl	r1, r1, #2
  1d99a6:	8011		strh	r1, [r2, #0]
  1d99a8:	4a65		ldr	r2, =0xfffe201c	; via 0x1d9b40
  1d99aa:	211f		mov	r1, #31	; 0x1f
  1d99ac:	8011		strh	r1, [r2, #0]
  1d99ae:	4965		ldr	r1, =0xfffe2024	; via 0x1d9b44
  1d99b0:	800c		strh	r4, [r1, #0]
  1d99b2:	4b65		ldr	r3, =0xfffe2010	; via 0x1d9b48
  1d99b4:	2202		mov	r2, #2
  1d99b6:	8819		ldrh	r1, [r3, #0]
  1d99b8:	430a		orr	r2, r1
  1d99ba:	801a		strh	r2, [r3, #0]
  1d99bc:	4a62		ldr	r2, =0xfffe2010	; via 0x1d9b48
  1d99be:	2104		mov	r1, #4
  1d99c0:	8813		ldrh	r3, [r2, #0]
  1d99c2:	4319		orr	r1, r3
  1d99c4:	8011		strh	r1, [r2, #0]
  1d99c6:	2127		mov	r1, #39	; 0x27
  1d99c8:	80a9		strh	r1, [r5, #4]
  1d99ca:	8a01		ldrh	r1, [r0, #16]	; 0x10
  1d99cc:	0849		lsr	r1, r1, #1
  1d99ce:	d30f		bcc	0x1d99f0
  1d99d0:	8a01		ldrh	r1, [r0, #16]	; 0x10
  1d99d2:	0409		lsl	r1, r1, #16
  1d99d4:	0c49		lsr	r1, r1, #17
  1d99d6:	0049		lsl	r1, r1, #1
  1d99d8:	8201		strh	r1, [r0, #16]	; 0x10
  1d99da:	2101		mov	r1, #1
  1d99dc:	e001		b	0x1d99e2
  1d99de:	9900		ldr	r1, [sp, #0]
  1d99e0:	3101		add	r1, #1
  1d99e2:	9100		str	r1, [sp, #0]
  1d99e4:	9900		ldr	r1, [sp, #0]
  1d99e6:	2932		cmp	r1, #50	; 0x32
  1d99e8:	d3f9		bcc	0x1d99de
  1d99ea:	8a41		ldrh	r1, [r0, #18]	; 0x12
  1d99ec:	2900		cmp	r1, #0
  1d99ee:	d0fc		beq	0x1d99ea
  1d99f0:	f00e fb69	bl	0x1e80c6
  1d99f4:	f00e fb6d	bl	0x1e80d2
  1d99f8:	2027		mov	r0, #39	; 0x27
  1d99fa:	0500		lsl	r0, r0, #20
  1d99fc:	8004		strh	r4, [r0, #0]
  1d99fe:	2001		mov	r0, #1
  1d9a00:	f00d fda8	bl	0x1e7554
  1d9a04:	2002		mov	r0, #2
  1d9a06:	f00d fda5	bl	0x1e7554
  1d9a0a:	b001		add	sp, #4
  1d9a0c:	bd70		pop	{r4, r5, r6, pc}

$HighGPIO:
  1d9a0e:	4a4f		ldr	r2, =0xfffe4802	; via 0x1d9b4c
  1d9a10:	2101		mov	r1, #1
  1d9a12:	4081		lsl	r1, r0
  1d9a14:	8810		ldrh	r0, [r2, #0]
  1d9a16:	4301		orr	r1, r0
  1d9a18:	8011		strh	r1, [r2, #0]
  1d9a1a:	4770		bx	lr

$LowGPIO:
  1d9a1c:	4a4b		ldr	r2, =0xfffe4802	; via 0x1d9b4c
  1d9a1e:	2101		mov	r1, #1
  1d9a20:	4081		lsl	r1, r0
  1d9a22:	8810		ldrh	r0, [r2, #0]
  1d9a24:	4388		bic	r0, r1
  1d9a26:	8010		strh	r0, [r2, #0]
  1d9a28:	4770		bx	lr

$CongiureGPIO_Internal:
  1d9a2a:	b510		push	{r4, lr}
  1d9a2c:	1c04		add	r4, r0, #0
  1d9a2e:	4948		ldr	r1, =0xfffe481a	; via 0x1d9b50
  1d9a30:	200f		mov	r0, #15	; 0xf
  1d9a32:	8008		strh	r0, [r1, #0]
  1d9a34:	1c20		add	r0, r4, #0
  1d9a36:	f00e fb23	bl	0x1e8080
  1d9a3a:	1c20		add	r0, r4, #0
  1d9a3c:	f00e fb2e	bl	0x1e809c
  1d9a40:	2800		cmp	r0, #0
  1d9a42:	d101		bne	0x1d9a48
  1d9a44:	2101		mov	r1, #1
  1d9a46:	e000		b	0x1d9a4a
  1d9a48:	2100		mov	r1, #0
  1d9a4a:	0420		lsl	r0, r4, #16
  1d9a4c:	0c00		lsr	r0, r0, #16
  1d9a4e:	f00e fb71	bl	0x1e8134
  1d9a52:	2002		mov	r0, #2
  1d9a54:	f00e fb7d	bl	0x1e8152
  1d9a58:	bd10		pop	{r4, pc}

$CongiureGPIO_External:
  1d9a5a:	b510		push	{r4, lr}
  1d9a5c:	1c04		add	r4, r0, #0
  1d9a5e:	493c		ldr	r1, =0xfffe481a	; via 0x1d9b50
  1d9a60:	200f		mov	r0, #15	; 0xf
  1d9a62:	8008		strh	r0, [r1, #0]
  1d9a64:	1c20		add	r0, r4, #0
  1d9a66:	f00e fb12	bl	0x1e808e
  1d9a6a:	1c20		add	r0, r4, #0
  1d9a6c:	f00e fb16	bl	0x1e809c
  1d9a70:	2800		cmp	r0, #0
  1d9a72:	d101		bne	0x1d9a78
  1d9a74:	2101		mov	r1, #1
  1d9a76:	e000		b	0x1d9a7a
  1d9a78:	2100		mov	r1, #0
  1d9a7a:	0420		lsl	r0, r4, #16
  1d9a7c:	0c00		lsr	r0, r0, #16
  1d9a7e:	f00e fb59	bl	0x1e8134
  1d9a82:	2002		mov	r0, #2
  1d9a84:	f00e fb65	bl	0x1e8152
  1d9a88:	bd10		pop	{r4, pc}

$Init_Drivers:
  1d9a8a:	b500		push	{lr}
  1d9a8c:	f7c0 fd0c	bl	0x19a4a8
  1d9a90:	f7d3 fe6d	bl	0x1ad76e
  1d9a94:	f760 fd49	bl	0x13a52a
  1d9a98:	f77b fd7c	bl	0x155594
  1d9a9c:	f7e0 f8a0	bl	0x1b9be0
  1d9aa0:	f74a ff4a	bl	0x124938
  1d9aa4:	bd00		pop	{pc}

$Init_Serial_Flows:
  1d9aa6:	b500		push	{lr}
  1d9aa8:	482a		ldr	r0, =0x107d828	; via 0x1d9b54
  1d9aaa:	f7be fded	bl	0x198688
  1d9aae:	2000		mov	r0, #0
  1d9ab0:	2103		mov	r1, #3
  1d9ab2:	2200		mov	r2, #0
  1d9ab4:	f7be fe89	bl	0x1987ca
  1d9ab8:	f7be fee3	bl	0x198882
  1d9abc:	4926		ldr	r1, =0xfffe4804	; via 0x1d9b58
  1d9abe:	2004		mov	r0, #4
  1d9ac0:	880a		ldrh	r2, [r1, #0]
  1d9ac2:	4310		orr	r0, r2
  1d9ac4:	8008		strh	r0, [r1, #0]
  1d9ac6:	bd00		pop	{pc}

$Init_Unmask_IT:
  1d9ac8:	b500		push	{lr}
  1d9aca:	2004		mov	r0, #4
  1d9acc:	f00c fc99	bl	0x1e6402
  1d9ad0:	2012		mov	r0, #18	; 0x12
  1d9ad2:	f00c fc96	bl	0x1e6402
  1d9ad6:	2007		mov	r0, #7
  1d9ad8:	f00c fc93	bl	0x1e6402
  1d9adc:	2008		mov	r0, #8
  1d9ade:	f00c fc90	bl	0x1e6402
  1d9ae2:	200f		mov	r0, #15	; 0xf
  1d9ae4:	f00c fc8d	bl	0x1e6402
  1d9ae8:	bd00		pop	{pc}
  1d9aea:	46c0		nop			(mov r8, r8)

$INC_Initialize:
  1ef68c:	b530		push	{r4, r5, lr}
  1ef68e:	1c05		add	r5, r0, #0
  1ef690:	4c13		ldr	r4, =0x107e23c	; via 0x1ef6e0
  1ef692:	2001		mov	r0, #1
  1ef694:	6020		str	r0, [r4, #0]
  1ef696:	f001 fbc5	bl	0x1f0e24
  1ef69a:	f001 fbc7	bl	0x1f0e2c
  1ef69e:	f001 fb89	bl	0x1f0db4
  1ef6a2:	f000 fc87	bl	0x1effb4
  1ef6a6:	f7fb ffc5	bl	0x1eb634
  1ef6aa:	f000 ff0d	bl	0x1f04c8
  1ef6ae:	f000 fedb	bl	0x1f0468
  1ef6b2:	f000 fef9	bl	0x1f04a8
  1ef6b6:	f000 fec7	bl	0x1f0448
  1ef6ba:	f000 ff25	bl	0x1f0508
  1ef6be:	f000 fee3	bl	0x1f0488
  1ef6c2:	f000 ff31	bl	0x1f0528
  1ef6c6:	f7fe f921	bl	0x1ed90c
  1ef6ca:	f000 ff0d	bl	0x1f04e8
  1ef6ce:	1c28		add	r0, r5, #0
  1ef6d0:	f000 ff86	bl	0x1f05e0	; $Application_Initialize
  1ef6d4:	2002		mov	r0, #2
  1ef6d6:	6020		str	r0, [r4, #0]
  1ef6d8:	f076 f872	bl	0x2657c0
  1ef6dc:	bd30		pop	{r4, r5, pc}
  1ef6de:	46c0		nop			(mov r8, r8)

$Application_Initialize:
  1f05e0:	b500		push	{lr}
  1f05e2:	f7e9 f977	bl	0x1d98d4	; $Init_Target
  1f05e6:	f7e9 fa50	bl	0x1d9a8a	; $Init_Drivers
  1f05ea:	f075 fa29	bl	0x265a40	; $Cust_Init_Layer1
  1f05ee:	f7e9 fa5a	bl	0x1d9aa6	; $Init_Serial_Flows
  1f05f2:	f773 ff32	bl	0x16445a	; $StartFrame
  1f05f6:	f7e9 fa67	bl	0x1d9ac8	; $Init_Unmask_IT
  1f05fa:	bd00		pop	{pc}

_INC_Initialize:
  1f07a8:	e92d4000	stmdb	sp!, {lr}
  1f07ac:	e28fe001	add	lr, pc, #1
  1f07b0:	e12fff1e	bx	lr
  1f07b4:	f7fe ff6a	bl	0x1ef68c	; $INC_Initialize
  1f07b8:	4778		bx	pc
  1f07ba:	46c0		nop			(mov r8, r8)
  1f07bc:	e8bd8000	ldmia	sp!, {pc}