diff options
Diffstat (limited to 'src/devices/pci_rom.c')
-rw-r--r-- | src/devices/pci_rom.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/devices/pci_rom.c b/src/devices/pci_rom.c index cbeaf85743..a2e3166802 100644 --- a/src/devices/pci_rom.c +++ b/src/devices/pci_rom.c @@ -4,16 +4,23 @@ #include <device/pci_ids.h> #include <device/pci_ops.h> +#include "../drivers/pci/onboard/chip.h" + struct rom_header * pci_rom_probe(struct device *dev) { unsigned long rom_address; struct rom_header *rom_header; struct pci_data *rom_data; + if (dev->on_mainboard && (dev->rom_address != 0) ) { + rom_address = dev->rom_address; + } + else { + rom_address = pci_read_config32(dev, PCI_ROM_ADDRESS); + } + rom_address = pci_read_config32(dev, PCI_ROM_ADDRESS); if (rom_address == 0x00000000 || rom_address == 0xffffffff) { - /* FixME: search in the LinuxBIOS Image for integrated - * devices? */ return NULL; } |