summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/devices/pci_rom.c24
-rw-r--r--src/mainboard/emulation/qemu-x86/Options.lb2
-rw-r--r--targets/emulation/qemu-x86/Config.lb4
3 files changed, 19 insertions, 11 deletions
diff --git a/src/devices/pci_rom.c b/src/devices/pci_rom.c
index 702f010eb5..9eaea84115 100644
--- a/src/devices/pci_rom.c
+++ b/src/devices/pci_rom.c
@@ -31,32 +31,40 @@
struct rom_header * pci_rom_probe(struct device *dev)
{
- unsigned long rom_address;
+ unsigned long rom_address = 0;
struct rom_header *rom_header;
struct pci_data *rom_data;
if (CONFIG_ROMFS) {
- rom_address = (unsigned long) romfs_load_optionrom(dev->vendor, dev->device, NULL);
+ void *v;
/* 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) {
+ v = romfs_load_optionrom(dev->vendor, dev->device, NULL);
+ printk_debug("In cbfs, rom address for %s = %lx\n",
+ dev_path(dev), rom_address);
+ if (v) {
+ dev->rom_address = v;
+ dev->on_mainboard = 1;
+ }
+ }
+
+ 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;
+ printk_debug("On mainboard, rom address for %s = %lx\n",
+ dev_path(dev), rom_address);
} else {
rom_address = pci_read_config32(dev, PCI_ROM_ADDRESS);
+ printk_debug("On card, rom address for %s = %lx\n",
+ dev_path(dev), rom_address);
}
if (rom_address == 0x00000000 || rom_address == 0xffffffff) {
return NULL;
}
- printk_debug("rom address for %s = %lx\n", dev_path(dev), rom_address);
-
if(!dev->on_mainboard) {
/* enable expansion ROM address decoding */
pci_write_config32(dev, PCI_ROM_ADDRESS,
diff --git a/src/mainboard/emulation/qemu-x86/Options.lb b/src/mainboard/emulation/qemu-x86/Options.lb
index b45f97be9c..a6e09ba1f3 100644
--- a/src/mainboard/emulation/qemu-x86/Options.lb
+++ b/src/mainboard/emulation/qemu-x86/Options.lb
@@ -49,7 +49,7 @@ uses CONFIG_ROMFS
default CONFIG_CONSOLE_SERIAL8250=1
default DEFAULT_CONSOLE_LOGLEVEL=8
default MAXIMUM_CONSOLE_LOGLEVEL=8
-default CONFIG_ROMFS=0
+default CONFIG_ROMFS=1
## ROM_SIZE is the size of boot ROM that this board will use.
default ROM_SIZE = 256*1024
diff --git a/targets/emulation/qemu-x86/Config.lb b/targets/emulation/qemu-x86/Config.lb
index 7bdfda5ad4..308371305f 100644
--- a/targets/emulation/qemu-x86/Config.lb
+++ b/targets/emulation/qemu-x86/Config.lb
@@ -10,12 +10,12 @@ option CC="gcc -m32"
option HAVE_PIRQ_TABLE=1
option IRQ_SLOT_COUNT=6
-romimage "image"
+romimage "normal"
option ROM_IMAGE_SIZE=0x10000
option COREBOOT_EXTRA_VERSION="-GRUB2"
# payload /home/stepan/core.img
payload ../payload.elf
end
-buildrom ./coreboot.rom ROM_SIZE "image"
+buildrom ./coreboot.rom ROM_SIZE "normal"