diff options
author | Matt Fleming <matt.fleming@intel.com> | 2012-12-07 11:33:45 +0000 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2012-12-07 11:33:45 +0000 |
commit | 10f6cf6eef0a7da7dad1933efdbfb101155792d0 (patch) | |
tree | d8ee3bfc6e55e739e0f135cd6d945955c670dd46 /mbr | |
parent | 35928ee37da523e5f992cc462a4a4193d0bfaa4c (diff) | |
parent | ddb10ce99c327888ade4d2ba3e4c50ad12aaa059 (diff) | |
download | syslinux-10f6cf6eef0a7da7dad1933efdbfb101155792d0.tar.gz |
Merge tag 'syslinux-5.00' into firmwaresyslinux-6.00-pre3
Conflicts:
Makefile
com32/elflink/ldlinux/Makefile
com32/lib/sys/module/elf_module.c
core/cleanup.c
core/comboot.inc
core/conio.c
core/fs/fs.c
core/init.c
core/mem/free.c
core/mem/malloc.c
core/timer.inc
diag/geodsp/Makefile
extlinux/main.c
mk/embedded.mk
modules/Makefile
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'mbr')
-rw-r--r-- | mbr/mbr.S | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -265,6 +265,19 @@ boot: movl %eax, 8(%si) /* Adjust in-memory partition table entry */ call read_sector jc disk_error + + /* Check if the read sector is a XFS superblock */ + cmpl $0x42534658, (bootsec) /* "XFSB" */ + jne no_xfs + + /* We put the Syslinux boot sector at offset 0x800 (4 sectors), so we + * need to adjust %eax (%eax + 4) to read the right sector into 0x7C00. + */ + addl $0x800 >> 0x09, %eax /* plus 4 sectors */ + call read_sector + jc disk_error + +no_xfs: cmpw $0xaa55, (bootsec+510) jne missing_os /* Not a valid boot sector */ movw $driveno, %sp /* driveno == bootsec-6 */ |