[RFC PATCH v4 03/16] iommu/arm-smmu-v3: Add initial pSMMU realm viommu plumbing

Nicolin Chen nicolinc at nvidia.com
Tue Sep 1 10:18:33 PDT 2026


On Tue, Sep 01, 2026 at 10:13:11AM -0700, Nicolin Chen wrote:
> On Tue, Sep 01, 2026 at 11:34:45AM -0300, Jason Gunthorpe wrote:
> > On Tue, Sep 01, 2026 at 03:36:37PM +0530, Aneesh Kumar K.V wrote:
> > 
> > > @@ -463,14 +460,13 @@
> > >  	vsmmu->vmid = s2_parent->s2_cfg.vmid;
> > >  
> > >  	if (viommu->type == IOMMU_VIOMMU_TYPE_ARM_SMMUV3) {
> > > +		if (arm_smmu_is_realm_viommu(viommu))
> > > +			return arm_realm_smmu_v3_init(viommu, user_data);
> > > +
> > 
> > I think the realm vsmmu is going to require a different info struct
> > than the normal psmmu case, isn't it?
> > 
> > If so it needs its own enum value.
> > 
> > It would be nice to see a draft patch showing how the real vsmmu works
> > on top of the RMM spec for it. If we are using a viommu object then
> > non-vsmmu case should be identical just with an option in the info
> > struct to not create the vsmmu object.
> 
> Actually, the PSMMU-only viommu object in this series only adds a
> type with no viommu data structure.
> 
> I've drafted the vsmmu case on top of the series, so it would add
> a structure reusing the same IOMMU_VIOMMU_TYPE_ARM_SMMUV3 with a
> flag:

Oh. I replied too fast that I didn't notice this is under the
standard IOMMU_VIOMMU_TYPE_ARM_SMMUV3 used by non-secure vSTE.

That doesn't look correct for a no-vsmmu case..

Nicolin



More information about the linux-arm-kernel mailing list