As of rev 657, the VGA ROM in QEMU doesn't get run. Looking at the code that was changed in device/pci_rom.c it looks like the problem is that the VGA card is being treated like an onboard device, but the ROM is not in the LAR.
Here's a snippet of the output from a working version (current head but pci_rom.c at 656):
Phase 6: PCI: 00:02.0 init. PCI: pci_dev_init Probing for option ROM ROM address for PCI: 00:02.0 = c0000 PCI Expansion ROM, signature 0xaa55, INIT size 0x8c00, data ptr 0x010f PCI ROM Image, Vendor 1013, Device 00b8, PCI ROM Image, Class Code 030000, Code Type 00 Copying VGA ROM image from 0x000c0000 to 0xc0000, 0x8c00 bytes Phase 6: PCI: 00:03.0 init. PCI: pci_dev_init Probing for option ROM
Here's the same snippet from 665:
Phase 6: PCI: 00:02.0 init. PCI: pci_dev_init Probing for option ROM LAR: Attempting to open 'pci1013,00b8.rom'. LAR: Start 0xfffc0000 len 0x40000 LAR: seen member normal/option_table LAR: seen member normal/initram/segment0 LAR: seen member normal/stage2/segment0 LAR: seen member normal/stage2/segment1 LAR: seen member normal/stage2/segment2 LAR: seen member normal/payload/segment0 LAR: seen member normal/payload/segment1 LAR: seen member normal/payload/segment2 LAR: seen member zerofill LAR: seen member bootblock LAR: File not found! No option rom for onboard device. Phase 6: PCI: 00:03.0 init. PCI: pci_dev_init
Thanks, Myles
Myles Watson wrote:
As of rev 657, the VGA ROM in QEMU doesn't get run. Looking at the code that was changed in device/pci_rom.c it looks like the problem is that the VGA card is being treated like an onboard device, but the ROM is not in the LAR.
Oops. The Qemu VGA adapter was hardcoded to be an onboard device. Also, reading PCI_ROM_ADDRESS does not seem to give a useful value for that device, so we need to leave the dev->rom_address entry intact.
See patch.
-----Original Message----- From: Stefan Reinauer [mailto:stepan@coresystems.de] Sent: Thursday, April 24, 2008 2:31 PM To: Myles Watson Cc: Coreboot Subject: Re: [coreboot] Broken VGA ROM init in QEMU
Myles Watson wrote:
As of rev 657, the VGA ROM in QEMU doesn't get run. Looking at the code that was changed in device/pci_rom.c it looks like the problem is that the VGA card is being treated like an onboard device, but the ROM is not in the LAR.
Oops. The Qemu VGA adapter was hardcoded to be an onboard device. Also, reading PCI_ROM_ADDRESS does not seem to give a useful value for that device, so we need to leave the dev->rom_address entry intact.
See patch.
It works for me now. Thanks for the quick fix.
Myles
Acked-by: Myles Watson mylesgw@gmail.com
Myles Watson wrote:
It works for me now. Thanks for the quick fix.
Myles
Acked-by: Myles Watson mylesgw@gmail.com
Thanks, r666.