• Rob Herring's avatar
    iommu/arm-smmu-v3: Add SMMUv3.2 range invalidation support · 6a481a95
    Rob Herring authored
    Arm SMMUv3.2 adds support for TLB range invalidate operations.
    Support for range invalidate is determined by the RIL bit in the IDR3
    register.
    
    The range invalidate is in units of the leaf page size and operates on
    1-32 chunks of a power of 2 multiple pages. First, we determine from the
    size what power of 2 multiple we can use. Then we calculate how many
    chunks (1-31) of the power of 2 size for the range on the iteration. On
    each iteration, we move up in size by at least 5 bits.
    
    Cc: Jean-Philippe Brucker <jean-philippe@linaro.org>
    Cc: Will Deacon <will@kernel.org>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Cc: Joerg Roedel <joro@8bytes.org>
    Reviewed-by: default avatarEric Auger <eric.auger@redhat.com>
    Signed-off-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    6a481a95
arm-smmu-v3.c 109 KB