[coreboot] fixing i810 onboard vga

ron minnich rminnich at gmail.com
Fri Nov 7 17:46:50 CET 2008


On Thu, Nov 6, 2008 at 7:27 PM, Elia Yehuda <z4ziggy at gmail.com> wrote:
>
> thanks for the suggestion - ive added
> #define PCI_DEVICE_ID_INTEL_82810E_IG   0x7125
>
> to src/include/device/pci_ids.h but still no luck :
>
> rom address for PCI: 00:01.0 = fffc0000
> PCI Expansion ROM, signature 0xaa55, INIT size 0xa000, data ptr 0x0110
> PCI ROM Image, Vendor 8086, Device 0000,
> Device or Vendor ID mismatch Vendor 8086, Device 0000 (Expected Vendor 8086,
> Device 7125)
>
> im guessing the device_id needs to be declated somewhere in the code or
> maybe in the Config.lb?
>

Defintely, that is the wrong answer :-)

All that is going on here is that the coreboot rom BIOS code is making
sure that the device id in the ROM matches the hardware. This is to
ensure that you don't run the wrong vga bios on the hardware. This is
part of the PCI spec. This is a pure runtime check.

Adding that define will have no effect, as you have seen.

The real problem: the ROM is wrong. This is not uncommon. Doubtless
the vendor created a broken rom (Even the QEMU VGA ROM is wrong) and
doubtless the vendor bios doesn't bother checking (this sloppiness is
not unsual in production BIOS code). Coreboot actually is more strict
and it is showing that there is an error
> PCI ROM Image, Vendor 8086, Device 0000,
 (who ever has a device id of zero?)

It is quite amazing how sloppy "production" bios code is. That's what
happens when you can hide behind closed source. Nobody gets hurt but
the customer.

The fix? Modify the BIOS image and put the device ID in the image.

Can someone put this
Device or Vendor ID mismatch Vendor 8086, Device 0000 (Expected Vendor 8086,
> Device 7125)

on the FAQ with a note about what it means?

thanks

ron




More information about the coreboot mailing list