Mercurial > hg > Members > mitsuki > xv6_rpi2_port
diff loader.S @ 0:ed10291ff195
first commit
author | mir3636 |
---|---|
date | Sun, 06 Jan 2019 19:27:03 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loader.S Sun Jan 06 19:27:03 2019 +0900 @@ -0,0 +1,43 @@ +/* + * loader.S + * + * Created on: Feb 11, 2017 + * Author: Mahdi Amiri + */ + + .text + .globl _start +_start: + b loader_start /* branch to the code */ + b loader_sleep // undefined + b loader_sleep // svc + b loader_sleep // prefetch + b loader_sleep // abort + b loader_sleep // hypervisor + b loader_sleep // irq + b loader_sleep // fiq + + .balign 4 +loader_sleep: + wfi + b loader_sleep + +loader_start: + // Switch to SVC mode, all interrupts disabled + .set PSR_MODE_SVC, 0x13 + .set PSR_MODE_IRQ_DISABLED, (1<<7) + .set PSR_MODE_FIQ_DISABLED, (1<<6) + msr cpsr_c, #(PSR_MODE_SVC + PSR_MODE_FIQ_DISABLED + PSR_MODE_IRQ_DISABLED) + + // Set all CPUs to wait except the primary CPU + mrc p15, 0, r0, c0, c0, 5 + ands r0, r0, #0x03 + bne loader_sleep + + mov pc, #0x8000 + + .data + .align 4 +_data_start: + .incbin "kernel7.bin" +_data_end: