On Mon, Sep 07, 2015 at 09:10:03PM +0200, Maxime de Roucy wrote:
Le lundi 07 septembre 2015 à 10:36 -0400, Kevin O'Connor a écrit :
I don't understand what Maxime is reporting (via the documentation patch), nor what Matt's patch above fixes. Could someone provide a description of the problem/feature?
Lets say you have one SATA drive and one USB drive connected to your board. The SATA drive is blank (no data on it). The USB drive contain a bootable operating system.
You configure the bootorder to : SATA USB PXE HALT
In this situation the user imagine SeaBIOS boot to USB as it will fail to boot from SATA… that's not the case.
This is a quirk of the BIOS/bootloader interface - bootloaders on "hard drives" are only able to boot from the C: drive (technically, the drive mapped to 0x80). SeaBIOS can only map one drive as C: per boot - so in the above example, if SeaBIOS maps the SATA drive as C: then only the SATA "hard drive" is bootable.
I don't see this as a huge issue though, because the user can simply reboot and select the USB drive from the boot menu.
SATA and USB are both treat as IPL_TYPE_HARDDISK and when SeaBIOS list the devices it only keep the highest priority device of each type.
SATA and USB are both present and SATA has a higher priority than USB. PXE is another type (I don't know which one).
So SeaBIOS only keep SATA and PXE. When it fail to boot from SATA as the drive is blank it fallback to PXE instead of USB as the user expected.
I understand what you mean now. Not sure the best way to document it.
The Matt patch (as I understand it) add an USB type. SeaBIOS will still only keep the highest priority device of each type but as SATA and USB belongs to different type they will be kept. SeaBIOS will boot from USB when it fail to boot from SATA.
Matt's patch doesn't implement that. The patch would just attempt to boot from C: twice - which would just cause back-to-back failures if the C: drive is not bootable.
-Kevin