Am 18.08.2009 10:30, schrieb Harrison, Jon (SELEX GALILEO, UK):
Hmmm. I guess that means that a CBFS build automagically installs the VGA bios and sets the PCI_ROM_ADDRESS reg in the correct device, and since this 'should' be relocatable I should simply remove my NB code that installs the VGA BIOS manually, and hope for the best.
Sounds like you reimplemented quite some things we have in coreboot already.
At what stage in the init process does the PCI expansion ROM get installed ? Is it necessary to call something from coreboot to make it happen ?
We have several ways to execute option ROMs, one using the realmode of the CPU (under the misleading name VM86) and two x86 emulators (x86emu and yabel). All of them also provide some BIOS services (interrupts) to make the option ROMs happy, but sometimes the VGABIOS requires some special calls that must be added to them.
Bochs as in Bochs BIOS, is needed to provide some callback support for the vendor VGA BIOS. It could be considered as an option rom.... sort of. It doesn't matter where it is in Flash so long as it can be found programatically from coreboot, as it needs to be located in a specific location in RAM for the legacy VGA to find it.
So the VGA option ROM calls into the BIOS directly, instead of using interrupts? That's quite unusual. And once the option ROM is executing using the coreboot mechanisms, there is some BIOS environment around for it.
Patrick