/linux/drivers/iommu/ |
H A D | io-pgtable-arm.c | 921 typeof(&cfg->arm_lpae_s2_cfg.vtcr) vtcr = &cfg->arm_lpae_s2_cfg.vtcr; in arm_64_lpae_alloc_pgtable_s2() 947 vtcr->sh = ARM_LPAE_TCR_SH_IS; in arm_64_lpae_alloc_pgtable_s2() 951 vtcr->sh = ARM_LPAE_TCR_SH_OS; in arm_64_lpae_alloc_pgtable_s2() 952 vtcr->irgn = ARM_LPAE_TCR_RGN_NC; in arm_64_lpae_alloc_pgtable_s2() 953 vtcr->orgn = ARM_LPAE_TCR_RGN_NC; in arm_64_lpae_alloc_pgtable_s2() 960 vtcr->tg = ARM_LPAE_TCR_TG0_4K; in arm_64_lpae_alloc_pgtable_s2() 964 vtcr->tg = ARM_LPAE_TCR_TG0_16K; in arm_64_lpae_alloc_pgtable_s2() 967 vtcr->tg = ARM_LPAE_TCR_TG0_64K; in arm_64_lpae_alloc_pgtable_s2() 973 vtcr->ps = ARM_LPAE_TCR_PS_32_BIT; in arm_64_lpae_alloc_pgtable_s2() 976 vtcr->ps = ARM_LPAE_TCR_PS_36_BIT; in arm_64_lpae_alloc_pgtable_s2() [all …]
|
/linux/drivers/iommu/arm/arm-smmu-v3/ |
H A D | arm-smmu-v3-test.c | 242 io_pgtable.cfg.arm_lpae_s2_cfg.vtcr.ps = 1; in arm_smmu_test_make_s2_ste() 243 io_pgtable.cfg.arm_lpae_s2_cfg.vtcr.tg = 2; in arm_smmu_test_make_s2_ste() 244 io_pgtable.cfg.arm_lpae_s2_cfg.vtcr.sh = 3; in arm_smmu_test_make_s2_ste() 245 io_pgtable.cfg.arm_lpae_s2_cfg.vtcr.orgn = 1; in arm_smmu_test_make_s2_ste() 246 io_pgtable.cfg.arm_lpae_s2_cfg.vtcr.irgn = 2; in arm_smmu_test_make_s2_ste() 247 io_pgtable.cfg.arm_lpae_s2_cfg.vtcr.sl = 3; in arm_smmu_test_make_s2_ste() 248 io_pgtable.cfg.arm_lpae_s2_cfg.vtcr.tsz = 4; in arm_smmu_test_make_s2_ste()
|
H A D | arm-smmu-v3.c | 1599 typeof(&pgtbl_cfg->arm_lpae_s2_cfg.vtcr) vtcr = in arm_smmu_make_s2_domain_ste() 1600 &pgtbl_cfg->arm_lpae_s2_cfg.vtcr; in arm_smmu_make_s2_domain_ste() 1617 vtcr_val = FIELD_PREP(STRTAB_STE_2_VTCR_S2T0SZ, vtcr->tsz) | in arm_smmu_make_s2_domain_ste() 1618 FIELD_PREP(STRTAB_STE_2_VTCR_S2SL0, vtcr->sl) | in arm_smmu_make_s2_domain_ste() 1619 FIELD_PREP(STRTAB_STE_2_VTCR_S2IR0, vtcr->irgn) | in arm_smmu_make_s2_domain_ste() 1620 FIELD_PREP(STRTAB_STE_2_VTCR_S2OR0, vtcr->orgn) | in arm_smmu_make_s2_domain_ste() 1621 FIELD_PREP(STRTAB_STE_2_VTCR_S2SH0, vtcr->sh) | in arm_smmu_make_s2_domain_ste() 1622 FIELD_PREP(STRTAB_STE_2_VTCR_S2TG, vtcr->tg) | in arm_smmu_make_s2_domain_ste() 1623 FIELD_PREP(STRTAB_STE_2_VTCR_S2PS, vtcr->ps); in arm_smmu_make_s2_domain_ste()
|
/linux/drivers/iommu/arm/arm-smmu/ |
H A D | arm-smmu.h | 415 FIELD_PREP(ARM_SMMU_VTCR_PS, cfg->arm_lpae_s2_cfg.vtcr.ps) | in arm_smmu_lpae_vtcr() 416 FIELD_PREP(ARM_SMMU_VTCR_TG0, cfg->arm_lpae_s2_cfg.vtcr.tg) | in arm_smmu_lpae_vtcr() 417 FIELD_PREP(ARM_SMMU_VTCR_SH0, cfg->arm_lpae_s2_cfg.vtcr.sh) | in arm_smmu_lpae_vtcr() 418 FIELD_PREP(ARM_SMMU_VTCR_ORGN0, cfg->arm_lpae_s2_cfg.vtcr.orgn) | in arm_smmu_lpae_vtcr() 419 FIELD_PREP(ARM_SMMU_VTCR_IRGN0, cfg->arm_lpae_s2_cfg.vtcr.irgn) | in arm_smmu_lpae_vtcr() 420 FIELD_PREP(ARM_SMMU_VTCR_SL0, cfg->arm_lpae_s2_cfg.vtcr.sl) | in arm_smmu_lpae_vtcr() 421 FIELD_PREP(ARM_SMMU_VTCR_T0SZ, cfg->arm_lpae_s2_cfg.vtcr.tsz); in arm_smmu_lpae_vtcr()
|
/linux/arch/arm64/include/asm/ |
H A D | kvm_arm.h | 214 #define VTCR_EL2_LVLS(vtcr) \ argument 215 VTCR_EL2_SL0_TO_LVLS(((vtcr) & VTCR_EL2_SL0_MASK) >> VTCR_EL2_SL0_SHIFT) 218 #define VTCR_EL2_IPA(vtcr) (64 - ((vtcr) & VTCR_EL2_T0SZ_MASK)) argument
|
H A D | stage2_pgtable.h | 24 #define kvm_stage2_levels(mmu) VTCR_EL2_LVLS((mmu)->vtcr)
|
H A D | kvm_mmu.h | 147 #define kvm_phys_shift(mmu) VTCR_EL2_IPA((mmu)->vtcr) 314 write_sysreg(mmu->vtcr, vtcr_el2);
|
H A D | kvm_pgtable.h | 469 size_t kvm_pgtable_stage2_pgd_size(u64 vtcr);
|
H A D | kvm_asm.h | 179 unsigned long vtcr; member
|
H A D | kvm_host.h | 171 u64 vtcr; member
|
/linux/arch/arm64/kvm/hyp/ |
H A D | pgtable.c | 636 u64 vtcr = VTCR_EL2_FLAGS; in kvm_get_vtcr() local 640 vtcr |= VTCR_EL2_T0SZ(phys_shift); in kvm_get_vtcr() 657 vtcr |= VTCR_EL2_LVLS_TO_SL0(lvls); in kvm_get_vtcr() 673 vtcr |= VTCR_EL2_HA; in kvm_get_vtcr() 677 vtcr |= VTCR_EL2_DS; in kvm_get_vtcr() 680 vtcr |= (get_vmid_bits(mmfr1) == 16) ? in kvm_get_vtcr() 684 return vtcr; in kvm_get_vtcr() 1572 u64 vtcr = mmu->vtcr; in __kvm_pgtable_stage2_init() local 1573 u32 ia_bits = VTCR_EL2_IPA(vtcr); in __kvm_pgtable_stage2_init() 1594 size_t kvm_pgtable_stage2_pgd_size(u64 vtcr) in kvm_pgtable_stage2_pgd_size() argument [all …]
|
/linux/arch/arm64/kvm/hyp/nvhe/ |
H A D | pkvm.c | 312 hyp_vm->kvm.arch.mmu.vtcr = host_mmu.arch.mmu.vtcr; in init_pkvm_hyp_vm() 493 pgd_size = kvm_pgtable_stage2_pgd_size(host_mmu.arch.mmu.vtcr); in __pkvm_init_vm()
|
H A D | mem_protect.c | 132 host_mmu.arch.mmu.vtcr = kvm_get_vtcr(id_aa64mmfr0_el1_sys_val, in prepare_host_vtcr() 238 nr_pages = kvm_pgtable_stage2_pgd_size(mmu->vtcr) >> PAGE_SHIFT; in kvm_guest_prepare_stage2() 298 params->vtcr = mmu->vtcr; in __pkvm_prot_finalize()
|
/linux/include/linux/ |
H A D | io-pgtable.h | 152 } vtcr; member
|
/linux/arch/arm64/kvm/ |
H A D | pkvm.c | 137 pgd_sz = kvm_pgtable_stage2_pgd_size(host_kvm->arch.mmu.vtcr); in __pkvm_create_hyp_vm()
|
H A D | mmu.c | 897 mmu->vtcr = kvm_get_vtcr(mmfr0, mmfr1, phys_shift); in kvm_init_stage2_mmu()
|
H A D | arm.c | 2010 params->vttbr = params->vtcr = 0; in cpu_prepare_hyp_mode()
|
/linux/arch/arm64/kernel/ |
H A D | asm-offsets.c | 147 DEFINE(NVHE_INIT_VTCR, offsetof(struct kvm_nvhe_init_params, vtcr)); in main()
|