Fix platform support for imx8x
authorDaniel Schwyn <daniel.schwyn@inf.ethz.ch>
Wed, 29 May 2019 12:15:37 +0000 (14:15 +0200)
committerDaniel Schwyn <daniel.schwyn@inf.ethz.ch>
Tue, 8 Oct 2019 13:45:28 +0000 (15:45 +0200)
Signed-off-by: Daniel Schwyn <daniel.schwyn@inf.ethz.ch>

kernel/arch/armv8/boot/boot_generic.c
kernel/arch/armv8/plat_imx8x.c

index 7a86d75..35b6c9f 100644 (file)
@@ -29,6 +29,8 @@
 #include <multiboot2.h>
 #include <barrelfish_kpi/arm_core_data.h>
 
+#define DEBUG 1
+#define IMX8X
 
 void eret(uint64_t a0, uint64_t a1, uint64_t a2, uint64_t a3);
 
@@ -90,7 +92,7 @@ static void debug_serial_putc(char c)
     pl011_uart_DR_rawwr(&uart, c);
 }
 #elif defined(IMX8X)
-#include <dev/lpuart.h>
+#include <dev/lpuart_dev.h>
 
 #define IMX8X8_MAP_UART0_OFFSET 0x5A090000UL
 
@@ -102,8 +104,8 @@ static void debug_uart_initialize(void) {
 
 static void debug_serial_putc(char c)
 {
-    while(lpuart_stat_tdre_rdf(uart) == 0);
-    lpuart_data_buf_wrf(uart, c);
+    while(lpuart_stat_tdre_rdf(&uart) == 0);
+    lpuart_data_buf_wrf(&uart, c);
 }
 #endif
 
@@ -568,6 +570,11 @@ static void boot_generic_init(struct armv8_core_data *core_data) {
     /* configure EL 1 traps*/
     configure_el1_traps();
 
+    debug_print_string("Jumping to CPU driver\n");
+    __asm volatile(
+        "_break:\n"
+        "b _break"
+    );
     switch(el) {
     case 3:
         configure_el3_traps();
index 34ee387..9f15a90 100644 (file)
@@ -27,8 +27,8 @@
 #include <psci.h>
 #include <arch/armv8/global.h>
 
-/* RAM starts at 0x80000000 */
-lpaddr_t phys_memory_start= 0x80000000;
+/* RAM starts at 0, provided by the MMAP */
+lpaddr_t phys_memory_start= 0;
 
 /*
  * ----------------------------------------------------------------------------