[SeaBIOS] [PATCH 1/2] Add an option to only execute option ROMs contained in CBFS

Timothy Pearson tpearson at raptorengineeringinc.com
Thu Feb 12 00:32:03 CET 2015


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 at 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));
-- 
1.7.9.5


-- 
Timothy Pearson
Raptor Engineering
+1 (415) 727-8645
http://www.raptorengineeringinc.com



More information about the SeaBIOS mailing list