aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2020-03-01 12:56:28 +0000
committerMichael Brown <mcb30@ipxe.org>2020-03-01 12:59:03 +0000
commitefc1ae5abac01a77c5816884612c9daf0c344e8a (patch)
treea38b09cfa7c04814eda80574ec648fc6299486df
parent49319f1bc9f34b15f061742a8d4f8d3acfdafd42 (diff)
downloadipxe-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.S17
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)