On 22.01.2008 18:59, Myles Watson wrote:
Coreboot v3 refuses to initialize the VGA in QEMU because the PCI device ID's are mismatched.
It turns out that the header has been overwritten by a copyright string, so that v3 is following a bad pointer into the ROM looking for the PCI device IDs and not finding it. Coreboot v2 still successfully initializes the VGA because it skips the vendor check.
The question is if we should make the vendor check a warning instead of failing. I realize that the right thing to do is fix the ROM, but there may be other broken ROMs as well.
I'd say we refuse to execute the ROM in v3. If the ROM is broken, we have no way to determine how broken it is. Unconditional execution may prevent booting the machine, thereby forcing an out-of-system flash of coreboot with ROM execution disabled.
How many ROMs of real hardware are broken that way? If their number is close to zero, printing a scary warning message will be best. If there is a large number of such broken ROMs, we can make execution dependent on some NVRAM setting, which will refuse execution after NVRAM clear.
Do you know which versions of Qemu ship the broken ROM? Is there already a patch for it?
Regards, Carl-Daniel