TEST: Booted ASUS KFSN4-DRE with iPXE ROMs built in to CBFS; with this option set the on-board network ROMs were ignored while the iPXE ROMs executed normally.
Signed-off-by: Timothy Pearson tpearson@raptorengineeringinc.com --- src/Kconfig | 11 +++++++++++ src/optionroms.c | 3 +++ 2 files changed, 14 insertions(+)
diff --git a/src/Kconfig b/src/Kconfig index 45ca59c..9cac231 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -355,6 +355,17 @@ menu "BIOS interfaces" default y help Support finding and running option roms during POST. + config CBFS_OPTIONROMS_ONLY + depends on OPTIONROMS && COREBOOT_FLASH + bool "Only execute option ROMs stored in CBFS" + default "n" + help + Only execute option ROMs that are stored in CBFS. + Do not scan PCI bus for option ROMs. This is useful + if one or more of your PCI devices crash/hang SeaBIOS + when executing their option ROMs, but you need to use + one or more option ROMs (such as SeaVGABIOS) that were + loaded into CBFS. config OPTIONROMS_DEPLOYED depends on OPTIONROMS && QEMU bool "Option roms are already at 0xc0000-0xf0000" diff --git a/src/optionroms.c b/src/optionroms.c index 93d9d2f..fbcb6ca 100644 --- a/src/optionroms.c +++ b/src/optionroms.c @@ -253,6 +253,9 @@ copy_rom(struct rom_header *rom) static struct rom_header * map_pcirom(struct pci_device *pci) { + if (CONFIG_CBFS_OPTIONROMS_ONLY) + return NULL; + u16 bdf = pci->bdf; dprintf(6, "Attempting to map option rom on dev %02x:%02x.%x\n" , pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf), pci_bdf_to_fn(bdf));