On Tue, Aug 28, 2018 at 2:42 PM Sunil Kovvuri <sunil.kovvuri@xxxxxxxxx> wrote: > > On Tue, Aug 28, 2018 at 5:39 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > > > On Tue, Aug 28, 2018 at 12:58 PM <sunil.kovvuri@xxxxxxxxx> wrote: > > > > > > From: Geetha sowjanya <gakula@xxxxxxxxxxx> > > > > > > HW interprets RVU_AF_MSIXTR_BASE address as an IOVA, hence > > > create a IOMMU mapping for the physcial address configured by > > > firmware and reconfig RVU_AF_MSIXTR_BASE with IOVA. > > > > > > Signed-off-by: Geetha sowjanya <gakula@xxxxxxxxxxx> > > > Signed-off-by: Sunil Goutham <sgoutham@xxxxxxxxxxx> > > > > I think this needs some more explanation. What is the difference between > > the MSI-X support in this driver and every other one? Are you working > > around a hardware bug, or is there something odd in the implementation > > of your irqchip driver? Do you use a GIC to handle the MSI interrupts > > or something else? > > This admin function is a PCI device which is capable of provisioning > HW blocks to other PCIe SRIOV devices in the system. Each HW block > (eg memory buffer pools, NIC dewscriptors, crypto engines e.t.c) needs > certain no of MSIX vectors. Admin function has a set of 32K MSIX vectors > in memory (not on-chip) which based on HW block provisioning to a PCI device > attaches the required number of vectors to that device. Some part of this > configuration is done by low level firmware. > > RVU_AF_MSIXTR_BASE points to the memory region allocated for 32K MSIX > vectors. If kernel is booted with IOMMU enabled and admin function device > is attached to SMMU, HW will go through translation to access this MSIX > vector memory region. Hence the mapping done in this patch. Do you mean this is not a regular PCIe MSI-X interrupt to the GIC, but something internal to your device that gets routed through the IOMMU back into the device? I'm still confused. Arnd