much better, Because don't need to cast conf to drivers_pci_onboard_config, it is not safe in pci_rom.c or pci_device.c
Do it.
YH
How about we bring the device:rom_address back and in the
driver_pci_onboard::enable_dev(dev) { dev->rom_address = conf->rom_address; }
and in pci_get|set_resources() { if (dev->on_mainboard && dev->rom_address !=0) { /* do nothing */ else { allocate_rom_resource(); } }
and in pci_dev_init() { if (dev->on_mainboard && dev->rom_address !=0) { rom = dev->rom_address; else { rom = pci_rom_probe(); } }
Ollie
Also in get_pci_rom_resource begin Add
if(dev->on_mainboard) { struct drivers_pci_onboard_config *conf; conf = dev->chip_info; if(conf->rom_address!=0) { return; } }
In Pci_set_resource end Add
if(dev->on_mainboard) { struct drivers_pci_onboard_config *conf; conf = dev->chip_info; if(conf->rom_address!=0) { pci_write_config32(dev, PCI_ROM_ADDRESS,
conf->rom_address | 1);
} }
Then We can remove that in pci_rom.c
YH