| /linux-6.15/arch/arm64/include/asm/ |
| H A D | kvm_emulate.h | 70 return !(vcpu->arch.hcr_el2 & HCR_RW); in vcpu_el1_is_32bit() 82 vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS; in vcpu_reset_hcr() 91 vcpu->arch.hcr_el2 |= HCR_TVM; in vcpu_reset_hcr() 96 return (unsigned long *)&vcpu->arch.hcr_el2; in vcpu_hcr() 101 vcpu->arch.hcr_el2 &= ~HCR_TWE; in vcpu_clear_wfx_traps() 104 vcpu->arch.hcr_el2 &= ~HCR_TWI; in vcpu_clear_wfx_traps() 106 vcpu->arch.hcr_el2 |= HCR_TWI; in vcpu_clear_wfx_traps() 111 vcpu->arch.hcr_el2 |= HCR_TWE; in vcpu_set_wfx_traps() 112 vcpu->arch.hcr_el2 |= HCR_TWI; in vcpu_set_wfx_traps() 287 return ((is_wfe && (hcr_el2 & HCR_TWE)) || in guest_hyp_wfx_traps_enabled() [all …]
|
| H A D | hardirq.h | 42 ___hcr = read_sysreg(hcr_el2); \ 44 write_sysreg(___hcr | HCR_TGE, hcr_el2); \ 85 write_sysreg(___hcr, hcr_el2); \
|
| H A D | kvm_mte.h | 18 mrs \reg1, hcr_el2 38 mrs \reg1, hcr_el2
|
| H A D | kvm_ptrauth.h | 73 mrs \reg1, hcr_el2 85 mrs \reg1, hcr_el2
|
| H A D | el2_setup.h | 41 msr hcr_el2, x0 70 mrs \tmp, hcr_el2
|
| H A D | kvm_asm.h | 185 unsigned long hcr_el2; member
|
| H A D | kvm_host.h | 754 u64 hcr_el2; member
|
| /linux-6.15/arch/arm64/kvm/hyp/nvhe/ |
| H A D | pkvm.c | 33 vcpu->arch.hcr_el2 = HCR_GUEST_FLAGS; in pkvm_vcpu_reset_hcr() 36 vcpu->arch.hcr_el2 |= HCR_E2H; in pkvm_vcpu_reset_hcr() 40 vcpu->arch.hcr_el2 |= HCR_TEA; in pkvm_vcpu_reset_hcr() 42 vcpu->arch.hcr_el2 |= HCR_TERR; in pkvm_vcpu_reset_hcr() 46 vcpu->arch.hcr_el2 |= HCR_FWB; in pkvm_vcpu_reset_hcr() 51 vcpu->arch.hcr_el2 |= HCR_TID4; in pkvm_vcpu_reset_hcr() 53 vcpu->arch.hcr_el2 |= HCR_TID2; in pkvm_vcpu_reset_hcr() 56 vcpu->arch.hcr_el2 |= (HCR_API | HCR_APK); in pkvm_vcpu_reset_hcr() 59 vcpu->arch.hcr_el2 |= HCR_ATA; in pkvm_vcpu_reset_hcr() 65 u64 val = vcpu->arch.hcr_el2; in pvm_init_traps_hcr() [all …]
|
| H A D | hyp-main.c | 131 hyp_vcpu->vcpu.arch.hcr_el2 &= ~(HCR_TWI | HCR_TWE); in flush_hyp_vcpu() 132 hyp_vcpu->vcpu.arch.hcr_el2 |= READ_ONCE(host_vcpu->arch.hcr_el2) & in flush_hyp_vcpu() 154 host_vcpu->arch.hcr_el2 = hyp_vcpu->vcpu.arch.hcr_el2; in sync_hyp_vcpu() 169 DECLARE_REG(u64, hcr_el2, host_ctxt, 3); in handle___pkvm_vcpu_load() 181 hyp_vcpu->vcpu.arch.hcr_el2 &= ~(HCR_TWE | HCR_TWI); in handle___pkvm_vcpu_load() 182 hyp_vcpu->vcpu.arch.hcr_el2 |= hcr_el2 & (HCR_TWE | HCR_TWI); in handle___pkvm_vcpu_load()
|
| H A D | switch.c | 99 ___activate_traps(vcpu, vcpu->arch.hcr_el2); in __activate_traps() 145 write_sysreg(this_cpu_ptr(&kvm_init_params)->hcr_el2, hcr_el2); in __deactivate_traps()
|
| H A D | hyp-init.S | 103 msr hcr_el2, x1 265 msr hcr_el2, x5
|
| H A D | host.S | 125 mrs x0, hcr_el2 127 msr hcr_el2, x0
|
| H A D | mem_protect.c | 297 if (params->hcr_el2 & HCR_VM) in __pkvm_prot_finalize() 302 params->hcr_el2 |= HCR_VM; in __pkvm_prot_finalize() 312 write_sysreg(params->hcr_el2, hcr_el2); in __pkvm_prot_finalize()
|
| /linux-6.15/arch/arm64/kvm/ |
| H A D | trace_arm.h | 344 __field(unsigned long, hcr_el2) 352 __entry->hcr_el2 = __vcpu_sys_reg(vcpu, HCR_EL2); 358 __entry->hcr_el2) 372 __field(unsigned long, hcr_el2) 382 __entry->hcr_el2 = __vcpu_sys_reg(vcpu, HCR_EL2); 389 __entry->hcr_el2)
|
| H A D | arm.c | 523 vcpu->arch.hcr_el2 &= ~(HCR_API | HCR_APK); in vcpu_set_pauth_traps() 524 vcpu->arch.hcr_el2 |= val; in vcpu_set_pauth_traps() 526 vcpu->arch.hcr_el2 |= (HCR_API | HCR_APK); in vcpu_set_pauth_traps() 534 if (vcpu->arch.hcr_el2 & (HCR_API | HCR_APK)) { in vcpu_set_pauth_traps() 617 vcpu->arch.hcr_el2 &= ~HCR_TWE; in kvm_arch_vcpu_load() 619 vcpu->arch.hcr_el2 |= HCR_TWE; in kvm_arch_vcpu_load() 622 vcpu->arch.hcr_el2 &= ~HCR_TWI; in kvm_arch_vcpu_load() 624 vcpu->arch.hcr_el2 |= HCR_TWI; in kvm_arch_vcpu_load() 631 vcpu->vcpu_idx, vcpu->arch.hcr_el2); in kvm_arch_vcpu_load() 2045 params->hcr_el2 = HCR_HOST_NVHE_FLAGS; in cpu_prepare_hyp_mode() [all …]
|
| H A D | at.c | 514 config->hcr = read_sysreg(hcr_el2); in __mmu_config_save() 519 write_sysreg(config->hcr, hcr_el2); in __mmu_config_restore() 1270 write_sysreg((config.hcr & ~HCR_TGE) | HCR_VM, hcr_el2); in __kvm_at_s1e01_fast() 1346 val = hcr = read_sysreg(hcr_el2); in __kvm_at_s1e2() 1353 write_sysreg(val, hcr_el2); in __kvm_at_s1e2() 1378 write_sysreg(hcr, hcr_el2); in __kvm_at_s1e2()
|
| H A D | sys_regs.c | 5111 vcpu->arch.hcr_el2 |= HCR_E2H; in vcpu_set_hcr() 5114 vcpu->arch.hcr_el2 |= HCR_TEA; in vcpu_set_hcr() 5116 vcpu->arch.hcr_el2 |= HCR_TERR; in vcpu_set_hcr() 5120 vcpu->arch.hcr_el2 |= HCR_FWB; in vcpu_set_hcr() 5125 vcpu->arch.hcr_el2 |= HCR_TID4; in vcpu_set_hcr() 5127 vcpu->arch.hcr_el2 |= HCR_TID2; in vcpu_set_hcr() 5130 vcpu->arch.hcr_el2 &= ~HCR_RW; in vcpu_set_hcr() 5133 vcpu->arch.hcr_el2 |= HCR_ATA; in vcpu_set_hcr() 5141 vcpu->arch.hcr_el2 |= HCR_TTLBOS; in vcpu_set_hcr()
|
| H A D | guest.c | 821 events->exception.serror_pending = !!(vcpu->arch.hcr_el2 & HCR_VSE); in __kvm_arm_vcpu_get_events()
|
| /linux-6.15/arch/arm64/kvm/hyp/include/hyp/ |
| H A D | switch.h | 303 write_sysreg(hcr, hcr_el2); in ___activate_traps() 317 if (vcpu->arch.hcr_el2 & HCR_VSE) { in ___deactivate_traps() 318 vcpu->arch.hcr_el2 &= ~HCR_VSE; in ___deactivate_traps() 319 vcpu->arch.hcr_el2 |= read_sysreg(hcr_el2) & HCR_VSE; in ___deactivate_traps() 520 if (!(read_sysreg(hcr_el2) & HCR_RW)) in kvm_hyp_handle_fpsimd() 538 if (vcpu->arch.hcr_el2 & HCR_TVM) in handle_tx2_tvm()
|
| /linux-6.15/arch/arm64/kvm/hyp/vhe/ |
| H A D | tlb.c | 64 val = read_sysreg(hcr_el2); in enter_vmid_context() 66 write_sysreg(val, hcr_el2); in enter_vmid_context() 76 write_sysreg(HCR_HOST_VHE_FLAGS, hcr_el2); in exit_vmid_context()
|
| H A D | switch.c | 51 u64 hcr = vcpu->arch.hcr_el2; in __compute_hcr() 187 write_sysreg(HCR_HOST_VHE_FLAGS, hcr_el2); in __deactivate_traps() 573 if (vcpu_has_nv(vcpu) && (read_sysreg(hcr_el2) & HCR_NV)) { in fixup_guest_exit()
|
| /linux-6.15/arch/arm64/kernel/ |
| H A D | asm-offsets.c | 106 DEFINE(VCPU_HCR_EL2, offsetof(struct kvm_vcpu, arch.hcr_el2)); in main() 123 DEFINE(NVHE_INIT_HCR_EL2, offsetof(struct kvm_nvhe_init_params, hcr_el2)); in main()
|
| H A D | hyp-stub.S | 100 msr hcr_el2, x0
|
| H A D | head.S | 312 mrs x0, hcr_el2
|
| /linux-6.15/arch/arm64/kvm/hyp/ |
| H A D | vgic-v3-sr.c | 449 sysreg_clear_set(hcr_el2, 0, HCR_AMO | HCR_FMO | HCR_IMO); in __vgic_v3_get_gic_config() 464 sysreg_clear_set(hcr_el2, HCR_AMO | HCR_FMO | HCR_IMO, 0); in __vgic_v3_get_gic_config()
|