[syslinux] [BUG] boot failure since syslinux-3.00
H. Peter Anvin
hpa at zytor.com
Tue Jul 15 11:53:23 PDT 2008
Sean Young wrote:
>
> I've found the issue:
>
> When the syslinux bootsector calls extended read (int 13, ah=42), the sector
> number is given in absolute mode. According to Ralph Brown's list this is
> not correct for non-LBA devices.
>
Where do you get *that* reading from RBIL?
08h QWORD starting absolute block number
(for non-LBA devices, compute as
(Cylinder*NumHeads + SelectedHead) * SectorPerTrack +
SelectedSector - 1
The formula used is nothing other than the standard CHS to LBA
conversion algorithm.
EDD block numbers are *always* absolute (LBA); CHS conversion is thus
internal to the BIOS.
> In the BIOS settings I found a option for turning LBA on, which apparently
> is not the default for this BIOS. After this everything works fine!
I looked for such an option but didn't find one. Which specific option
did you use?
Either which way, it sounds like their EDD implementation is broken when
talking to a non-LBA device, and then they default to non-LBA mode even
on LBA-capable devices.
There is, of course, no benefit to running anything but very old devices
in non-LBA mode; even devices like CompactFlash which often don't
implement DMA correctly support LBA, so switching to using LBA mode on
the device is definitely the right thing to do.
> Thanks for helping out.
Glad you were able to find a workaround. I would still report this as a
bug to the manufacturer.
-hpa
More information about the Syslinux
mailing list