diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2010-11-19 13:28:45 +0200 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2010-11-22 10:00:06 +0200 |
commit | bba5ed772a562fefdb218df8d821c3b537ce5759 (patch) | |
tree | 56f87300e53e57a4544317b26e739345eb4776d1 | |
parent | f6bdfcc9352e53fac5b9a144fc9ead991163484b (diff) | |
download | qemu-bba5ed772a562fefdb218df8d821c3b537ce5759.zip qemu-bba5ed772a562fefdb218df8d821c3b537ce5759.tar.gz qemu-bba5ed772a562fefdb218df8d821c3b537ce5759.tar.bz2 |
pcie/port: fix bridge control register wmask
pci generic layer initialized wmask for bridge control register
according to pci spec. pcie deviates slightly from it,
so initialize it properly.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | hw/pcie_port.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/hw/pcie_port.c b/hw/pcie_port.c index 117de61..340dcdb 100644 --- a/hw/pcie_port.c +++ b/hw/pcie_port.c @@ -27,6 +27,14 @@ void pcie_port_init_reg(PCIDevice *d) pci_set_word(d->config + PCI_STATUS, 0); pci_set_word(d->config + PCI_SEC_STATUS, 0); + /* Unlike conventional pci bridge, some bits are hardwared to 0. */ + pci_set_word(d->wmask + PCI_BRIDGE_CONTROL, + PCI_BRIDGE_CTL_PARITY | + PCI_BRIDGE_CTL_ISA | + PCI_BRIDGE_CTL_VGA | + PCI_BRIDGE_CTL_SERR | + PCI_BRIDGE_CTL_BUS_RESET); + /* 7.5.3.5 Prefetchable Memory Base Limit * The Prefetchable Memory Base and Prefetchable Memory Limit registers * must indicate that 64-bit addresses are supported, as defined in |