svn commit: r266893 - head/sys/boot/mips/beri/loader
Hans Petter Selasky
hselasky at FreeBSD.org
Fri May 30 16:47:55 UTC 2014
Author: hselasky
Date: Fri May 30 16:47:54 2014
New Revision: 266893
URL: http://svnweb.freebsd.org/changeset/base/266893
Log:
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
Modified:
head/sys/boot/mips/beri/loader/Makefile
head/sys/boot/mips/beri/loader/loader.ldscript
head/sys/boot/mips/beri/loader/main.c
Modified: head/sys/boot/mips/beri/loader/Makefile
==============================================================================
--- head/sys/boot/mips/beri/loader/Makefile Fri May 30 16:44:03 2014 (r266892)
+++ head/sys/boot/mips/beri/loader/Makefile Fri May 30 16:47:54 2014 (r266893)
@@ -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>
Modified: head/sys/boot/mips/beri/loader/loader.ldscript
==============================================================================
--- head/sys/boot/mips/beri/loader/loader.ldscript Fri May 30 16:44:03 2014 (r266892)
+++ head/sys/boot/mips/beri/loader/loader.ldscript Fri May 30 16:47:54 2014 (r266893)
@@ -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 = .;
Modified: head/sys/boot/mips/beri/loader/main.c
==============================================================================
--- head/sys/boot/mips/beri/loader/main.c Fri May 30 16:44:03 2014 (r266892)
+++ head/sys/boot/mips/beri/loader/main.c Fri May 30 16:47:54 2014 (r266893)
@@ -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
};
More information about the svn-src-head
mailing list