From c06fb44b7f63bbb94523f0f4d2908d34d22b94c2 Mon Sep 17 00:00:00 2001
From: Christian Cunningham <cc@localhost>
Date: Fri, 3 Dec 2021 09:55:06 -0700
Subject: Started moving source files to subdirectories

---
 src/cpu/irq.S      | 62 ++++++++++++++++++++++++++++++++++++++++++++
 src/drivers/uart.S | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/irq.S          | 62 --------------------------------------------
 src/uart.S         | 75 ------------------------------------------------------
 4 files changed, 137 insertions(+), 137 deletions(-)
 create mode 100644 src/cpu/irq.S
 create mode 100644 src/drivers/uart.S
 delete mode 100644 src/irq.S
 delete mode 100644 src/uart.S

(limited to 'src')

diff --git a/src/cpu/irq.S b/src/cpu/irq.S
new file mode 100644
index 0000000..53a749e
--- /dev/null
+++ b/src/cpu/irq.S
@@ -0,0 +1,62 @@
+.globl a_irq_handler
+a_irq_handler:
+	push {lr}
+	bl disable_irq
+	// r2 = CORE0_INTERRUPT_SOURCE
+	// if r2 & 0b100000000
+	mov r2, #0x40000000
+	ldr r3, [r2, #0x60]
+	tst r3, #256
+	beq a_irq_handler.timer
+	// r2 = IRQ_PEND2
+	// r2 & 1 << 25
+	mov r2, #0xB208
+	movt r2, #0x3F00
+	ldr r3, [r2]
+	tst r3, #0x2000000
+	beq a_irq_handler.exit
+	mov r2, #0x1040
+	movt r2, #0x3F20
+	ldr r3, [r2]
+	tst r3, #16
+	beq a_irq_handler.exit
+	mov r2, #0x1000
+	movt r2, #0x3F20
+	ldrb r0, [r2]
+	push {r0}
+	bl enable_irq
+	pop {r0}
+	bl uart_char
+	ldr r0, =imsg
+	bl uart_string
+	pop {pc}
+a_irq_handler.timer:
+	// r2 = CORE0_INTERRUPT_SOURCE
+	// if r2 & 0b1000
+	mov r2, #0x40000000
+	ldr r3, [r2, #0x60]
+	tst r3, #8
+	beq a_irq_handler.exit
+	bl c_timer
+	//ldr r0, =imsg
+	//bl uart_string
+a_irq_handler.exit:
+	bl enable_irq
+	pop {pc}
+
+.globl a_fiq_handler
+a_fiq_handler:
+	push {lr}
+	bl disable_fiq
+	bl c_timer
+	ldr r0, =fmsg
+	bl uart_string
+a_fiq_handler.exit:
+	bl enable_fiq
+	pop {pc}
+
+.section ".data"
+imsg:
+	.asciz " asm_irq_handler\n"
+fmsg:
+	.asciz " asm_fiq_handler\n"
diff --git a/src/drivers/uart.S b/src/drivers/uart.S
new file mode 100644
index 0000000..0864b7e
--- /dev/null
+++ b/src/drivers/uart.S
@@ -0,0 +1,75 @@
+.section ".text"
+
+.globl uart_init
+uart_init:
+	//*UART0_IMSC = 1 << 4;
+	// IGNORE OVERRUN
+	mov r2, #0x1038
+	movt r2, #0x3F20
+	mov r3, #0b10000
+	str r3, [r2]
+	//*IRQ_ENABLE2 = 1 << 25;
+	mov r2, #0xB214
+	movt r2, #0x3F00
+	mov r3, #0
+	movt r3, #0b1000000000
+	str r3, [r2]
+	//*GPU_INTERRUPTS_ROUTING = 0x00;
+	// Route GPU interrupts to Core0
+	mov r2, #0x000C
+	movt r2, #0x4000
+	eor r3, r3
+	str r3, [r2]
+	bx lr
+
+.globl uart_char
+uart_char:
+	mov r2, #0x1000
+	movt r2, #0x3f20
+uart_char.loop:
+	ldr r3, [r2, #24]
+	tst r3, #0b100000
+	bne uart_char.loop
+	str r0, [r2]
+	bx lr
+
+.globl uart_string
+uart_string:
+	push    {r4, lr}
+	mov     r4, r0
+	ldrb    r0, [r0]
+	cmp     r0, #0
+	popeq   {r4, pc}
+uart_string.loop:
+	bl      uart_char
+	ldrb    r0, [r4, #1]!
+	cmp     r0, #0
+	bne     uart_string.loop
+	pop     {r4, pc}
+
+.globl uart_hex
+uart_hex:
+	push {r4, lr}
+	mov r2, #0x1000
+	movt r2, #0x3f20
+uart_hex.loop:
+	ldr r3, [r2, #24]
+	tst r3, #0b100000
+	bne uart_hex.loop
+	mov r3, #7
+uart_hex.hloop:
+	mov r1, r0
+	asr r1, r3
+	asr r1, r3
+	asr r1, r3
+	asr r1, r3
+	and r1, #0xf
+	add r1, #0x30
+	cmp r1, #0x3A
+	blt uart_hex.print
+	add r1, #7
+uart_hex.print:
+	str r1, [r2]
+	subs r3, #1
+	bge uart_hex.hloop
+	pop {r4, pc}
diff --git a/src/irq.S b/src/irq.S
deleted file mode 100644
index 53a749e..0000000
--- a/src/irq.S
+++ /dev/null
@@ -1,62 +0,0 @@
-.globl a_irq_handler
-a_irq_handler:
-	push {lr}
-	bl disable_irq
-	// r2 = CORE0_INTERRUPT_SOURCE
-	// if r2 & 0b100000000
-	mov r2, #0x40000000
-	ldr r3, [r2, #0x60]
-	tst r3, #256
-	beq a_irq_handler.timer
-	// r2 = IRQ_PEND2
-	// r2 & 1 << 25
-	mov r2, #0xB208
-	movt r2, #0x3F00
-	ldr r3, [r2]
-	tst r3, #0x2000000
-	beq a_irq_handler.exit
-	mov r2, #0x1040
-	movt r2, #0x3F20
-	ldr r3, [r2]
-	tst r3, #16
-	beq a_irq_handler.exit
-	mov r2, #0x1000
-	movt r2, #0x3F20
-	ldrb r0, [r2]
-	push {r0}
-	bl enable_irq
-	pop {r0}
-	bl uart_char
-	ldr r0, =imsg
-	bl uart_string
-	pop {pc}
-a_irq_handler.timer:
-	// r2 = CORE0_INTERRUPT_SOURCE
-	// if r2 & 0b1000
-	mov r2, #0x40000000
-	ldr r3, [r2, #0x60]
-	tst r3, #8
-	beq a_irq_handler.exit
-	bl c_timer
-	//ldr r0, =imsg
-	//bl uart_string
-a_irq_handler.exit:
-	bl enable_irq
-	pop {pc}
-
-.globl a_fiq_handler
-a_fiq_handler:
-	push {lr}
-	bl disable_fiq
-	bl c_timer
-	ldr r0, =fmsg
-	bl uart_string
-a_fiq_handler.exit:
-	bl enable_fiq
-	pop {pc}
-
-.section ".data"
-imsg:
-	.asciz " asm_irq_handler\n"
-fmsg:
-	.asciz " asm_fiq_handler\n"
diff --git a/src/uart.S b/src/uart.S
deleted file mode 100644
index 0864b7e..0000000
--- a/src/uart.S
+++ /dev/null
@@ -1,75 +0,0 @@
-.section ".text"
-
-.globl uart_init
-uart_init:
-	//*UART0_IMSC = 1 << 4;
-	// IGNORE OVERRUN
-	mov r2, #0x1038
-	movt r2, #0x3F20
-	mov r3, #0b10000
-	str r3, [r2]
-	//*IRQ_ENABLE2 = 1 << 25;
-	mov r2, #0xB214
-	movt r2, #0x3F00
-	mov r3, #0
-	movt r3, #0b1000000000
-	str r3, [r2]
-	//*GPU_INTERRUPTS_ROUTING = 0x00;
-	// Route GPU interrupts to Core0
-	mov r2, #0x000C
-	movt r2, #0x4000
-	eor r3, r3
-	str r3, [r2]
-	bx lr
-
-.globl uart_char
-uart_char:
-	mov r2, #0x1000
-	movt r2, #0x3f20
-uart_char.loop:
-	ldr r3, [r2, #24]
-	tst r3, #0b100000
-	bne uart_char.loop
-	str r0, [r2]
-	bx lr
-
-.globl uart_string
-uart_string:
-	push    {r4, lr}
-	mov     r4, r0
-	ldrb    r0, [r0]
-	cmp     r0, #0
-	popeq   {r4, pc}
-uart_string.loop:
-	bl      uart_char
-	ldrb    r0, [r4, #1]!
-	cmp     r0, #0
-	bne     uart_string.loop
-	pop     {r4, pc}
-
-.globl uart_hex
-uart_hex:
-	push {r4, lr}
-	mov r2, #0x1000
-	movt r2, #0x3f20
-uart_hex.loop:
-	ldr r3, [r2, #24]
-	tst r3, #0b100000
-	bne uart_hex.loop
-	mov r3, #7
-uart_hex.hloop:
-	mov r1, r0
-	asr r1, r3
-	asr r1, r3
-	asr r1, r3
-	asr r1, r3
-	and r1, #0xf
-	add r1, #0x30
-	cmp r1, #0x3A
-	blt uart_hex.print
-	add r1, #7
-uart_hex.print:
-	str r1, [r2]
-	subs r3, #1
-	bge uart_hex.hloop
-	pop {r4, pc}
-- 
cgit v1.2.1