From 636228a887c4d5c0dc313bbf936de969b420a91a Mon Sep 17 00:00:00 2001 From: "Michael S. Tsirkin" Date: Sun, 1 Sep 2013 13:26:03 +0300 Subject: q35: make pci window address/size match guest cfg For Q35, MMCFG address and size are guest configurable. Update w32 property to make it behave accordingly. Signed-off-by: Michael S. Tsirkin --- hw/pci-host/q35.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'hw/pci-host') diff --git a/hw/pci-host/q35.c b/hw/pci-host/q35.c index 54735043b7..72f6b7213b 100644 --- a/hw/pci-host/q35.c +++ b/hw/pci-host/q35.c @@ -214,6 +214,16 @@ static void mch_update_pciexbar(MCHPCIState *mch) } addr = pciexbar & addr_mask; pcie_host_mmcfg_update(pehb, enable, addr, length); + /* Leave enough space for the MCFG BAR */ + /* + * TODO: this matches current bios behaviour, but it's not a power of two, + * which means an MTRR can't cover it exactly. + */ + if (enable) { + mch->pci_info.w32.begin = addr + length; + } else { + mch->pci_info.w32.begin = MCH_HOST_BRIDGE_PCIEXBAR_DEFAULT; + } } /* PAM */ -- cgit v1.2.1