[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v7 5/7] xen/arm: do not map PCI ECAM and MMIO space to Domain-0's p2m
Hi, Julien! On 08.12.21 19:20, Julien Grall wrote: > Hi Oleksandr, > > On 24/11/2021 07:59, Oleksandr Andrushchenko wrote: >> From: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> >> >> PCI host bridges are special devices in terms of implementing PCI >> passthrough. According to [1] the current implementation depends on >> Domain-0 to perform the initialization of the relevant PCI host >> bridge hardware and perform PCI device enumeration. In order to >> achieve that one of the required changes is to not map all the memory >> ranges in map_range_to_domain as we traverse the device tree on startup >> and perform some additional checks if the range needs to be mapped to >> Domain-0. >> >> The generic PCI host controller device tree binding says [2]: >> - ranges: As described in IEEE Std 1275-1994, but must provide >> at least a definition of non-prefetchable memory. One >> or both of prefetchable Memory and IO Space may also >> be provided. >> >> - reg : The Configuration Space base address and size, as accessed >> from the parent bus. The base address corresponds to >> the first bus in the "bus-range" property. If no >> "bus-range" is specified, this will be bus 0 (the default). >> >> From the above none of the memory ranges from the "ranges" property >> needs to be mapped to Domain-0 at startup as MMIO mapping is going to >> be handled dynamically by vPCI as we assign PCI devices, e.g. each >> device assigned to Domain-0/guest will have its MMIOs mapped/unmapped >> as needed by Xen. >> >> The "reg" property covers not only ECAM space, but may also have other >> then the configuration memory ranges described, for example [3]: >> - reg: Should contain rc_dbi, config registers location and length. >> - reg-names: Must include the following entries: >> "rc_dbi": controller configuration registers; >> "config": PCIe configuration space registers. >> >> This patch makes it possible to not map all the ranges from the >> "ranges" property and also ECAM from the "reg". All the rest from the >> "reg" property still needs to be mapped to Domain-0, so the PCI >> host bridge remains functional in Domain-0. This is done by first >> skipping the mappings while traversing the device tree as it is done for >> usual devices and then by calling a dedicated pci_host_bridge_mappings >> function which only maps MMIOs required by the host bridges leaving the >> regions, needed for vPCI traps, unmapped. >> >> [1] >> https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg00777.html >> [2] >> https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/host-generic-pci.txt >> [3] >> https://www.kernel.org/doc/Documentation/devicetree/bindings/pci/hisilicon-pcie.txt >> >> Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@xxxxxxxx> > > Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx> > > I haven't committed because it is not clear whether this patch depends on > earlier patches that are still under review. Can you advise? I will resend the whole series (leftovers), so no need to commit now Thank you, Oleksandr > > Cheers, >
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |