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