aboutsummaryrefslogtreecommitdiffstats
path: root/mbr/isohdpfx.S
diff options
context:
space:
mode:
authorMatthew Garrett <mjg59@srcf.ucam.org>2011-08-11 19:58:09 +0100
committerH. Peter Anvin <hpa@linux.intel.com>2011-08-24 15:37:28 -0700
commit2c3a24e5f4b807ec31595227afa59a818c060ca9 (patch)
tree0fbb1ebb418113df093c66f7634a939232e62f21 /mbr/isohdpfx.S
parentc210e571f61eeb898fadbb6f47d4a2c82e5bfbfd (diff)
downloadsyslinux-2c3a24e5f4b807ec31595227afa59a818c060ca9.tar.gz
syslinux-2c3a24e5f4b807ec31595227afa59a818c060ca9.tar.xz
syslinux-2c3a24e5f4b807ec31595227afa59a818c060ca9.zip
isohybrid: Generate GPT and Mac bootable images
EFI systems typically don't support booting off ISO 9660 filesystems, even if written to USB sticks. This patch adds support for generating a GPT that covers the stick as well, with an additional partition entry pointing purely at the secondary El Torito image. When burned to CD the secondary El Torito will be used as an EFI boot image, and when written to a USB stick the GPT partition will be found and may be booted from. However, some earlier EFI Macs don't support booting from El Torito images via EFI. To cater for them this also supports generating an Apple partition table, allowing a third El Torito image in HFS+ format to be made available to the firmware. This requires padding the MBR images slightly in order to leave space for the Apple header, but should have no functional impact. Sadly, this breaks the workaround for Acer BIOSes (magic xor instruction) when Mac support is enabled via -m... not much that can be done about that. Signed-off-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'mbr/isohdpfx.S')
-rw-r--r--mbr/isohdpfx.S31
1 files changed, 31 insertions, 0 deletions
diff --git a/mbr/isohdpfx.S b/mbr/isohdpfx.S
index 2784fb80..17e1efe1 100644
--- a/mbr/isohdpfx.S
+++ b/mbr/isohdpfx.S
@@ -66,6 +66,37 @@ bootsec:
.globl _start
_start:
.byte 0x33, 0xed /* xorw %bp, %bp */
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ .byte 0x33, 0xed /* xorw %bp, %bp */
cli
movw %bp, %ss
movw $stack, %sp