[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/6] pci: allow loading roms via fw_cfg.
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 5/6] pci: allow loading roms via fw_cfg. |
Date: |
Fri, 8 Jan 2010 15:25:41 +0100 |
This patch adds a pci bus property 'rombar' which specifies whenever
the pci rom should be loaded via pci rom bar (default) or via fw_cfg.
The later can be used for compatibility with older qemu versions where
no pci rom bar is present.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/pci.c | 15 +++++++++++++++
hw/pci.h | 1 +
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/hw/pci.c b/hw/pci.c
index 0814383..c584dba 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -65,6 +65,7 @@ static struct BusInfo pci_bus_info = {
.props = (Property[]) {
DEFINE_PROP_PCI_DEVFN("addr", PCIDevice, devfn, -1),
DEFINE_PROP_STRING("romfile", PCIDevice, romfile),
+ DEFINE_PROP_UINT32("rombar", PCIDevice, rom_bar, 1),
DEFINE_PROP_END_OF_LIST()
}
};
@@ -1477,6 +1478,20 @@ static int pci_add_option_rom(PCIDevice *pdev)
if (strlen(pdev->romfile) == 0)
return 0;
+ if (!pdev->rom_bar) {
+ /*
+ * Load rom via fw_cfg instead of creating a rom bar,
+ * for 0.11 compatibility.
+ */
+ int class = pci_get_word(pdev->config + PCI_CLASS_DEVICE);
+ if (class == 0x0300) {
+ rom_add_vga(pdev->romfile);
+ } else {
+ rom_add_option(pdev->romfile);
+ }
+ return 0;
+ }
+
path = qemu_find_file(QEMU_FILE_TYPE_BIOS, pdev->romfile);
if (path == NULL) {
path = qemu_strdup(pdev->romfile);
diff --git a/hw/pci.h b/hw/pci.h
index fd16460..5d8bf97 100644
--- a/hw/pci.h
+++ b/hw/pci.h
@@ -244,6 +244,7 @@ struct PCIDevice {
/* Location of option rom */
char *romfile;
ram_addr_t rom_offset;
+ uint32_t rom_bar;
};
PCIDevice *pci_register_device(PCIBus *bus, const char *name,
--
1.6.5.2
- [Qemu-devel] [PATCH 4/6] roms: rework rom loading via fw, (continued)
[Qemu-devel] [PATCH 3/6] fw_cfg: rom loader tweaks., Gerd Hoffmann, 2010/01/08
[Qemu-devel] [PATCH 6/6] pc: add rombar to compat properties for pc-0.10 and pc-0.11, Gerd Hoffmann, 2010/01/08
[Qemu-devel] [PATCH 5/6] pci: allow loading roms via fw_cfg.,
Gerd Hoffmann <=