mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 18:23:57 -06:00
pci: Add an API to get IOMMU's min page size and virtual address width
This kind of information is needed by devices implementing ATS in order to initialize their translation cache. Signed-off-by: Clement Mathieu--Drif <clement.mathieu--drif@eviden.com> Message-Id: <20250520071823.764266-8-clement.mathieu--drif@eviden.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
8ff9e1def0
commit
042cbc9aec
2 changed files with 43 additions and 0 deletions
17
hw/pci/pci.c
17
hw/pci/pci.c
|
@ -2970,6 +2970,23 @@ void pci_device_unset_iommu_device(PCIDevice *dev)
|
|||
}
|
||||
}
|
||||
|
||||
int pci_iommu_get_iotlb_info(PCIDevice *dev, uint8_t *addr_width,
|
||||
uint32_t *min_page_size)
|
||||
{
|
||||
PCIBus *bus;
|
||||
PCIBus *iommu_bus;
|
||||
int devfn;
|
||||
|
||||
pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn);
|
||||
if (iommu_bus && iommu_bus->iommu_ops->get_iotlb_info) {
|
||||
iommu_bus->iommu_ops->get_iotlb_info(iommu_bus->iommu_opaque,
|
||||
addr_width, min_page_size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
void pci_setup_iommu(PCIBus *bus, const PCIIOMMUOps *ops, void *opaque)
|
||||
{
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue