Hi Joerg, On 14/11/2016 17:20, Joerg Roedel wrote: > On Mon, Nov 14, 2016 at 05:08:16PM +0100, Auger Eric wrote: >> There are potentially several MSI doorbell physical pages in the SOC >> that are accessed through the IOMMU (translated). Each of those must >> have a corresponding IOVA and IOVA/PA mapping programmed in the IOMMU. >> Else MSI will fault. >> >> - step 1 was to define a usable IOVA range for MSI mapping. So now we >> decided the base address and size would be hardcoded for ARM. The >> get_dm_region can be used to retrieve that hardcoded region. >> - Step2 is to allocate IOVAs within that range and map then for each of >> those MSI doorbells. This is done in the MSI controller compose() callback. >> >> I hope I succeeded in clarifying this time. >> >> Robin sent today a new version of its cookie think using a dummy >> allocator. I am currently integrating it. > > Okay, I understand. A simple bitmap-allocator would probably be > sufficient, and doesn't have the overhead the iova allocator has. About > how many pages are we talking here? Very few actually. In the systems I have access to I only have a single page. In most advanced systems we could imagine per-cpu doorbells but this does not exist yet as far as I know.
Thanks Eric > > > Joerg >