diff options
author | Michael Brown <mcb30@ipxe.org> | 2020-03-01 12:56:28 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2020-03-01 12:59:03 +0000 |
commit | efc1ae5abac01a77c5816884612c9daf0c344e8a (patch) | |
tree | a38b09cfa7c04814eda80574ec648fc6299486df | |
parent | 49319f1bc9f34b15f061742a8d4f8d3acfdafd42 (diff) | |
download | ipxe-efc1ae5abac01a77c5816884612c9daf0c344e8a.zip ipxe-efc1ae5abac01a77c5816884612c9daf0c344e8a.tar.gz ipxe-efc1ae5abac01a77c5816884612c9daf0c344e8a.tar.bz2 |
[int13con] Create log partition only when CONSOLE_INT13 is enabled
Reduce the size of the USB disk image in the common case that
CONSOLE_INT13 is not enabled.
Originally-implemented-by: Romain Guyard <romain.guyard@mujin.co.jp>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/arch/x86/prefix/usbdisk.S | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/arch/x86/prefix/usbdisk.S b/src/arch/x86/prefix/usbdisk.S index 830f377..977de6d 100644 --- a/src/arch/x86/prefix/usbdisk.S +++ b/src/arch/x86/prefix/usbdisk.S @@ -1,5 +1,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ) +#include <config/console.h> + .text .arch i386 .section ".prefix", "awx", @progbits @@ -13,10 +15,17 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ) #define SECTORS 32 #define CYLADDR(cyl) ((((cyl) * HEADS + (((cyl) == 0) & 1)) * SECTORS) * 512) +#ifdef CONSOLE_INT13 +#define LOGPART 1 #define LOGSTART 0 #define LOGCOUNT 1 #define BOOTSTART 1 #define BOOTCOUNT 2 +#else /* CONSOLE_INT13 */ +#define LOGPART 0 +#define BOOTSTART 0 +#define BOOTCOUNT 2 +#endif /* CONSOLE_INT13 */ /* Construct a C/H/S address */ .macro chs cylinder, head, sector @@ -44,8 +53,14 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ) .org 446 .space 16 .space 16 + /* Partition 3: log partition (for CONSOLE_INT13) */ + .if LOGPART partition 0x00, 0xe0, LOGSTART, LOGCOUNT + .else + .space 16 + .endif + /* Partition 4: boot partition */ partition 0x80, 0xeb, BOOTSTART, BOOTCOUNT @@ -54,8 +69,10 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ) .byte 0x55, 0xaa /* Skip to start of log partition */ + .if LOGPART .org CYLADDR(LOGSTART) .ascii "iPXE LOG\n\n" + .endif /* Skip to start of boot partition */ .org CYLADDR(BOOTSTART) |