aboutsummaryrefslogtreecommitdiff
path: root/hw/pci.c
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-04-18 16:55:22 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-04-18 16:55:22 +0000
commitd7ce493a38680aeb9283129cf4f4ea576da62997 (patch)
tree3ebe49ec6a3d7248585420ea5d3c168f1d086d81 /hw/pci.c
parent6a8826434fb98d7bcf870d9f3e2e90a672bc9f03 (diff)
Initialize PCI BAR config data.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1824 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/pci.c')
-rw-r--r--hw/pci.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/hw/pci.c b/hw/pci.c
index fd4ccd9475..30342d44e6 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -124,6 +124,7 @@ void pci_register_io_region(PCIDevice *pci_dev, int region_num,
PCIMapIORegionFunc *map_func)
{
PCIIORegion *r;
+ uint32_t addr;
if ((unsigned int)region_num >= PCI_NUM_REGIONS)
return;
@@ -132,6 +133,12 @@ void pci_register_io_region(PCIDevice *pci_dev, int region_num,
r->size = size;
r->type = type;
r->map_func = map_func;
+ if (region_num == PCI_ROM_SLOT) {
+ addr = 0x30;
+ } else {
+ addr = 0x10 + region_num * 4;
+ }
+ *(uint32_t *)(pci_dev->config + addr) = cpu_to_le32(type);
}
static void pci_addr_writel(void* opaque, uint32_t addr, uint32_t val)