> > static int __init vfio_iommu_type1_init(void)
> > {
> > - if (!iommu_present(&pci_bus_type))
> > +#ifdef CONFIG_PCI
> > + if (iommu_present(&pci_bus_type)) {
> > + iommu_bus_type = &pci_bus_type;
> > + /* For PCI targets, IOMMU_CAP_INTR_REMAP is required */
> > + require_cap_intr_remap = true;
> > + }
> > +#endif
> > + if (!iommu_bus_type && iommu_present(&platform_bus_type))
> > + iommu_bus_type = &platform_bus_type;
> > +
> > + if(!iommu_bus_type)
> > return -ENODEV;
> >
> > return vfio_register_iommu_driver(&vfio_iommu_driver_ops_type1);
>
> Is it possible to have a system with both PCI and platform devices? How
> would you support that? Thanks,
It most certainly is a requirement to support both. This is how
all of our (FSL) SoCs will expect to work.
I need to understand better why 'iommu_bus_type' exists at
all...
Stuart