• Will Deacon's avatar
    iommu/arm-smmu: Don't use VMIDs for stage-1 translations · 1463fe44
    Will Deacon authored
    Although permitted by the architecture, using VMIDs for stage-1
    translations causes a complete nightmare for hypervisors, who end up
    having to virtualise the VMID space across VMs, which may be using
    multiple VMIDs each.
    
    To make life easier for hypervisors (which might just decide not to
    support this VMID virtualisation), this patch reworks the stage-1
    context-bank TLB invalidation so that:
    
    	- Stage-1 mappings are marked non-global in the ptes
    	- Each Stage-1 context-bank is assigned an ASID in TTBR0
    	- VMID 0 is reserved for Stage-1 context-banks
    
    This allows the hypervisor to overwrite the Stage-1 VMID in the CBAR
    when trapping the write from the guest.
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarJoerg Roedel <joro@8bytes.org>
    1463fe44
arm-smmu.c 51.7 KB