From 8d08aa3662ed44ef2f4b35b1e79f44adaf3229c9 Mon Sep 17 00:00:00 2001 From: vetch Date: Thu, 2 Jan 2020 17:49:42 +0100 Subject: update, may not work now --- kernel.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'kernel.c') diff --git a/kernel.c b/kernel.c index 096cd9a..e783465 100644 --- a/kernel.c +++ b/kernel.c @@ -2,7 +2,10 @@ #include "demo_functionality.h" #include "paging.h" #include "interrupts.h" +#include "strings.h" +#include "psr.h" +extern void enable_irq ( void ); void kernel_main(uint32_t r0, uint32_t r1, uint32_t atags) { // Declare as unused @@ -54,6 +57,37 @@ void kernel_main(uint32_t r0, uint32_t r1, uint32_t atags) uart_putc(*(int*)(0x40000034) ); *(int *)(0x40000034) = 1; + uint32_to_bits(*(int*)(0xE000ED24),buf); + uart_puts(buf); + uart_puts("\r\n"); + uint32_to_bits(*(int*)(0xE002ED24),buf); + uart_puts(buf); + uart_puts("\r\n"); + + int regVal; + asm("mrs %0, cpsr":"=r"(regVal):); + uint32_to_bits(regVal,buf); + uart_puts(buf); + uart_puts("\r\n"); + +// ; Read ICC_IGRPEN1 into Rt +// MCR p15,0,,c12,c12,7 ; Write Rt to ICC_IGRPEN1 + + uint32_t ICC_IGRPEN1; + asm(" MRC p15,0, %0 ,c12,c12,7" : "=r"(ICC_IGRPEN1) :: "memory"); //READ FROM ICC_IGRPEN1 + + uint32_to_bits(ICC_IGRPEN1,buf); + uart_puts(buf); + uart_puts("\r\n"); + + + // uint32_to_bits(*(int*)(0x40000024),buf); +// uart_puts(buf); +// uart_puts("\r\n"); + +// *(int *)(0x7E00B210) = 1; +// *(int *)(0x7E00B214) = 1; +// *(int *)(0x7E00B218) = 1; // prints some info and sets up a section for PL0 code, loads a blob // there and jumps to it... never, ever, ever returns -- cgit v1.2.3