From 742f388a00e3bfcb62d184e3f7d990908c6c96c6 Mon Sep 17 00:00:00 2001 From: vetch Date: Tue, 22 Oct 2019 17:34:29 +0200 Subject: modify to use in new pipe_image --- RS-232 | 1 - kernel.c | 35 +++++++++++++++++------------------ pipe_image.c | 1 - 3 files changed, 17 insertions(+), 20 deletions(-) delete mode 160000 RS-232 diff --git a/RS-232 b/RS-232 deleted file mode 160000 index 9016e7a..0000000 --- a/RS-232 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9016e7a369f9eab0525aaf9d7653a50de05011ea diff --git a/kernel.c b/kernel.c index c5918a1..3898cf2 100644 --- a/kernel.c +++ b/kernel.c @@ -12,19 +12,18 @@ void kernel_main(uint32_t r0, uint32_t r1, uint32_t atags) // When we attach screen session after loading kernel with socat // we miss kernel's greeting... So we'll make the kernel wait for // one char we're going to send from within screen - uart_getc(); - - uart_puts("Hello, kernel World!\r\n"); +// uart_getc(); + uint32_t ID_MMFR0; + // get contents of coprocessor register to check for paging support + asm("mrc p15, 0, %0, c0, c1, 4" : "=r" (ID_MMFR0)); - uint32_t ID_MMFR0; - // get contents of coprocessor register to check for paging support - asm("mrc p15, 0, %0, c0, c1, 4" : "=r" (ID_MMFR0)); +// uart_puts("Hello, kernel World!\r\n"); char *paging; switch(ID_MMFR0 & 0xf) /* lowest 4 bits indicate VMSA support */ { case 0 : paging = "no paging\n\r"; break; - case 1 : paging = "implementation defined paging\n\r"; break; + case 1 : paging = "implementation defined paging\n\r\r\n"; break; case 2 : paging = "VMSAv6, with cache and TLB type registers\n\r"; break; case 3 : paging = "VMSAv7, with support for remapping and access flag\n\r"; break; case 4 : paging = "VMSAv7 with PXN bit supported\n\r"; break; @@ -42,20 +41,20 @@ void kernel_main(uint32_t r0, uint32_t r1, uint32_t atags) char *mode; switch(CPSR & 0x1f) /* lowest 5 bits indicate processor mode */ { - case 0x10 : mode = "User (PL0)"; break; - case 0x11 : mode = "FIQ (PL1)"; break; - case 0x12 : mode = "IRQ (PL1)"; break; - case 0x13 : mode = "Supervisor (PL1)"; break; - case 0x16 : mode = "Monitor (PL1)"; break; - case 0x17 : mode = "Abort (PL1)"; break; - case 0x1a : mode = "Hyp (PL2)"; break; - case 0x1b : mode = "Undefined (PL1)"; break; - case 0x1f : mode = "System (PL1)"; break; - default : mode = "Unknown mode"; break; + case 0x10 : mode = "User (PL0)\r\n"; break; + case 0x11 : mode = "FIQ (PL1)\r\n"; break; + case 0x12 : mode = "IRQ (PL1)\r\n"; break; + case 0x13 : mode = "Supervisor (PL1)\r\n"; break; + case 0x16 : mode = "Monitor (PL1)\r\n"; break; + case 0x17 : mode = "Abort (PL1)\r\n"; break; + case 0x1a : mode = "Hyp (PL2)\r\n"; break; + case 0x1b : mode = "Undefined (PL1)\r\n"; break; + case 0x1f : mode = "System (PL1)\r\n"; break; + default : mode = "Unknown mode\r\n"; break; } uart_puts(mode); - + while (1) uart_putc(uart_getc()); } diff --git a/pipe_image.c b/pipe_image.c index ab3568c..b52cec2 100644 --- a/pipe_image.c +++ b/pipe_image.c @@ -60,5 +60,4 @@ int main(int argc, char **argv) { bytes_left -= bytes_read; } RS232_CloseComport(comport); - } -- cgit v1.2.3