/kernel/linux/linux-5.10/include/linux/ |
D | io-pgtable.h | 41 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule, 43 void (*tlb_flush_leaf)(unsigned long iova, size_t size, size_t granule, 46 unsigned long iova, size_t granule, void *cookie); 218 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument 220 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk() 225 size_t size, size_t granule) in io_pgtable_tlb_flush_leaf() argument 227 iop->cfg.tlb->tlb_flush_leaf(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_leaf() 233 size_t granule) in io_pgtable_tlb_add_page() argument 236 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
|
D | iova.h | 73 unsigned long granule; /* pfn granularity for this domain */ member 107 return __ffs(iovad->granule); in iova_shift() 112 return iovad->granule - 1; in iova_mask() 122 return ALIGN(size, iovad->granule); in iova_align() 156 void init_iova_domain(struct iova_domain *iovad, unsigned long granule, 234 unsigned long granule, in init_iova_domain() argument
|
/kernel/linux/linux-5.10/drivers/iommu/arm/arm-smmu/ |
D | qcom_iommu.c | 160 size_t granule, bool leaf, void *cookie) in qcom_iommu_tlb_inv_range_nosync() argument 176 iova += granule; in qcom_iommu_tlb_inv_range_nosync() 177 } while (s -= granule); in qcom_iommu_tlb_inv_range_nosync() 182 size_t granule, void *cookie) in qcom_iommu_tlb_flush_walk() argument 184 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, false, cookie); in qcom_iommu_tlb_flush_walk() 189 size_t granule, void *cookie) in qcom_iommu_tlb_flush_leaf() argument 191 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, true, cookie); in qcom_iommu_tlb_flush_leaf() 196 unsigned long iova, size_t granule, in qcom_iommu_tlb_add_page() argument 199 qcom_iommu_tlb_inv_range_nosync(iova, granule, granule, true, cookie); in qcom_iommu_tlb_add_page()
|
D | arm-smmu.c | 281 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s1() argument 296 iova += granule; in arm_smmu_tlb_inv_range_s1() 297 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 303 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1() 304 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 309 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s2() argument 324 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2() 325 } while (size -= granule); in arm_smmu_tlb_inv_range_s2() 329 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk_s1() argument 331 arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie, in arm_smmu_tlb_inv_walk_s1() [all …]
|
/kernel/linux/linux-5.10/drivers/iommu/ |
D | msm_iommu.c | 140 size_t granule, bool leaf, void *cookie) in __flush_iotlb_range() argument 160 iova += granule; in __flush_iotlb_range() 161 } while (temp_size -= granule); in __flush_iotlb_range() 172 size_t granule, void *cookie) in __flush_iotlb_walk() argument 174 __flush_iotlb_range(iova, size, granule, false, cookie); in __flush_iotlb_walk() 178 size_t granule, void *cookie) in __flush_iotlb_leaf() argument 180 __flush_iotlb_range(iova, size, granule, true, cookie); in __flush_iotlb_leaf() 184 unsigned long iova, size_t granule, void *cookie) in __flush_iotlb_page() argument 186 __flush_iotlb_range(iova, granule, granule, true, cookie); in __flush_iotlb_page()
|
D | io-pgtable-arm.c | 680 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() local 691 granule = PAGE_SIZE; in arm_lpae_restrict_pgsizes() 693 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes() 695 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes() 697 granule = 0; in arm_lpae_restrict_pgsizes() 699 switch (granule) { in arm_lpae_restrict_pgsizes() 1076 size_t granule, void *cookie) in dummy_tlb_flush() argument 1083 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument 1086 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
D | iova.c | 30 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument 38 BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule)); in init_iova_domain() 44 iovad->granule = granule; in init_iova_domain()
|
D | io-pgtable-arm-v7s.c | 857 size_t granule, void *cookie) in dummy_tlb_flush() argument 864 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument 867 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
D | mtk_iommu.c | 198 size_t granule, void *cookie) in mtk_iommu_tlb_flush_range_sync() argument 231 unsigned long iova, size_t granule, in mtk_iommu_tlb_flush_page_nosync() argument 237 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in mtk_iommu_tlb_flush_page_nosync()
|
D | dma-iommu.c | 55 return cookie->iovad.granule; in cookie_msi_granule() 138 if (cookie->type == IOMMU_DMA_IOVA_COOKIE && cookie->iovad.granule) in iommu_put_dma_cookie() 188 start += iovad->granule; in cookie_init_hw_msi_region() 334 if (1UL << order != iovad->granule || in iommu_dma_init_domain()
|
D | ipmmu-vmsa.c | 320 size_t granule, void *cookie) in ipmmu_tlb_flush() argument
|
/kernel/linux/linux-5.10/arch/arm64/kvm/hyp/ |
D | pgtable.c | 69 u64 granule = kvm_granule_size(level); in kvm_block_mapping_supported() local 78 if (granule > (end - addr)) in kvm_block_mapping_supported() 81 return IS_ALIGNED(addr, granule) && IS_ALIGNED(phys, granule); in kvm_block_mapping_supported() 345 u64 granule = kvm_granule_size(level), phys = data->phys; in hyp_map_walker_try_leaf() local 351 data->phys += granule; in hyp_map_walker_try_leaf() 469 u64 granule = kvm_granule_size(level), phys = data->phys; in stage2_map_walker_try_leaf() local 491 data->phys += granule; in stage2_map_walker_try_leaf()
|
/kernel/linux/linux-5.10/Documentation/ia64/ |
D | aliasing.rst | 72 identity mapping only when the entire granule supports cacheable 75 Therefore, kern_memmap contains only full granule-sized regions that 162 If the EFI memory map reports that the entire granule supports 166 If the granule contains non-WB memory, but we can cover the 200 which uses a granule-sized UC mapping. This granule will cover some 236 at 0xA0000 prevents use of a WB granule. The UC mapping causes
|
/kernel/linux/linux-5.10/arch/ia64/ |
D | Kconfig.debug | 12 Select "16MB" for a small granule size. 13 Select "64MB" for a large granule size. This is the current default.
|
/kernel/linux/linux-5.10/drivers/gpu/drm/msm/ |
D | msm_iommu.c | 130 size_t granule, void *cookie) in msm_iommu_tlb_flush_walk() argument 135 unsigned long iova, size_t granule, void *cookie) in msm_iommu_tlb_add_page() argument
|
/kernel/linux/linux-5.10/Documentation/arm64/ |
D | memory-tagging-extension.rst | 19 allocation tag for each 16-byte granule in the physical address space. 154 4-bit tag per byte and correspond to a 16-byte MTE tag granule in the 157 **Note**: If ``addr`` is not aligned to a 16-byte granule, the kernel
|
/kernel/linux/linux-5.10/drivers/iommu/arm/arm-smmu-v3/ |
D | arm-smmu-v3.c | 1653 size_t granule, bool leaf, in arm_smmu_tlb_inv_range() argument 1658 size_t inv_range = granule; in arm_smmu_tlb_inv_range() 1685 cmd.tlbi.ttl = 4 - ((ilog2(granule) - 3) / (tg - 3)); in arm_smmu_tlb_inv_range() 1730 unsigned long iova, size_t granule, in arm_smmu_tlb_inv_page_nosync() argument 1736 iommu_iotlb_gather_add_page(domain, gather, iova, granule); in arm_smmu_tlb_inv_page_nosync() 1740 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk() argument 1742 arm_smmu_tlb_inv_range(iova, size, granule, false, cookie); in arm_smmu_tlb_inv_walk() 1746 size_t granule, void *cookie) in arm_smmu_tlb_inv_leaf() argument 1748 arm_smmu_tlb_inv_range(iova, size, granule, true, cookie); in arm_smmu_tlb_inv_leaf()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/panfrost/ |
D | panfrost_mmu.c | 338 static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_walk() argument 344 static void mmu_tlb_flush_leaf(unsigned long iova, size_t size, size_t granule, in mmu_tlb_flush_leaf() argument
|
/kernel/linux/linux-5.10/Documentation/admin-guide/mm/ |
D | nommu-mmap.rst | 118 granule but will only discard the excess if appropriately configured as
|
/kernel/linux/linux-5.10/arch/arm64/ |
D | Kconfig | 862 Page size (translation granule) configuration.
|
/kernel/linux/patches/linux-5.10/yangfan_patch/ |
D | drivers.patch | 16572 … -341,22 +347,62 @@ static void mmu_tlb_flush_walk(unsigned long iova, size_t size, size_t granule, 16576 -static void mmu_tlb_flush_leaf(unsigned long iova, size_t size, size_t granule,
|