From efc1ae5abac01a77c5816884612c9daf0c344e8a Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sun, 1 Mar 2020 12:56:28 +0000 Subject: [PATCH] [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 Signed-off-by: Michael Brown --- src/arch/x86/prefix/usbdisk.S | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/arch/x86/prefix/usbdisk.S b/src/arch/x86/prefix/usbdisk.S index 830f3774c..977de6dd6 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 + .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)