diff --git a/src/system/boot/Jamfile b/src/system/boot/Jamfile index 33551f77b6..7cd9903e8f 100644 --- a/src/system/boot/Jamfile +++ b/src/system/boot/Jamfile @@ -22,6 +22,11 @@ local librootFunctions = strtol.o ; +local extraLinkerArgs = ; +if $(TARGET_BOOT_BOARD) { + extraLinkerArgs += -L$(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/board/$(TARGET_BOOT_BOARD) ; +} + AddResources haiku_loader : boot_loader.rdef ; KernelLd boot_loader_$(TARGET_BOOT_PLATFORM) : @@ -45,7 +50,7 @@ KernelLd boot_loader_$(TARGET_BOOT_PLATFORM) : $(librootFunctions:G=src!system!kernel!lib) : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/boot_loader_$(TARGET_BOOT_PLATFORM).ld - : -Bstatic + : -Bstatic $(extraLinkerArgs) ; rule BuildCoffLoader { diff --git a/src/system/ldscripts/arm/board/overo/board.ld b/src/system/ldscripts/arm/board/overo/board.ld new file mode 100644 index 0000000000..b8078f8c0b --- /dev/null +++ b/src/system/ldscripts/arm/board/overo/board.ld @@ -0,0 +1,6 @@ +/* + * Gumstix Overo ld definitions + */ + +BOARD_LOADER_BASE = 0x80008000 ; +#error diff --git a/src/system/ldscripts/arm/board/verdex/board.ld b/src/system/ldscripts/arm/board/verdex/board.ld new file mode 100644 index 0000000000..2bc99ae81a --- /dev/null +++ b/src/system/ldscripts/arm/board/verdex/board.ld @@ -0,0 +1,6 @@ +/* + * Gumstix Verdex ld definitions + */ + +BOARD_LOADER_BASE = 0xa2000000 ; + diff --git a/src/system/ldscripts/arm/boot_loader_u-boot.ld b/src/system/ldscripts/arm/boot_loader_u-boot.ld index 8d90215c34..aa8bcaa767 100644 --- a/src/system/ldscripts/arm/boot_loader_u-boot.ld +++ b/src/system/ldscripts/arm/boot_loader_u-boot.ld @@ -1,11 +1,13 @@ OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") OUTPUT_ARCH(arm) +/* include board-specific definitions */ +INCLUDE board.ld + ENTRY(_start) SECTIONS { -/* . = 0x80008000; */ - . = 0xa2000000; + . = BOARD_LOADER_BASE; /* text/read-only data */ .text : { *(.text .gnu.linkonce.t.*) }