diff --git a/build/jam/board/raspberry_pi/BoardSetup b/build/jam/board/raspberry_pi/BoardSetup index c70eb90a3d..ef568f2b09 100644 --- a/build/jam/board/raspberry_pi/BoardSetup +++ b/build/jam/board/raspberry_pi/BoardSetup @@ -9,6 +9,11 @@ HAIKU_BOOT_PLATFORM = raspberrypi_arm ; HAIKU_BOARD_LOADER_BASE = 0x0 ; +HAIKU_BOARD_BOOT_ARCHIVE_BASE = 0x04000000 ; +HAIKU_BOARD_BOOT_ARCHIVE_SIZE = 0x00400000 ; + # TODO: needs to be configured in the config.txt + # ramfsfile=haiku-floppyboot.tgz and ramfsaddr=x + # # Flash image # diff --git a/src/system/boot/platform/raspberrypi_arm/Jamfile b/src/system/boot/platform/raspberrypi_arm/Jamfile index 538ac0f615..7293dbf9a0 100644 --- a/src/system/boot/platform/raspberrypi_arm/Jamfile +++ b/src/system/boot/platform/raspberrypi_arm/Jamfile @@ -12,7 +12,9 @@ UsePrivateHeaders [ FDirName storage ] ; UsePrivateHeaders [ FDirName kernel arch $(TARGET_KERNEL_ARCH) board $(TARGET_BOOT_BOARD) ] ; { - local defines = _BOOT_MODE ; + local defines = _BOOT_MODE + BOOT_ARCHIVE_BASE=$(HAIKU_BOARD_BOOT_ARCHIVE_BASE) + BOOT_ARCHIVE_SIZE=$(HAIKU_BOARD_BOOT_ARCHIVE_SIZE) ; defines = [ FDefines $(defines) ] ; SubDirCcFlags $(defines) ; diff --git a/src/system/boot/platform/raspberrypi_arm/start.cpp b/src/system/boot/platform/raspberrypi_arm/start.cpp index 008ac9229d..daf40aef77 100644 --- a/src/system/boot/platform/raspberrypi_arm/start.cpp +++ b/src/system/boot/platform/raspberrypi_arm/start.cpp @@ -120,6 +120,11 @@ _start(void) mmu_init(); platform_init_video(); + // Map in the boot archive loaded into memory by the firmware. + args.platform.boot_tgz_size = BOOT_ARCHIVE_SIZE; + args.platform.boot_tgz_data = (void*)mmu_map_physical_memory( + BOOT_ARCHIVE_BASE, args.platform.boot_tgz_size, kDefaultPageFlags); + serial_init(); console_init();