aboutsummaryrefslogtreecommitdiff
path: root/src/sys/kernel.S
blob: 71b22a11d515a02fc1b8c47406428a84c183dc72 (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
.section ".text.kernel"

.include "macros.inc"

.globl kernel_main
kernel_main:
	bl sysinit
	bl status
	ldr r2, =ttbr_msg
	mov r0, #23
	mov r1, #0
	mov r3, #0xFF00
	bl draw_cstring
	// Initialize System Cycle Counter
	mov r0, #1
	mcr p15, 0, r0, c9, c14, 0
	mov r0, #1
	mcr p15, 0, r0, c9, c12, 0
	mov r0, #0x80000000
	mcr p15, 0, r0, c9, c12, 1

	// Intentional undefined instruction
	// .word 0xf7f0a000
	cpsie ai, #0x10
	svc #2 // Start scheduling!
2:
	wfe
	b 2b

.section .data
ttbr_msg:
	.asciz "MMU Initialized!"