[syslinux] [BUG] boot failure since syslinux-3.00
Sean Young
sean at mess.org
Tue Jul 15 12:27:55 PDT 2008
On Tue, Jul 15, 2008 at 11:53:23AM -0700, H. Peter Anvin wrote:
> 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.
Ah, ok. Assumptions. :/
> > 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?
This is what it looks like in minicom now:
+------------------------------------------------------------------------------+
| System Bios Setup - Basic CMOS Configuration |
| (C) 2000 General Software, Inc. All rights reserved |
+---------------------------+--------------------+-----------------------------+
| DRIVE ASSIGNMENT ORDER: | Date:>Jul 15, 2008 | Typematic Delay : 250 ms |
| Drive A: 5x00 Flash A: | Time: 19 : 22 : 35 | Typematic Rate : 30 cps |
| Drive B: 5x00 Flash B: | NumLock: Disabled | Seek at Boot : None |
| Drive C: Ide 0/Pri Master +--------------------+ Show "Hit Del" : Enabled |
| Drive D: (None) | BOOT ORDER: | Config Box : Enabled |
| Drive E: (None) | Boot 1st: Drive C: | F1 Error Wait : Enabled |
| Drive F: (None) | Boot 2nd: Drive A: | Parity Checking : (Unused) |
| Drive G: (None) | Boot 3rd: Debugger | Memory Test Tick : Enabled |
| Drive H: (None) | Boot 4th: (None) | Test Above 1 MB : Disabled |
| Drive I: (None) | Boot 5th: (None) | Debug Breakpoints: Disabled |
| Drive J: (None) | Boot 6th: (None) | Splash Screen : (Unused) |
| Drive K: (None) +--------------------+-----------------+-----------+
| Boot Method: Boot Sector | IDE DRIVE GEOMETRY: Sect Hds Cyls | Memory |
+---------------------------+ Ide 0: 3 = AUTOCONFIG, LBA | Base: |
| FLOPPY DRIVE TYPES: | Ide 1: Not installed | 640KB |
| Floppy 0: Not installed | Ide 2: Not installed | Ext: |
| Floppy 1: Not installed | Ide 3: Not installed | 31MB |
+---------------------------+--------------------------------------+-----------+
| ^E/^X/<Tab> to select or +/- to modify |
| <Esc> to return to main menu |
The "Ide 0: 3 = AUTOCONFIG, LBA" option is the relevant one.
> 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.
-snip-
> Glad you were able to find a workaround. I would still report this as a
> bug to the manufacturer.
Ok, I will.
Thanks,
Sean
More information about the Syslinux
mailing list