SeaBIOS doesn't seem to call non-PNP legacy option roms and handles them like BCV. I think this behaviour is incorrect because non-PNP legacy option roms should get called without exceptions.
Sebastian
On Tue, May 03, 2011 at 11:38:45PM +0200, Sebastian Herbszt wrote:
SeaBIOS doesn't seem to call non-PNP legacy option roms and handles them like BCV. I think this behaviour is incorrect because non-PNP legacy option roms should get called without exceptions.
SeaBIOS calls all non-PNP option roms unconditionally. It places them in the "BootList" so that it can order their invocation relative to PNP option roms. This is the recommendation of the BBS spec - the idea is that many legacy option roms hook the C: drive - so ordering their invocation allows a PNP drive to hook the C: drive first.
-Kevin
Kevin O'Connor wrote:
On Tue, May 03, 2011 at 11:38:45PM +0200, Sebastian Herbszt wrote:
SeaBIOS doesn't seem to call non-PNP legacy option roms and handles them like BCV. I think this behaviour is incorrect because non-PNP legacy option roms should get called without exceptions.
SeaBIOS calls all non-PNP option roms unconditionally. It places them in the "BootList" so that it can order their invocation relative to PNP option roms. This is the recommendation of the BBS spec - the idea is that many legacy option roms hook the C: drive - so ordering their invocation allows a PNP drive to hook the C: drive first.
Got a pointer in the BBS spec?
I thought the order should be: - init PNP roms - init legacy roms - call BEV/BCV
Sebastian
On Thu, May 05, 2011 at 12:53:36AM +0200, Sebastian Herbszt wrote:
Kevin O'Connor wrote:
On Tue, May 03, 2011 at 11:38:45PM +0200, Sebastian Herbszt wrote:
SeaBIOS doesn't seem to call non-PNP legacy option roms and handles them like BCV. I think this behaviour is incorrect because non-PNP legacy option roms should get called without exceptions.
SeaBIOS calls all non-PNP option roms unconditionally. It places them in the "BootList" so that it can order their invocation relative to PNP option roms. This is the recommendation of the BBS spec - the idea is that many legacy option roms hook the C: drive - so ordering their invocation allows a PNP drive to hook the C: drive first.
Got a pointer in the BBS spec?
Section 5.2.3:
-------- 5.2.3 Legacy Cards with Option ROMs
The third type of entry in the BCV Table is all Legacy cards with option ROMs. A Legacy card will install its INT 13h drive support when the BIOS calls the Legacy card's initialization vector. No attempt is made to enumerate or control the installation order of individual devices, although nothing defined in this specification prevents this. --------
Sections 5.3 and 5.4 go into further detail.
-Kevin
Kevin O'Connor wrote:
On Thu, May 05, 2011 at 12:53:36AM +0200, Sebastian Herbszt wrote:
Kevin O'Connor wrote:
On Tue, May 03, 2011 at 11:38:45PM +0200, Sebastian Herbszt wrote:
SeaBIOS doesn't seem to call non-PNP legacy option roms and handles them like BCV. I think this behaviour is incorrect because non-PNP legacy option roms should get called without exceptions.
SeaBIOS calls all non-PNP option roms unconditionally. It places them in the "BootList" so that it can order their invocation relative to PNP option roms. This is the recommendation of the BBS spec - the idea is that many legacy option roms hook the C: drive - so ordering their invocation allows a PNP drive to hook the C: drive first.
Got a pointer in the BBS spec?
Section 5.2.3:
5.2.3 Legacy Cards with Option ROMs
The third type of entry in the BCV Table is all Legacy cards with option ROMs. A Legacy card will install its INT 13h drive support when the BIOS calls the Legacy card's initialization vector. No attempt is made to enumerate or control the installation order of individual devices, although nothing defined in this specification prevents this.
Sections 5.3 and 5.4 go into further detail.
Chapter 6 describes the POST sequence: - Initializing BAIDs, PnP Boot Devices - PnP Option ROM Initialization - INT 13h Device Controller Installation (BCV, Legacy ROM Scan, On-board ATA Support) - IPL processing
So by the time the boot menu is displayed all BCVs and legacy roms should have already been called. This doesn't seem to be currently true for legacy roms. PnP roms are called but legacy roms are not. They are only called if they are selected from the boot menu.
Sebastian
On Sun, May 08, 2011 at 07:50:12PM +0200, Sebastian Herbszt wrote:
Kevin O'Connor wrote:
On Thu, May 05, 2011 at 12:53:36AM +0200, Sebastian Herbszt wrote:
Got a pointer in the BBS spec?
Section 5.2.3:
Chapter 6 describes the POST sequence:
- Initializing BAIDs, PnP Boot Devices
- PnP Option ROM Initialization
- INT 13h Device Controller Installation (BCV, Legacy ROM Scan, On-board ATA Support)
- IPL processing
So by the time the boot menu is displayed all BCVs and legacy roms should have already been called.
SeaBIOS shows the boot in "6.3 Check IPL Priority and BCV Priority" which is between "6.2 PnP Option ROM Initialization" and "6.4 INT 13h Device Controller Installation".
We want the boot menu to be able to configure which drive becomes the C: drive, so the boot menu must be displayed prior to running the BCVs and Legacy Option ROMs.
This doesn't seem to be currently true for legacy roms. PnP roms are called but legacy roms are not. They are only called if they are selected from the boot menu.
All BCVs and legacy option roms are always called. The only thing the boot menu does is determine the order of their invocation. (See boot.c:boot_prep().) If you have a counter-example then it is a bug and must be fixed.
-Kevin
Kevin O'Connor wrote:
On Sun, May 08, 2011 at 07:50:12PM +0200, Sebastian Herbszt wrote:
Kevin O'Connor wrote:
On Thu, May 05, 2011 at 12:53:36AM +0200, Sebastian Herbszt wrote:
Got a pointer in the BBS spec?
Section 5.2.3:
Chapter 6 describes the POST sequence:
- Initializing BAIDs, PnP Boot Devices
- PnP Option ROM Initialization
- INT 13h Device Controller Installation (BCV, Legacy ROM Scan, On-board ATA Support)
- IPL processing
So by the time the boot menu is displayed all BCVs and legacy roms should have already been called.
SeaBIOS shows the boot in "6.3 Check IPL Priority and BCV Priority" which is between "6.2 PnP Option ROM Initialization" and "6.4 INT 13h Device Controller Installation".
So this is different between SeaBIOS and Bochs BIOS, which tries to display the IPL menu.
We want the boot menu to be able to configure which drive becomes the C: drive, so the boot menu must be displayed prior to running the BCVs and Legacy Option ROMs.
So this is more a BCV than IPL menu. Maybe the F12 message should be renamed?
This doesn't seem to be currently true for legacy roms. PnP roms are called but legacy roms are not. They are only called if they are selected from the boot menu.
All BCVs and legacy option roms are always called. The only thing the boot menu does is determine the order of their invocation. (See boot.c:boot_prep().) If you have a counter-example then it is a bug and must be fixed.
This is not intuitive because other BIOSes display a boot menu after all BCV and legacy roms were called.
Sebastian
On Sun, May 08, 2011 at 09:27:37PM +0200, Sebastian Herbszt wrote:
Kevin O'Connor wrote:
We want the boot menu to be able to configure which drive becomes the C: drive, so the boot menu must be displayed prior to running the BCVs and Legacy Option ROMs.
So this is more a BCV than IPL menu. Maybe the F12 message should be renamed?
The menu shows both BCVs and IPLs.
All BCVs and legacy option roms are always called. The only thing the boot menu does is determine the order of their invocation. (See boot.c:boot_prep().) If you have a counter-example then it is a bug and must be fixed.
This is not intuitive because other BIOSes display a boot menu after all BCV and legacy roms were called.
I've seen multiple machines with a boot menu that allows one to select a drive to boot from. It's not uncommon - plug in a USB drive, and the boot menu will allow you to boot from it.
-Kevin