Home
last modified time | relevance | path

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

/linux/arch/arm64/kvm/
H A DMakefile19 vgic-sys-reg-v3.o fpsimd.o pkvm.o \
21 vgic/vgic.o vgic/vgic-init.o \
22 vgic/vgic-irqfd.o vgic/vgic-v2.o \
23 vgic/vgic-v3.o vgic/vgic-v4.o \
24 vgic/vgic-mmio.o vgic/vgic-mmio-v2.o \
25 vgic/vgic-mmio-v3.o vgic/vgic-kvm-device.o \
26 vgic/vgic-its.o vgic/vgic-debug.o vgic/vgic-v3-nested.o \
27 vgic/vgic-v5.o
H A Darm.c408 r = kvm->arch.vgic.msis_require_devid; in kvm_vm_ioctl_check_extension()
617 vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 && in kvm_vcpu_should_clear_twi()
619 vcpu->kvm->arch.vgic.nassgireq); in kvm_vcpu_should_clear_twi()
/linux/arch/arm64/kvm/vgic/
H A Dvgic-init.c54 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_early_init()
143 kvm->arch.vgic.in_kernel = true; in kvm_vgic_create()
144 kvm->arch.vgic.vgic_model = type; in kvm_vgic_create()
145 kvm->arch.vgic.implementation_rev = KVM_VGIC_IMP_REV_LATEST; in kvm_vgic_create()
146 kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
152 kvm->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF; in kvm_vgic_create()
154 INIT_LIST_HEAD(&kvm->arch.vgic.rd_regions); in kvm_vgic_create()
175 kvm->arch.vgic.vgic_model = 0; in kvm_vgic_create()
180 kvm->arch.vgic.nassgicap = system_supports_direct_sgis(); in kvm_vgic_create()
197 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_dist_init()
[all …]
H A Dvgic-kvm-device.c40 if (kvm->arch.vgic.vgic_model != type_needed) in vgic_check_type()
48 struct vgic_dist *vgic = &kvm->arch.vgic; in kvm_set_legacy_vgic_v2_addr() local
56 r = vgic_check_iorange(kvm, vgic->vgic_dist_base, dev_addr->addr, in kvm_set_legacy_vgic_v2_addr()
59 vgic->vgic_dist_base = dev_addr->addr; in kvm_set_legacy_vgic_v2_addr()
64 r = vgic_check_iorange(kvm, vgic->vgic_cpu_base, dev_addr->addr, in kvm_set_legacy_vgic_v2_addr()
67 vgic->vgic_cpu_base = dev_addr->addr; in kvm_set_legacy_vgic_v2_addr()
96 struct vgic_dist *vgic = &kvm->arch.vgic; in kvm_vgic_addr() local
115 addr_ptr = &vgic->vgic_dist_base; in kvm_vgic_addr()
121 addr_ptr = &vgic->vgic_cpu_base; in kvm_vgic_addr()
127 addr_ptr = &vgic->vgic_dist_base; in kvm_vgic_addr()
[all …]
H A Dvgic-v3.c64 atomic_read(&vcpu->kvm->arch.vgic.active_spis)) in vgic_v3_configure_hcr()
81 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) { in vgic_v3_fold_lr()
130 atomic_dec_if_positive(&vcpu->kvm->arch.vgic.active_spis); in vgic_v3_fold_lr()
199 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_deactivate()
219 val >= vcpu->kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS) in vgic_v3_deactivate()
300 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_compute_lr()
368 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_populate_lr()
407 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_set_vmcr()
435 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_v3_get_vmcr()
483 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) { in vgic_v3_reset()
[all …]
H A Dvgic-mmio-v3.c43 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_has_its()
71 return kvm->arch.vgic.nassgicap; in vgic_supports_direct_sgis()
84 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; in vgic_mmio_read_v3_misc() local
89 if (vgic->enabled) in vgic_mmio_read_v3_misc()
92 if (vgic->nassgireq) in vgic_mmio_read_v3_misc()
96 value = vgic->nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_mmio_read_v3_misc()
111 (vgic->implementation_rev << GICD_IIDR_REVISION_SHIFT) | in vgic_mmio_read_v3_misc()
125 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_mmio_write_v3_misc()
174 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_mmio_uaccess_write_v3_misc()
321 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; in vgic_mmio_vcpu_rdist_is_last() 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.c192 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v4_configure_vsgis()
244 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v4_init()
320 struct its_vm *its_vm = &kvm->arch.vgic.its_vm; in vgic_v4_teardown()
389 err = its_make_vpe_resident(vpe, false, vcpu->kvm->arch.vgic.enabled); in vgic_v4_load()
476 .vm = &kvm->arch.vgic.its_vm, in kvm_vgic_v4_set_forwarding()
520 xa_for_each(&kvm->arch.vgic.lpi_xa, idx, irq) { in __vgic_host_irq_get_vlpi()
H A Dvgic.c68 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_get_lpi()
91 intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) { in vgic_get_irq()
92 intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS); in vgic_get_irq()
93 return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS]; in vgic_get_irq()
143 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_put_irq()
165 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_release_deleted_lpis()
263 !irq->target_vcpu->kvm->arch.vgic.enabled)) in vgic_target_oracle()
388 kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3); in vgic_model_needs_bcst_kick()
481 atomic_fetch_inc(&vcpu->kvm->arch.vgic.active_spis) == 0); in vgic_queue_irq_unlock()
1131 if (!vcpu->kvm->arch.vgic.enabled) in kvm_vgic_vcpu_pending_irq()
H A Dvgic-debug.c35 struct vgic_dist *dist = &kvm->arch.vgic; in iter_next()
66 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_count_lpis()
87 iter->nr_spis = kvm->arch.vgic.nr_spis; in iter_init()
243 print_dist_state(s, &kvm->arch.vgic, iter); in vgic_debug_show()
247 if (!kvm->arch.vgic.initialized) in vgic_debug_show()
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()
473 if ((vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 && in vgic_access_active_prepare()
482 if ((vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 && in vgic_access_active_finish()
564 u32 model = vcpu->kvm->arch.vgic.vgic_model; in vgic_mmio_change_active()
770 int nr_irqs = vcpu->kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_read_irq_line_level_info()
792 int nr_irqs = vcpu->kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in vgic_write_irq_line_level_info()
922 int flags, nr_irqs = kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS; in check_region()
1083 struct vgic_io_device *io_device = &kvm->arch.vgic.dist_iodev; in vgic_register_dist_iodev()
H A Dtrace.h33 #define TRACE_INCLUDE_PATH ../../arch/arm64/kvm/vgic
H A Dvgic-its.c79 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_add_lpi()
283 u64 propbase = GICR_PROPBASER_ADDRESS(kvm->arch.vgic.propbaser); in update_lpi_config()
392 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in its_sync_lpi_pending_table()
1047 lpi_nr >= max_lpis_propbaser(kvm->arch.vgic.propbaser)) in vgic_its_cmd_handle_mapi()
1297 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_its_invall()
1352 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_its_cmd_handle_movall()
1881 dev->kvm->arch.vgic.msis_require_devid = true; in vgic_its_create()
1882 dev->kvm->arch.vgic.has_its = true; in vgic_its_create()
1890 dev->kvm->arch.vgic.propbaser = INITIAL_PROPBASER_VALUE; in vgic_its_create()
2718 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_arch_allow_write_without_running_vcpu()
H A Dvgic-irqfd.c139 struct vgic_dist *dist = &kvm->arch.vgic; in kvm_vgic_setup_default_irq_routing()
H A Dvgic-v2.c422 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v2_map_resources()
/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-v3.rst318 -ENOMEM memory shortage when allocating vgic internal data
/linux/arch/arm64/kvm/hyp/vhe/
H A DMakefile12 obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
/linux/tools/testing/selftests/kvm/
H A DMakefile.kvm40 LIBKVM_arm64 += lib/arm64/vgic.c
181 TEST_GEN_PROGS_arm64 += arm64/no-vgic-v3
/linux/arch/arm64/kvm/hyp/nvhe/
H A Dpkvm.c340 hyp_vm->kvm.arch.vgic.vgic_model = host_kvm->arch.vgic.vgic_model; in pkvm_init_features_from_host()
/linux/arch/arm64/include/asm/
H A Dkvm_host.h316 struct vgic_dist vgic; member
/linux/Documentation/virt/kvm/
H A Dapi.rst8740 NOTE: Multiple examples of using the backup bitmap: (1) save vgic/its
8742 KVM device "kvm-arm-vgic-its". (2) restore vgic/its tables through
8744 "kvm-arm-vgic-its". VGICv3 LPI pending status is restored. (3) save
8746 command on KVM device "kvm-arm-vgic-v3".
/linux/
H A DMAINTAINERS2100 F: include/linux/irqchip/arm-vgic-info.h