[coreboot] [v2] r4077 - trunk/coreboot-v2/src/devices

svn at coreboot.org svn at coreboot.org
Mon Apr 6 18:03:54 CEST 2009


Author: stepan
Date: 2009-04-06 18:03:53 +0200 (Mon, 06 Apr 2009)
New Revision: 4077

Modified:
   trunk/coreboot-v2/src/devices/pci_rom.c
Log:
Add support for romfs to option rom loading. 

Pretty simple: Find the rom in the romfs, if found, set dev properties so 
that the rest of the code works.

At some point, we can remove some of the other code, i.e. the first else, 
and stop requiring people to do math.

Signed-off-by: Ronald G. Minnich <rminnich at gmail.com>
Acked-by: Stefan Reinauer <stepan at coresystems.de>



Modified: trunk/coreboot-v2/src/devices/pci_rom.c
===================================================================
--- trunk/coreboot-v2/src/devices/pci_rom.c	2009-04-06 14:00:53 UTC (rev 4076)
+++ trunk/coreboot-v2/src/devices/pci_rom.c	2009-04-06 16:03:53 UTC (rev 4077)
@@ -27,6 +27,7 @@
 #include <device/pci_ids.h>
 #include <device/pci_ops.h>
 #include <string.h>
+#include <romfs.h>
 
 struct rom_header * pci_rom_probe(struct device *dev)
 {
@@ -34,7 +35,16 @@
 	struct rom_header *rom_header;
 	struct pci_data *rom_data;
 
-        if (dev->on_mainboard) {
+	if (CONFIG_ROMFS) {
+		rom_address = (unsigned long) romfs_load_optionrom(dev->vendor, dev->device, NULL);
+		/* if it's in FLASH, then it's as if dev->on_mainboard was true */
+		dev->on_mainboard = 1;
+		/* and we might as well set the address correctly */
+		dev->rom_address = rom_address;
+	} else if (dev->on_mainboard) {
+		/* this is here as a legacy path. We hope it goes away soon. Users should not have to 
+		 * compute the ROM address at build time!
+		 */
                 // in case some device PCI_ROM_ADDRESS can not be set or readonly 
 		rom_address = dev->rom_address;
         } else {





More information about the coreboot mailing list