Home
last modified time | relevance | path

Searched refs:vgic (Results 1 – 25 of 32) sorted by relevance

12

/openbmc/linux/arch/arm64/kvm/
H A DMakefile16 vgic-sys-reg-v3.o fpsimd.o pkvm.o \
18 vgic/vgic.o vgic/vgic-init.o \
19 vgic/vgic-irqfd.o vgic/vgic-v2.o \
20 vgic/vgic-v3.o vgic/vgic-v4.o \
21 vgic/vgic-mmio.o vgic/vgic-mmio-v2.o \
22 vgic/vgic-mmio-v3.o vgic/vgic-kvm-device.o \
23 vgic/vgic-its.o vgic/vgic-debug.o
/openbmc/linux/arch/arm64/kvm/hyp/
H A Dvgic-v2-cpuif-proxy.c40 struct vgic_dist *vgic = &kvm->arch.vgic; in __vgic_v2_perform_cpuif_access() local
50 if (fault_ipa < vgic->vgic_cpu_base || in __vgic_v2_perform_cpuif_access()
51 fault_ipa >= (vgic->vgic_cpu_base + KVM_VGIC_V2_CPU_SIZE)) in __vgic_v2_perform_cpuif_access()
68 addr += fault_ipa - vgic->vgic_cpu_base; in __vgic_v2_perform_cpuif_access()
/openbmc/linux/arch/arm64/kvm/vgic/
H A Dvgic-init.c54 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_early_init()
117 kvm->arch.vgic.in_kernel = true; in kvm_vgic_create()
118 kvm->arch.vgic.vgic_model = type; in kvm_vgic_create()
120 kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
123 kvm->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
125 INIT_LIST_HEAD(&kvm->arch.vgic.rd_regions); in kvm_vgic_create()
142 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_dist_init()
197 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in kvm_vgic_vcpu_init()
264 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_init()
345 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_dist_destroy()
[all …]
H A Dvgic-kvm-device.c38 if (kvm->arch.vgic.vgic_model != type_needed) in vgic_check_type()
46 struct vgic_dist *vgic = &kvm->arch.vgic; in kvm_set_legacy_vgic_v2_addr() local
57 vgic->vgic_dist_base = dev_addr->addr; in kvm_set_legacy_vgic_v2_addr()
65 vgic->vgic_cpu_base = dev_addr->addr; in kvm_set_legacy_vgic_v2_addr()
94 struct vgic_dist *vgic = &kvm->arch.vgic; in kvm_vgic_addr() local
113 addr_ptr = &vgic->vgic_dist_base; in kvm_vgic_addr()
119 addr_ptr = &vgic->vgic_cpu_base; in kvm_vgic_addr()
125 addr_ptr = &vgic->vgic_dist_base; in kvm_vgic_addr()
139 rdreg = list_first_entry_or_null(&vgic->rd_regions, in kvm_vgic_addr()
241 dev->kvm->arch.vgic.nr_spis = in vgic_set_common_attr()
[all …]
H A Dvgic-debug.c63 iter->nr_spis = kvm->arch.vgic.nr_spis; in iter_init()
64 if (kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) { in iter_init()
89 iter = kvm->arch.vgic.iter; in vgic_debug_start()
102 kvm->arch.vgic.iter = iter; in vgic_debug_start()
114 struct vgic_state_iter *iter = kvm->arch.vgic.iter; in vgic_debug_next()
136 iter = kvm->arch.vgic.iter; in vgic_debug_stop()
139 kvm->arch.vgic.iter = NULL; in vgic_debug_stop()
239 print_dist_state(s, &kvm->arch.vgic); in vgic_debug_show()
243 if (!kvm->arch.vgic.initialized) in vgic_debug_show()
H A Dvgic-v3.c39 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_fold_lr_state()
109 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_populate_lr()
197 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_set_vmcr()
227 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_get_vmcr()
356 struct vgic_dist *dist = &kvm->arch.vgic; in unmap_all_vpes()
365 struct vgic_dist *dist = &kvm->arch.vgic; in map_all_vpes()
379 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v3_save_pending_tables()
462 struct vgic_dist *d = &kvm->arch.vgic; in vgic_v3_rdist_overlap()
479 struct vgic_dist *d = &kvm->arch.vgic; in vgic_v3_check_base()
527 struct list_head *rd_regions = &kvm->arch.vgic.rd_regions; in vgic_v3_rdist_region_from_index()
[all …]
H A Dvgic-mmio-v3.c43 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_has_its()
67 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; in vgic_mmio_read_v3_misc() local
72 if (vgic->enabled) in vgic_mmio_read_v3_misc()
75 if (vgic->nassgireq) in vgic_mmio_read_v3_misc()
79 value = vgic->nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_mmio_read_v3_misc()
108 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_mmio_write_v3_misc()
157 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_mmio_uaccess_write_v3_misc()
294 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; in vgic_mmio_vcpu_rdist_is_last() local
480 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_mmio_read_propbase()
774 struct vgic_dist *vgic = &kvm->arch.vgic; in vgic_register_redist_iodev() local
[all …]
H A Dvgic-mmio-v2.c28 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; in vgic_mmio_read_v2_misc() local
33 value = vgic->enabled ? GICD_ENABLE : 0; in vgic_mmio_read_v2_misc()
36 value = vgic->nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_mmio_read_v2_misc()
42 (vgic->implementation_rev << GICD_IIDR_REVISION_SHIFT) | in vgic_mmio_read_v2_misc()
56 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_mmio_write_v2_misc()
76 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_mmio_uaccess_write_v2_misc()
98 vcpu->kvm->arch.vgic.v2_groups_user_writable = true; in vgic_mmio_uaccess_write_v2_misc()
114 if (vcpu->kvm->arch.vgic.v2_groups_user_writable) in vgic_mmio_uaccess_write_v2_group()
H A Dvgic-v4.c189 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v4_configure_vsgis()
241 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v4_init()
317 struct its_vm *its_vm = &kvm->arch.vgic.its_vm; in vgic_v4_teardown()
370 err = its_make_vpe_resident(vpe, false, vcpu->kvm->arch.vgic.enabled); in vgic_v4_load()
446 .vm = &kvm->arch.vgic.its_vm, in kvm_vgic_v4_set_forwarding()
H A Dvgic.c62 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_get_lpi()
102 if (intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) { in vgic_get_irq()
103 intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS); in vgic_get_irq()
104 return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS]; in vgic_get_irq()
128 struct vgic_dist *dist = &kvm->arch.vgic; in __vgic_put_lpi_locked()
141 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_put_irq()
232 !irq->target_vcpu->kvm->arch.vgic.enabled)) in vgic_target_oracle()
981 if (!vcpu->kvm->arch.vgic.enabled) in kvm_vgic_vcpu_pending_irq()
H A Dvgic-mmio.c264 switch (vcpu->kvm->arch.vgic.vgic_model) { in __read_pending()
301 vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2); in is_vgic_v2_sgi()
488 if ((vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 && in vgic_access_active_prepare()
497 if ((vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 && in vgic_access_active_finish()
579 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_mmio_change_active()
785 int nr_irqs = vcpu->kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_read_irq_line_level_info()
807 int nr_irqs = vcpu->kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_write_irq_line_level_info()
937 int flags, nr_irqs = kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in check_region()
1098 struct vgic_io_device *io_device = &kvm->arch.vgic.dist_iodev; in vgic_register_dist_iodev()
H A Dvgic.h104 return vcpu->kvm->arch.vgic.implementation_rev; in vgic_get_implementation_rev()
138 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_write_guest_lock()
319 struct vgic_dist *d = &kvm->arch.vgic; in vgic_dist_overlap()
350 kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3); in kvm_has_gicv3()
H A Dtrace.h33 #define TRACE_INCLUDE_PATH ../../arch/arm64/kvm/vgic
H A Dvgic-its.c42 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_add_lpi()
321 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_copy_lpi_list()
585 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_its_check_cache()
604 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_its_cache_translation()
655 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_its_invalidate_cache()
1900 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_lpi_translation_cache_init()
1924 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_lpi_translation_cache_destroy()
1988 dev->kvm->arch.vgic.msis_require_devid = true; in vgic_its_create()
1989 dev->kvm->arch.vgic.has_its = true; in vgic_its_create()
1997 dev->kvm->arch.vgic.propbaser = INITIAL_PROPBASER_VALUE; in vgic_its_create()
[all …]
H A Dvgic-irqfd.c138 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_setup_default_irq_routing()
H A Dvgic-v2.c291 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v2_map_resources()
/openbmc/linux/Documentation/virt/kvm/devices/
H A Dindex.rst10 arm-vgic-its
11 arm-vgic
12 arm-vgic-v3
H A Darm-vgic.rst18 device and guest ITS devices, see arm-vgic-v3.txt. It is not possible to
155 -ENOMEM memory shortage when allocating vgic internal data
H A Darm-vgic-its.rst12 arm-vgic-v3.txt), but does not depend on having physical ITS controllers.
/openbmc/linux/arch/arm64/kvm/hyp/vhe/
H A DMakefile10 obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
/openbmc/linux/include/kvm/
H A Darm_vgic.h392 #define irqchip_in_kernel(k) (!!((k)->arch.vgic.in_kernel))
393 #define vgic_initialized(k) ((k)->arch.vgic.initialized)
394 #define vgic_ready(k) ((k)->arch.vgic.ready)
396 ((i) < (k)->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS))
/openbmc/qemu/target/arm/hvf/
H A Dtrace-events12 hvf_vgic_write(const char *name, uint64_t val) "vgic write to %s [val=0x%016"PRIx64"]"
13 hvf_vgic_read(const char *name, uint64_t val) "vgic read from %s [val=0x%016"PRIx64"]"
/openbmc/linux/arch/arm64/kvm/hyp/nvhe/
H A DMakefile26 hyp-obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
/openbmc/linux/arch/arm64/include/asm/
H A Dkvm_emulate.h115 vcpu->kvm->arch.vgic.nassgireq) in vcpu_clear_wfx_traps()
/openbmc/linux/tools/testing/selftests/kvm/
H A DMakefile50 LIBKVM_aarch64 += lib/aarch64/vgic.c

12