Add optional support for USB to BERI loader. Fix the linker script so
that the garbage collection feature can be used when linking. Sponsored by: DARPA, AFRL
This commit is contained in:
parent
4be86ee126
commit
b589760a6f
@ -136,6 +136,17 @@ FILES+= loader.rc
|
||||
FILES+= menu.rc
|
||||
.endif
|
||||
|
||||
.if defined(LOADER_USB_SUPPORT)
|
||||
# Do garbage collection
|
||||
CFLAGS+= -ffunction-sections -fdata-sections
|
||||
CFLAGS+= -Wl,--gc-sections
|
||||
# Link USB BOOT library
|
||||
LDADD+= ${.OBJDIR}/../../../usb/libusbboot.a
|
||||
CFLAGS+= -I${.CURDIR}/../../../usb
|
||||
# Define USB SUPPORT
|
||||
CFLAGS+= -DLOADER_USB_SUPPORT
|
||||
.endif
|
||||
|
||||
all: loader
|
||||
|
||||
.include <bsd.prog.mk>
|
||||
|
@ -58,11 +58,16 @@ SECTIONS
|
||||
. += SIZEOF_HEADERS;
|
||||
|
||||
.text ALIGN(0x8): {
|
||||
start.o(.text)
|
||||
*(EXCLUDE_FILE (start.o) .text)
|
||||
start.o(.text*)
|
||||
*(EXCLUDE_FILE (start.o) .text*)
|
||||
*(.rodata*)
|
||||
|
||||
__start_set_Xcommand_set = .;
|
||||
KEEP(*(set_Xcommand_set))
|
||||
__stop_set_Xcommand_set = .;
|
||||
}
|
||||
.data ALIGN(0x8): { *(.data)}
|
||||
.bss ALIGN(0x8): { *(.bss) }
|
||||
.data ALIGN(0x8): { *(.data*)}
|
||||
.bss ALIGN(0x8): { *(.bss*) }
|
||||
|
||||
__heap = ALIGN(0x8); /* 64-bit aligned heap pointer */
|
||||
__data_end = .;
|
||||
|
@ -43,12 +43,19 @@ __FBSDID("$FreeBSD$");
|
||||
#include <loader.h>
|
||||
#include <mips.h>
|
||||
|
||||
#ifdef LOADER_USB_SUPPORT
|
||||
#include <storage/umass_common.h>
|
||||
#endif
|
||||
|
||||
static int __elfN(exec)(struct preloaded_file *);
|
||||
static void extract_currdev(struct bootinfo *);
|
||||
|
||||
struct devsw *devsw[] = {
|
||||
&beri_cfi_disk,
|
||||
&beri_sdcard_disk,
|
||||
#ifdef LOADER_USB_SUPPORT
|
||||
&umass_disk,
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user