| /freebsd/sys/riscv/vmm/ |
| H A D | vmm_aplic.c | 208 aplic_handle_idc_claimi(struct hyp *hyp, struct aplic *aplic, int cpu_id, in aplic_handle_idc_claimi() argument 242 aplic_handle_idc(struct hyp *hyp, struct aplic *aplic, int cpu, int reg, in aplic_handle_idc() argument 255 error = aplic_handle_idc_claimi(hyp, aplic, cpu, write, val); in aplic_handle_idc() 265 aplic_mmio_access(struct hyp *hyp, struct aplic *aplic, uint64_t reg, in aplic_mmio_access() argument 291 error = aplic_handle_idc(hyp, aplic, cpu, r, write, val); in aplic_mmio_access() 331 struct hyp *hyp; in mem_read() local 338 hyp = hypctx->hyp; in mem_read() 339 aplic = hyp->aplic; in mem_read() 348 error = aplic_mmio_access(hyp, aplic, reg, false, &val); in mem_read() 360 struct hyp *hyp; in mem_write() local [all …]
|
| H A D | vmm_aplic.h | 36 struct hyp; 40 int aplic_attach_to_vm(struct hyp *hyp, struct vm_aplic_descr *descr); 41 void aplic_detach_from_vm(struct hyp *hyp); 42 int aplic_inject_irq(struct hyp *hyp, int vcpuid, uint32_t irqid, bool level); 43 int aplic_inject_msi(struct hyp *hyp, uint64_t msg, uint64_t addr); 44 void aplic_vminit(struct hyp *hyp); 45 void aplic_vmcleanup(struct hyp *hyp);
|
| H A D | vmm_sbi.c | 52 struct hyp *hyp; in vmm_sbi_handle_rfnc() local 83 hyp = hypctx->hyp; in vmm_sbi_handle_rfnc() 84 active_cpus = vm_active_cpus(hyp->vm); in vmm_sbi_handle_rfnc() 85 maxcpus = vm_get_maxcpus(hyp->vm); in vmm_sbi_handle_rfnc() 87 vcpu = vm_vcpu(hyp->vm, i); in vmm_sbi_handle_rfnc() 108 vmm_fence_add(hyp->vm, &cpus, &fence); in vmm_sbi_handle_rfnc() 137 struct hyp *hyp; in vmm_sbi_handle_ipi() local 151 hyp = hypctx->hyp; in vmm_sbi_handle_ipi() 153 active_cpus = vm_active_cpus(hyp->vm); in vmm_sbi_handle_ipi() 176 riscv_send_ipi(hyp, &cpus); in vmm_sbi_handle_ipi()
|
| H A D | vmm_riscv.c | 126 struct hyp *hyp; in vmmops_init() local 129 size = round_page(sizeof(struct hyp) + in vmmops_init() 131 hyp = malloc_aligned(size, PAGE_SIZE, M_HYP, M_WAITOK | M_ZERO); in vmmops_init() 132 hyp->vm = vm; in vmmops_init() 133 hyp->aplic_attached = false; in vmmops_init() 135 aplic_vminit(hyp); in vmmops_init() 137 return (hyp); in vmmops_init() 201 struct hyp *hyp; in vmmops_vcpu_init() local 204 hyp = vmi; in vmmops_vcpu_init() 206 dprintf("%s: hyp %p\n", __func__, hyp); in vmmops_vcpu_init() [all …]
|
| H A D | vmm_vtimer.c | 89 struct hyp *hyp; in vtimer_inject_irq_callout() local 92 hyp = hypctx->hyp; in vtimer_inject_irq_callout() 95 vcpu_notify_event(vm_vcpu(hyp->vm, hypctx->cpu_id)); in vtimer_inject_irq_callout()
|
| H A D | riscv.h | 92 struct hyp *hyp; member 109 struct hyp { struct 132 void riscv_send_ipi(struct hyp *hyp, cpuset_t *cpus); argument
|
| H A D | vmm.c | 326 struct hyp *hyp; in vm_handle_inst_emul() local 333 hyp = vm->cookie; in vm_handle_inst_emul() 334 if (!hyp->aplic_attached) in vm_handle_inst_emul()
|
| /freebsd/sys/arm64/vmm/io/ |
| H A D | vtimer.c | 100 hypctx->hyp->vtimer.cntvoff_el2; in vtimer_virtual_timer_intr() 102 vgic_inject_irq(hypctx->hyp, vcpu_vcpuid(hypctx->vcpu), in vtimer_virtual_timer_intr() 136 vtimer_vminit(struct hyp *hyp) in vtimer_vminit() argument 143 if (allow_ecv_phys && (hyp->feats & HYP_FEAT_ECV_POFF) != 0) in vtimer_vminit() 168 hyp->vtimer.cnthctl_el2 = in vtimer_vminit() 172 hyp->vtimer.cnthctl_el2 |= in vtimer_vminit() 178 hyp->vtimer.cnthctl_el2 |= in vtimer_vminit() 191 hyp->vtimer.cnthctl_el2 = in vtimer_vminit() 195 hyp->vtimer.cnthctl_el2 = in vtimer_vminit() 202 hyp->vtimer.cnthctl_el2 |= CNTHCTL_ECV_EN; in vtimer_vminit() [all …]
|
| H A D | vgic_v3.c | 153 static int vgic_v3_max_cpu_count(device_t dev, struct hyp *hyp); 155 #define INJECT_IRQ(hyp, vcpuid, irqid, level) \ argument 156 vgic_v3_inject_irq(NULL, (hyp), (vcpuid), (irqid), (level)) 421 static struct vgic_v3_irq *vgic_v3_get_irq(struct hyp *, int, uint32_t); 426 mpidr_to_vcpu(struct hyp *hyp, uint64_t mpidr) in mpidr_to_vcpu() argument 431 vm = hyp->vm; in mpidr_to_vcpu() 433 hypctx = hyp->ctx[i]; in mpidr_to_vcpu() 441 vgic_v3_vminit(device_t dev, struct hyp *hyp) in vgic_v3_vminit() argument 445 hyp->vgic = malloc(sizeof(*hyp->vgic), M_VGIC_V3, in vgic_v3_vminit() 447 vgic = hyp->vgic; in vgic_v3_vminit() [all …]
|
| H A D | vtimer.h | 37 struct hyp; 70 void vtimer_vminit(struct hyp *); 73 void vtimer_vmcleanup(struct hyp *);
|
| /freebsd/sys/arm64/vmm/ |
| H A D | vmm_arm64.c | 487 return (round_page(sizeof(struct hyp) + in el2_hyp_size() 515 struct hyp *hyp; in vmmops_init() local 520 hyp = malloc_aligned(size, PAGE_SIZE, M_HYP, M_WAITOK | M_ZERO); in vmmops_init() 522 hyp->vm = vm; in vmmops_init() 523 hyp->vgic_attached = false; in vmmops_init() 527 hyp->feats |= HYP_FEAT_ECV_POFF; in vmmops_init() 534 hyp->feats |= HYP_FEAT_FGT2; in vmmops_init() 537 hyp->feats |= HYP_FEAT_FGT; in vmmops_init() 544 hyp->feats |= HYP_FEAT_HCX; in vmmops_init() 547 vtimer_vminit(hyp); in vmmops_init() [all …]
|
| H A D | vmm_handlers.c | 52 vmm_nvhe_enter_guest(struct hyp *hyp, struct hypctx *hypctx) in vmm_nvhe_enter_guest() argument 54 return (vmm_call_hyp(HYP_ENTER_GUEST, hyp->el2_addr, hypctx->el2_addr)); in vmm_nvhe_enter_guest() 58 (struct hyp *hyp, struct hypctx *hypctx))
|
| H A D | vmm_hyp.c | 44 vmm_hyp_reg_store(struct hypctx *hypctx, struct hyp *hyp, bool guest, in vmm_hyp_reg_store() argument 282 vmm_hyp_reg_restore(struct hypctx *hypctx, struct hyp *hyp, bool guest, in vmm_hyp_reg_restore() argument 291 if ((hyp->feats & HYP_FEAT_HCX) != 0) in vmm_hyp_reg_restore() 299 if ((hyp->feats & HYP_FEAT_FGT) != 0) { in vmm_hyp_reg_restore() 306 if ((hyp->feats & HYP_FEAT_FGT2) != 0) { in vmm_hyp_reg_restore() 486 WRITE_SPECIALREG(cnthctl_el2, hyp->vtimer.cnthctl_el2); in vmm_hyp_reg_restore() 487 WRITE_SPECIALREG(cntvoff_el2, hyp->vtimer.cntvoff_el2); in vmm_hyp_reg_restore() 495 hyp->vtimer.cntvoff_el2); in vmm_hyp_reg_restore() 559 vmm_hyp_call_guest(struct hyp *hyp, struct hypctx *hypctx) in vmm_hyp_call_guest() argument 571 ecv_poff = (hyp->vtimer.cnthctl_el2 & CNTHCTL_ECV_EN) != 0; in vmm_hyp_call_guest() [all …]
|
| H A D | vmm_handlers.h | 33 struct hyp; 37 uint64_t vmm_enter_guest(struct hyp *, struct hypctx *); 43 uint64_t vmm_vhe_enter_guest(struct hyp *, struct hypctx *);
|
| H A D | arm64.h | 120 struct hyp *hyp; member 141 struct hyp { struct
|
| H A D | vmm_nvhe.c | 95 return (VMM_HYP_FUNC(enter_guest)((struct hyp *)x1, in vmm_hyp_enter()
|
| H A D | vmm.c | 653 struct hyp *hyp; in vm_handle_inst_emul() local 660 hyp = vm->cookie; in vm_handle_inst_emul() 661 if (!hyp->vgic_attached) in vm_handle_inst_emul()
|
| H A D | vmm_reset.c | 192 if ((el2ctx->hyp->feats & HYP_FEAT_FGT) != 0) { in reset_vm_el2_regs() 587 if ((el2ctx->hyp->feats & HYP_FEAT_FGT2) != 0) { in reset_vm_el2_regs()
|
| /freebsd/sys/contrib/device-tree/src/arm64/renesas/ |
| H A D | r9a07g043u.dtsi | 55 interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", 56 "hyp-virt";
|
| /freebsd/sys/contrib/device-tree/src/arm64/cix/ |
| H A D | sky1.dtsi | 323 interrupt-names = "sec-phys", "phys", "virt", "hyp-phys", "hyp-virt";
|
| /freebsd/sys/contrib/device-tree/src/arm64/apple/ |
| H A D | t600x-common.dtsi | 355 interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt";
|
| /freebsd/sys/riscv/include/ |
| H A D | vmm.h | 250 } hyp; member
|
| /freebsd/sys/arm64/include/ |
| H A D | vmm.h | 275 } hyp; member
|
| /freebsd/usr.sbin/bhyve/aarch64/ |
| H A D | vmexit.c | 275 vmrun->vm_exit->u.hyp.far_el2) != 0) in vmexit_hyp()
|
| /freebsd/usr.sbin/bhyve/riscv/ |
| H A D | vmexit.c | 353 printf("unhandled exception: scause %#lx\n", vme->u.hyp.scause); in vmexit_hyp()
|