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
 };
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to