From 6e082c9b8135e6a9afc0f1c8539e43fa895542f9 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 5 Jul 2007 14:15:43 +0100 Subject: [PATCH] Add .usb target --- src/arch/i386/Makefile | 11 +++++++++++ src/arch/i386/prefix/usbdisk.S | 23 +++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/arch/i386/prefix/usbdisk.S diff --git a/src/arch/i386/Makefile b/src/arch/i386/Makefile index ce147b76..f4e19d3f 100644 --- a/src/arch/i386/Makefile +++ b/src/arch/i386/Makefile @@ -98,6 +98,10 @@ MEDIA += com MEDIA += exe +# Special target for building Master Boot Record binary +$(BIN)/mbr.bin : $(BIN)/mbr.o + $(OBJCOPY) -O binary $< $@ + # Some suffixes (e.g. %.zfd0) are generated directly from other # finished files (e.g. %.zdsk), rather than having their own prefix. @@ -117,6 +121,13 @@ NON_AUTO_MEDIA += liso %liso: %lilo util/genliso bash util/genliso $@ $< +# rule to make a USB disk image +$(BIN)/usbdisk.bin : $(BIN)/usbdisk.o + $(OBJCOPY) -O binary $< $@ + +%usb: $(BIN)/usbdisk.bin %hd + cat $^ > $@ + # Add NON_AUTO_MEDIA to the media list, so that they show up in the # output of "make" # diff --git a/src/arch/i386/prefix/usbdisk.S b/src/arch/i386/prefix/usbdisk.S new file mode 100644 index 00000000..07255d50 --- /dev/null +++ b/src/arch/i386/prefix/usbdisk.S @@ -0,0 +1,23 @@ + .text + .arch i386 + .section ".prefix", "awx", @progbits + .code16 + .org 0 + +#include "mbr.S" + +/* Partition table: ZIP-compatible partition 4, 64 heads, 32 sectors/track */ + .org 446 + .space 16 + .space 16 + .space 16 + .byte 0x80, 0x01, 0x01, 0x00 + .byte 0x01, 0x3f, 0x20, 0x01 + .long 0x00000020 + .long 0x00000fe0 + + .org 510 + .byte 0x55, 0xaa + +/* Skip to start of partition */ + .org 32 * 512