iPXE - Open Source Boot Firmware

[int13] Guard against BIOSes that "fix" the drive count
authorMichael Brown <mcb30@etherboot.org>
Wed, 18 Nov 2009 02:37:15 +0000 (02:37 +0000)
committerMichael Brown <mcb30@etherboot.org>
Wed, 18 Nov 2009 02:44:49 +0000 (02:44 +0000)
commitb515977955303666fc4a3afd0ffeb2eefb65600e
treecf84ff5930ec13c40911e97d2e3249dd9b9f56f1
parent89de3e29e199078683134ef00aceb682adc83087
[int13] Guard against BIOSes that "fix" the drive count

Some BIOSes (observed with an AMI BIOS on a SunFire X2200) seem to
reset the BIOS drive counter at 40:75 after a failed boot attempt.
This causes problems when attempting a Windows direct-to-iSCSI
installation: bootmgr.exe calls INT 13,0800 and gets told that there
are no hard disks, so never bothers to read the MBR in order to obtain
the boot disk signature.  The Windows iSCSI initiator will detect the
iBFT and connect to the target, and everything will appear to work
except for the error message "This computer's hardware may not support
booting to this disk.  Ensure that the disk's controller is enabled in
the computer's BIOS menu."

Fix by checking the BIOS drive counter on every INT 13 call, and
updating it whenever necessary.
src/arch/i386/interface/pcbios/int13.c