summaryrefslogtreecommitdiff
path: root/src/boot/boot2.S
blob: 0b610841652393ab2d11b5f812c15ee13b01cf1a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	.thumb

	.section .boot2, "ax"

	// Disable SSI
	ldr r0, =SSI_SSIENR
	ldr r1, =0
	str r1, [r0]

	// Set baud rate
	ldr r0, =SSI_BAUDR
	ldr r1, =4
	str r1, [r0]

	// Enter XIP
	ldr r0, =SSI_CTRLR0
	ldr r1, =(3 << 8) | (31 << 16)
	str r1, [r0]

	// CTRLR0
	ldr r0, =SSI_SPI_CTRLR0
	ldr r1, =(6 << 2) | (2 << 8) | (0x03 << 24)
	str r1, [r0]

	// Enable back SSI
	ldr r0, =SSI_SSIENR
	ldr r1, =1
	str r1, [r0]

	// Jump to crt0.S
	ldr r0, =0x10000101
	bx r0

	.set SSI_BASE,           0x18000000
	.set SSI_CTRLR0,         SSI_BASE + 0x00
	.set SSI_SSIENR,         SSI_BASE + 0x08
	.set SSI_BAUDR,          SSI_BASE + 0x14
	.set SSI_SPI_CTRLR0,     SSI_BASE + 0xF4