[PATCH 0/3] make MSI IOVA base address and its length configurable
Jason Gunthorpe
jgg at ziepe.ca
Thu Apr 3 16:26:19 PDT 2025
On Thu, Apr 03, 2025 at 12:34:58PM -0700, Shyam Saini wrote:
> Hi Jason,
>
> > On Thu, Jan 30, 2025 at 03:21:37PM -0800, Shyam Saini wrote:
> >
> > > Unfortunately, it is an HW issue.
> >
> > Well, that's pretty bad to have built HW that can't DMA to low
> > addresses at all.. But OK.
> >
> > > Are you okay with this passing custom MSI_IOVA via DTS approach ?
> >
> > It isn't up to me, but I've understood the DT maintainers would reject
> > this as it isn't is describing HW but just a random Linux software
> > knob.
> >
>
> If i understood correctly MSI window IOVA is hw property, if yes
> then it should be accepted by DTS folks, did i misundertstand that?
It is not a HW property. The MSI window in the SMMU is entirely up to
software.
Yuor HW proprerty is the regions of IOVA that do not function in the
SMMU.
> > I think you should make selecting the sw_msi dynamic in Linux.
>
> My understanding is that if we have to make it dynamic, we have to
> use iova allocator that would need iova_domain as a member of struct
> arm_smmu_domain, and allocate iova for MSI window dynamically using
> alloc_iova() in arm_smmu_get_resv_regions() is that what you meant
> when you mentioned selecting the sw_msi dynamically?
I would not structure it like that..
The simplest thing would be to have the SMMU driver have a list of
potential addresses and select the first one that does not intersect
with the non-working IOVA ranges.
Jason
More information about the linux-arm-kernel
mailing list