[coreboot-gerrit] Patch set updated for coreboot: allocator: Page align memory mapped PCI resources
Nico Huber (nico.h@gmx.de)
gerrit at coreboot.org
Wed Oct 21 17:41:37 CEST 2015
Nico Huber (nico.h at gmx.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12111
-gerrit
commit 0dcc41a9bc577d7f5d2307266251698dd573a6a1
Author: Nico Huber <nico.huber at secunet.com>
Date: Wed Oct 21 15:43:41 2015 +0200
allocator: Page align memory mapped PCI resources
To help hypervisors to assign PCI devices individually to virtualization
guests, page align dynamically allocated MMIO resources.
Tested with kontron/ktqm77 which has dynamically configured onboard
devices on the root bus and secondary buses. Booted Linux and checked
the configuration with `lspci -v`. Got the configuration through Muen's
tools which are very picky about overlapping and alignment. Booted a
Muen based system that uses many onboard devices. GMA, xHCI and one NIC
(on a secondary bus) were verified to function properly.
Change-Id: I2b7115070e1ccad64565feff025289732c3b5e66
Signed-off-by: Nico Huber <nico.huber at secunet.com>
---
src/device/pci_device.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index f2e4d5d..6bd18c8 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -211,6 +211,13 @@ struct resource *pci_get_resource(struct device *dev, unsigned long index)
resource->gran += 1;
}
resource->limit = limit = moving | (resource->size - 1);
+
+ if ((attr & PCI_BASE_ADDRESS_SPACE) ==
+ PCI_BASE_ADDRESS_SPACE_MEMORY &&
+ resource->align < 12)
+ /* At least page align to allow
+ individual mapping of devices. */
+ resource->align = 12;
}
/*
More information about the coreboot-gerrit
mailing list