hrev48876 adds 2 changesets to branch 'master' old head: 196479ae961cfec984ec91d38498940970a2fdd5 new head: deb4929b9aa59c3d3af2e920097895eb39e312b9 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=deb4929b9aa5+%5E196479ae961c ---------------------------------------------------------------------------- db24244df1a1: rpi1/rpi2: More sane board loader bases deb4929b9aa5: rpi1/rpi2: Use PL011 UART fallback in loader. * Adjust UART base locations to reflect ARM pref base. * We have a working haiku_loader_u-boot on Raspberry Pi 2!:q [ Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> ] ---------------------------------------------------------------------------- 7 files changed, 18 insertions(+), 15 deletions(-) build/jam/board/rpi1/BoardSetup | 4 ++-- build/jam/board/rpi2/BoardSetup | 4 ++-- .../private/kernel/arch/arm/board/rpi1/board_config.h | 4 ++-- .../private/kernel/arch/arm/board/rpi2/board_config.h | 4 ++-- src/system/boot/platform/raspberrypi_arm/serial.cpp | 3 +-- src/system/boot/platform/u-boot/serial.cpp | 12 ++++++++---- src/system/kernel/arch/arm/arch_debug_console.cpp | 2 +- ############################################################################ Commit: db24244df1a159f149f49dc6cb68c4d926413245 URL: http://cgit.haiku-os.org/haiku/commit/?id=db24244df1a1 Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sat Mar 7 19:00:56 2015 UTC rpi1/rpi2: More sane board loader bases ---------------------------------------------------------------------------- diff --git a/build/jam/board/rpi1/BoardSetup b/build/jam/board/rpi1/BoardSetup index d553063..05e1b69 100644 --- a/build/jam/board/rpi1/BoardSetup +++ b/build/jam/board/rpi1/BoardSetup @@ -7,12 +7,12 @@ HAIKU_BOOT_PLATFORM = u-boot ; # Various hardcoded addresses # -HAIKU_BOARD_LOADER_BASE = 0x0c180000 ; +HAIKU_BOARD_LOADER_BASE = 0x00080000 ; HAIKU_BOARD_LOADER_ENTRY_RAW = $(HAIKU_BOARD_LOADER_BASE) ; HAIKU_BOARD_LOADER_ENTRY_LINUX = `printf \"obase=16;ibase=16;8 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; HAIKU_BOARD_LOADER_ENTRY_NBSD = `printf \"obase=16;ibase=16;8 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; -HAIKU_BOARD_BOOT_ARCHIVE_BASE = 0x04000000 ; +HAIKU_BOARD_BOOT_ARCHIVE_BASE = 0x02100000 ; HAIKU_BOARD_BOOT_ARCHIVE_SIZE = 0x00400000 ; # TODO: needs to be configured in the config.txt # ramfsfile=haiku-floppyboot.tgz and ramfsaddr=x diff --git a/build/jam/board/rpi2/BoardSetup b/build/jam/board/rpi2/BoardSetup index 0b58226..da89657 100644 --- a/build/jam/board/rpi2/BoardSetup +++ b/build/jam/board/rpi2/BoardSetup @@ -7,12 +7,12 @@ HAIKU_BOOT_PLATFORM = u-boot ; # Various hardcoded addresses # -HAIKU_BOARD_LOADER_BASE = 0x0c180000 ; +HAIKU_BOARD_LOADER_BASE = 0x00080000 ; HAIKU_BOARD_LOADER_ENTRY_RAW = $(HAIKU_BOARD_LOADER_BASE) ; HAIKU_BOARD_LOADER_ENTRY_LINUX = `printf \"obase=16;ibase=16;8 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; HAIKU_BOARD_LOADER_ENTRY_NBSD = `printf \"obase=16;ibase=16;8 + %x\\n\" $(HAIKU_BOARD_LOADER_BASE)|bc` ; -HAIKU_BOARD_BOOT_ARCHIVE_BASE = 0x04000000 ; +HAIKU_BOARD_BOOT_ARCHIVE_BASE = 0x02100000 ; HAIKU_BOARD_BOOT_ARCHIVE_SIZE = 0x00400000 ; # TODO: needs to be configured in the config.txt # ramfsfile=haiku-floppyboot.tgz and ramfsaddr=x ############################################################################ Revision: hrev48876 Commit: deb4929b9aa59c3d3af2e920097895eb39e312b9 URL: http://cgit.haiku-os.org/haiku/commit/?id=deb4929b9aa5 Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sat Mar 7 19:42:18 2015 UTC rpi1/rpi2: Use PL011 UART fallback in loader. * Adjust UART base locations to reflect ARM pref base. * We have a working haiku_loader_u-boot on Raspberry Pi 2!:q ---------------------------------------------------------------------------- diff --git a/headers/private/kernel/arch/arm/board/rpi1/board_config.h b/headers/private/kernel/arch/arm/board/rpi1/board_config.h index 21a96bb..607c71c 100644 --- a/headers/private/kernel/arch/arm/board/rpi1/board_config.h +++ b/headers/private/kernel/arch/arm/board/rpi1/board_config.h @@ -17,7 +17,7 @@ #include <arch/arm/bcm283X.h> // UART Settings -#define BOARD_UART_AMBA_PL011 1 +#define BOARD_UART_PL011 1 #define BOARD_UART1_BASE UART0_BASE // PL011 UART @@ -26,7 +26,7 @@ #define BOARD_UART3_BASE 0 // N/A -#define BOARD_UART_DEBUG BOARD_UART1_BASE +#define BOARD_UART_DEBUG DEVICE_BASE + BOARD_UART1_BASE #define BOARD_UART_CLOCK 3000000 /* 3Mhz */ diff --git a/headers/private/kernel/arch/arm/board/rpi2/board_config.h b/headers/private/kernel/arch/arm/board/rpi2/board_config.h index a0f79e1..31f8301 100644 --- a/headers/private/kernel/arch/arm/board/rpi2/board_config.h +++ b/headers/private/kernel/arch/arm/board/rpi2/board_config.h @@ -17,7 +17,7 @@ #include <arch/arm/bcm283X.h> // UART Settings -#define BOARD_UART_AMBA_PL011 1 +#define BOARD_UART_PL011 1 #define BOARD_UART1_BASE UART0_BASE // PL011 UART @@ -26,7 +26,7 @@ #define BOARD_UART3_BASE 0 // N/A -#define BOARD_UART_DEBUG BOARD_UART1_BASE +#define BOARD_UART_DEBUG DEVICE_BASE + BOARD_UART1_BASE #define BOARD_UART_CLOCK 3000000 /* 3Mhz */ diff --git a/src/system/boot/platform/raspberrypi_arm/serial.cpp b/src/system/boot/platform/raspberrypi_arm/serial.cpp index 24fdc63..bfe35b1 100644 --- a/src/system/boot/platform/raspberrypi_arm/serial.cpp +++ b/src/system/boot/platform/raspberrypi_arm/serial.cpp @@ -88,8 +88,7 @@ serial_cleanup(void) extern "C" void serial_init(void) { - gUART = arch_get_uart_pl011(gPeripheralBase + BOARD_UART_DEBUG, - BOARD_UART_CLOCK); + gUART = arch_get_uart_pl011(BOARD_UART_DEBUG, BOARD_UART_CLOCK); gUART->InitEarly(); gUART->InitPort(9600); diff --git a/src/system/boot/platform/u-boot/serial.cpp b/src/system/boot/platform/u-boot/serial.cpp index d0a1592..7fcee37 100644 --- a/src/system/boot/platform/u-boot/serial.cpp +++ b/src/system/boot/platform/u-boot/serial.cpp @@ -10,6 +10,7 @@ #include "serial.h" #include <debug_uart_8250.h> +#include <arch_uart_pl011.h> #include <board_config.h> #include <boot/platform.h> #include <arch/cpu.h> @@ -83,10 +84,8 @@ extern "C" void serial_enable(void) { /* should already be initialized by U-Boot */ - /* gUART->InitEarly(); - gUART->InitPort(9600); - */ + gUART->InitPort(115200); sSerialEnabled++; } @@ -113,8 +112,13 @@ serial_init(const void *fdt) #ifdef BOARD_UART_DEBUG // fallback to hardcoded board UART - if (gUART == NULL) + if (gUART == NULL) { + #if defined(BOARD_UART_PL011) + gUART = arch_get_uart_pl011(BOARD_UART_DEBUG, BOARD_UART_CLOCK); + #else gUART = arch_get_uart_8250(BOARD_UART_DEBUG, BOARD_UART_CLOCK); + #endif + } #endif if (gUART == NULL) diff --git a/src/system/kernel/arch/arm/arch_debug_console.cpp b/src/system/kernel/arch/arm/arch_debug_console.cpp index bce88e1..195b68b 100644 --- a/src/system/kernel/arch/arm/arch_debug_console.cpp +++ b/src/system/kernel/arch/arm/arch_debug_console.cpp @@ -95,7 +95,7 @@ arch_debug_serial_early_boot_message(const char *string) status_t arch_debug_console_init(kernel_args *args) { - #if defined(BOARD_UART_AMBA_PL011) + #if defined(BOARD_UART_PL011) gArchDebugUART = arch_get_uart_pl011(BOARD_UART_DEBUG, BOARD_UART_CLOCK); #else // More Generic 8250