aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvetch <vetch97@gmail.com>2019-10-22 17:34:29 +0200
committervetch <vetch97@gmail.com>2019-10-22 17:34:29 +0200
commit742f388a00e3bfcb62d184e3f7d990908c6c96c6 (patch)
treec287d5116da45320be334946f093f20bae626eeb
parent10a4f2122ef1e031d3e7e79a4385919125eb9670 (diff)
downloadrpi-MMU-example-742f388a00e3bfcb62d184e3f7d990908c6c96c6.tar.gz
rpi-MMU-example-742f388a00e3bfcb62d184e3f7d990908c6c96c6.zip
modify to use in new pipe_image
m---------RS-2320
-rw-r--r--kernel.c35
-rw-r--r--pipe_image.c1
3 files changed, 17 insertions, 19 deletions
diff --git a/RS-232 b/RS-232
deleted file mode 160000
-Subproject 9016e7a369f9eab0525aaf9d7653a50de05011e
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);
-
}