/openbmc/linux/tools/testing/selftests/dma/ |
H A D | dma_map_benchmark.c | 33 int granule = 1; in main() local 59 granule = atoi(optarg); in main() 96 if (granule < 1 || granule > 1024) { in main() 114 map.granule = granule; in main() 122 threads, seconds, node, dir[directions], granule); in main()
|
/openbmc/linux/include/linux/ |
H A D | iova.h | 33 unsigned long granule; /* pfn granularity for this domain */ member 50 return __ffs(iovad->granule); in iova_shift() 55 return iovad->granule - 1; in iova_mask() 65 return ALIGN(size, iovad->granule); in iova_align() 95 void init_iova_domain(struct iova_domain *iovad, unsigned long granule, 148 unsigned long granule, in init_iova_domain() argument
|
H A D | io-pgtable.h | 43 void (*tlb_flush_walk)(unsigned long iova, size_t size, size_t granule, 46 unsigned long iova, size_t granule, void *cookie); 225 size_t size, size_t granule) in io_pgtable_tlb_flush_walk() argument 228 iop->cfg.tlb->tlb_flush_walk(iova, size, granule, iop->cookie); in io_pgtable_tlb_flush_walk() 234 size_t granule) in io_pgtable_tlb_add_page() argument 237 iop->cfg.tlb->tlb_add_page(gather, iova, granule, iop->cookie); in io_pgtable_tlb_add_page()
|
H A D | map_benchmark.h | 29 __u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */ member
|
/openbmc/linux/drivers/iommu/arm/arm-smmu/ |
H A D | qcom_iommu.c | 158 size_t granule, bool leaf, void *cookie) in qcom_iommu_tlb_inv_range_nosync() argument 174 iova += granule; in qcom_iommu_tlb_inv_range_nosync() 175 } while (s -= granule); in qcom_iommu_tlb_inv_range_nosync() 180 size_t granule, void *cookie) in qcom_iommu_tlb_flush_walk() argument 182 qcom_iommu_tlb_inv_range_nosync(iova, size, granule, false, cookie); in qcom_iommu_tlb_flush_walk() 187 unsigned long iova, size_t granule, in qcom_iommu_tlb_add_page() argument 190 qcom_iommu_tlb_inv_range_nosync(iova, granule, granule, true, cookie); in qcom_iommu_tlb_add_page()
|
H A D | arm-smmu.c | 262 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s1() argument 277 iova += granule; in arm_smmu_tlb_inv_range_s1() 278 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 284 iova += granule >> 12; in arm_smmu_tlb_inv_range_s1() 285 } while (size -= granule); in arm_smmu_tlb_inv_range_s1() 290 size_t granule, void *cookie, int reg) in arm_smmu_tlb_inv_range_s2() argument 305 iova += granule >> 12; in arm_smmu_tlb_inv_range_s2() 306 } while (size -= granule); in arm_smmu_tlb_inv_range_s2() 310 size_t granule, void *cookie) in arm_smmu_tlb_inv_walk_s1() argument 318 arm_smmu_tlb_inv_range_s1(iova, size, granule, cookie, in arm_smmu_tlb_inv_walk_s1() [all …]
|
/openbmc/linux/drivers/iommu/ |
H A D | msm_iommu.c | 139 size_t granule, bool leaf, void *cookie) in __flush_iotlb_range() argument 159 iova += granule; in __flush_iotlb_range() 160 } while (temp_size -= granule); in __flush_iotlb_range() 171 size_t granule, void *cookie) in __flush_iotlb_walk() argument 173 __flush_iotlb_range(iova, size, granule, false, cookie); in __flush_iotlb_walk() 177 unsigned long iova, size_t granule, void *cookie) in __flush_iotlb_page() argument 179 __flush_iotlb_range(iova, granule, granule, true, cookie); in __flush_iotlb_page()
|
H A D | io-pgtable-arm.c | 727 unsigned long granule, page_sizes; in arm_lpae_restrict_pgsizes() local 738 granule = PAGE_SIZE; in arm_lpae_restrict_pgsizes() 740 granule = 1UL << __fls(cfg->pgsize_bitmap & ~PAGE_MASK); in arm_lpae_restrict_pgsizes() 742 granule = 1UL << __ffs(cfg->pgsize_bitmap & PAGE_MASK); in arm_lpae_restrict_pgsizes() 744 granule = 0; in arm_lpae_restrict_pgsizes() 746 switch (granule) { in arm_lpae_restrict_pgsizes() 1128 size_t granule, void *cookie) in dummy_tlb_flush() argument 1135 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument 1138 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
H A D | iova.c | 52 init_iova_domain(struct iova_domain *iovad, unsigned long granule, in init_iova_domain() argument 60 BUG_ON((granule > PAGE_SIZE) || !is_power_of_2(granule)); in init_iova_domain() 66 iovad->granule = granule; in init_iova_domain()
|
H A D | virtio-iommu.c | 389 unsigned long granule = 1UL << __ffs(vdomain->domain.pgsize_bitmap); in viommu_domain_map_identity() local 391 iova = ALIGN(iova, granule); in viommu_domain_map_identity() 392 limit = ALIGN_DOWN(limit + 1, granule) - 1; in viommu_domain_map_identity() 395 u64 resv_start = ALIGN_DOWN(resv->start, granule); in viommu_domain_map_identity() 396 u64 resv_end = ALIGN(resv->start + resv->length, granule) - 1; in viommu_domain_map_identity()
|
H A D | io-pgtable-arm-v7s.c | 903 size_t granule, void *cookie) in dummy_tlb_flush() argument 910 unsigned long iova, size_t granule, in dummy_tlb_add_page() argument 913 dummy_tlb_flush(iova, granule, granule, cookie); in dummy_tlb_add_page()
|
/openbmc/qemu/hw/arm/ |
H A D | smmu-common.c | 143 uint8_t tg = (new->granule - 10) / 2; in smmu_iotlb_insert() 232 uint8_t granule = tg ? tg * 2 + 10 : 12; in smmu_iotlb_inv_iova() local 249 .mask = (num_pages * 1 << granule) - 1}; in smmu_iotlb_inv_iova() 263 uint8_t granule = tg ? tg * 2 + 10 : 12; in smmu_iotlb_inv_ipa() local 277 .mask = (num_pages << granule) - 1}; in smmu_iotlb_inv_ipa() 540 tlbe->granule = granule_sz; in smmu_ptw_64_s1() 662 tlbe->granule = granule_sz; in smmu_ptw_64_s2() 684 tlbe->granule = tlbe_s2->granule; in combine_tlb()
|
H A D | smmuv3.c | 1150 uint8_t granule; in smmuv3_notify_iova() local 1183 granule = tt->granule_sz; in smmuv3_notify_iova() 1185 granule = cfg->s2cfg.granule_sz; in smmuv3_notify_iova() 1189 granule = tg * 2 + 10; in smmuv3_notify_iova() 1195 event.entry.addr_mask = num_pages * (1 << granule) - 1; in smmuv3_notify_iova() 1232 uint8_t granule; in smmuv3_range_inval() local 1259 granule = tg * 2 + 10; in smmuv3_range_inval() 1262 end = addr + (num_pages << granule) - 1; in smmuv3_range_inval() 1267 num_pages = (mask + 1) >> granule; in smmuv3_range_inval()
|
/openbmc/linux/Documentation/arch/ia64/ |
H A 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
|
/openbmc/linux/arch/ia64/ |
H A D | Kconfig.debug | 12 Select "16MB" for a small granule size. 13 Select "64MB" for a large granule size. This is the current default.
|
/openbmc/linux/arch/arm64/kvm/hyp/ |
H A D | pgtable.c | 87 u64 granule = kvm_granule_size(ctx->level); in kvm_block_mapping_supported() local 92 if (granule > (ctx->end - ctx->addr)) in kvm_block_mapping_supported() 95 if (kvm_phys_is_valid(phys) && !IS_ALIGNED(phys, granule)) in kvm_block_mapping_supported() 98 return IS_ALIGNED(ctx->addr, granule); in kvm_block_mapping_supported() 511 u64 granule = kvm_granule_size(ctx->level); in hyp_unmap_walker() local 528 if (ctx->end - ctx->addr < granule) in hyp_unmap_walker() 534 *unmapped += granule; in hyp_unmap_walker() 923 u64 granule = kvm_granule_size(ctx->level); in stage2_map_walker_try_leaf() local 951 granule); in stage2_map_walker_try_leaf() 955 mm_ops->icache_inval_pou(kvm_pte_follow(new, mm_ops), granule); in stage2_map_walker_try_leaf()
|
/openbmc/linux/kernel/dma/ |
H A D | map_benchmark.c | 39 int npages = map->bparam.granule; in map_benchmark_thread() 236 if (map->bparam.granule < 1 || map->bparam.granule > 1024) { in map_benchmark_ioctl()
|
/openbmc/qemu/docs/system/arm/ |
H A D | emulation.rst | 72 - FEAT_GTG (Guest translation granule size) 143 - FEAT_TGran16K (Support for 16KB memory translation granule size at stage 1) 144 - FEAT_TGran4K (Support for 4KB memory translation granule size at stage 1) 145 - FEAT_TGran64K (Support for 64KB memory translation granule size at stage 1)
|
/openbmc/linux/drivers/gpu/drm/msm/ |
H A D | msm_iommu.c | 220 size_t granule, void *cookie) in msm_iommu_tlb_flush_walk() argument 230 pagetable->tlb->tlb_flush_walk(iova, size, granule, (void *)adreno_smmu->cookie); in msm_iommu_tlb_flush_walk() 236 unsigned long iova, size_t granule, void *cookie) in msm_iommu_tlb_add_page() argument
|
/openbmc/qemu/qapi/ |
H A D | virtio.json | 981 # @4k: granule page size of 4KiB 983 # @8k: granule page size of 8KiB 985 # @16k: granule page size of 16KiB 987 # @64k: granule page size of 64KiB 989 # @host: granule matches the host page size
|
/openbmc/linux/drivers/iommu/amd/ |
H A D | io_pgtable_v2.c | 341 size_t granule, void *cookie) in v2_tlb_flush_walk() argument 346 unsigned long iova, size_t granule, in v2_tlb_add_page() argument
|
H A D | io_pgtable.c | 31 size_t granule, void *cookie) in v1_tlb_flush_walk() argument 36 unsigned long iova, size_t granule, in v1_tlb_add_page() argument
|
/openbmc/qemu/hw/virtio/ |
H A D | virtio-iommu.c | 1150 int granule; in virtio_iommu_translate() local 1156 granule = ctz64(s->config.page_size_mask); in virtio_iommu_translate() 1162 .addr_mask = BIT_ULL(granule) - 1, in virtio_iommu_translate() 1403 int granule; in virtio_iommu_freeze_granule() local 1406 granule = ctz64(s->config.page_size_mask); in virtio_iommu_freeze_granule() 1407 trace_virtio_iommu_freeze_granule(BIT_ULL(granule)); in virtio_iommu_freeze_granule()
|
/openbmc/linux/Documentation/arch/arm64/ |
H A D | memory-tagging-extension.rst | 19 allocation tag for each 16-byte granule in the physical address space. 197 4-bit tag per byte and correspond to a 16-byte MTE tag granule in the 200 **Note**: If ``addr`` is not aligned to a 16-byte granule, the kernel 247 in a byte. With the tag granule of 16 bytes, a 4K page requires 128
|
/openbmc/qemu/include/hw/arm/ |
H A D | smmu-common.h | 80 uint8_t granule; member
|