Home
last modified time | relevance | path

Searched refs:granule (Results 1 – 25 of 42) sorted by relevance

12

/openbmc/linux/tools/testing/selftests/dma/
H A Ddma_map_benchmark.c33 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 Diova.h33 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 Dio-pgtable.h43 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 Dmap_benchmark.h29 __u32 granule; /* how many PAGE_SIZE will do map/unmap once a time */ member
/openbmc/linux/drivers/iommu/arm/arm-smmu/
H A Dqcom_iommu.c158 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 Darm-smmu.c262 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 Dmsm_iommu.c139 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 Dio-pgtable-arm.c727 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 Diova.c52 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 Dvirtio-iommu.c389 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 Dio-pgtable-arm-v7s.c903 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 Dsmmu-common.c143 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 Dsmmuv3.c1150 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 Daliasing.rst72 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 DKconfig.debug12 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 Dpgtable.c87 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 Dmap_benchmark.c39 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 Demulation.rst72 - 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 Dmsm_iommu.c220 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 Dvirtio.json981 # @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 Dio_pgtable_v2.c341 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 Dio_pgtable.c31 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 Dvirtio-iommu.c1150 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 Dmemory-tagging-extension.rst19 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 Dsmmu-common.h80 uint8_t granule; member

12