On 11/07/12 10:04, Benjamin Herrenschmidt wrote: > On Wed, 2012-07-11 at 09:55 +1000, Alexey Kardashevskiy wrote: >> On 11/07/12 08:26, Scott Wood wrote: >>> On 07/10/2012 12:51 AM, Alexey Kardashevskiy wrote: >>>> The patch enables VFIO on POWER. >>>> >>>> It literally does the following: >>>> >>>> 1. POWERPC IOMMU support (the kernel counterpart is required) >>> [snip] >>>> +/* -------- API for POWERPC IOMMU -------- */ >>>> + >>>> +#define POWERPC_IOMMU 2 >>>> + >>>> +struct tce_iommu_info { >>>> + __u32 argsz; >>>> + __u32 dma32_window_start; >>>> + __u32 dma32_window_size; >>>> +}; >>>> + >>>> +#define POWERPC_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12) >>> >>> Is there a more specific name that could be used for this? Not all >>> PowerPC chips have the same kind of IOMMU. > >> >> Ben, is is SPAPR? BOOK3S? > > So we have varieties of different iommus in the kernel indeed, we > probably want the info ioctl to reflect that. I would call this one > spapr_tce.
VFIO provides such ioctl actually and it is it who returns POWERPC_IOMMU as an IOMMU type. ok. SPAPR_TCE. > Also we will want a few other things, dunno if that's reflected here, > or whether the ioctl is easily extendable, but in the long run we will > need: > > - Ways to tell KVM about association between a liobn (logical bus > number as used in H_PUT_TCE) and an iommu so we can implement the real > mode H_PUT_TCE properly. > > - We will need some conduit to implement the "DDW" APIs (part of PAPR > allowing the guest to control the DMA windows, ie, by creating new > windows in 64-bit DMA space, with different page sizes etc....). So you > may want to make it clear that the above provides information about the > "base window" specifically. So the current one would be SPAPR_TCE_32? -- Alexey