Searched refs:vgic (Results 1 - 25 of 26) sorted by relevance

12

/linux-master/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/vgi
[all...]
/linux-master/arch/arm64/kvm/hyp/
H A Dvgic-v2-cpuif-proxy.c40 struct vgic_dist *vgic = &kvm->arch.vgic; local
50 if (fault_ipa < vgic->vgic_cpu_base ||
51 fault_ipa >= (vgic->vgic_cpu_base + KVM_VGIC_V2_CPU_SIZE))
68 addr += fault_ipa - vgic->vgic_cpu_base;
/linux-master/arch/arm64/kvm/hyp/vhe/
H A DMakefile10 obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
/linux-master/include/linux/irqchip/
H A Darm-gic-common.h10 #include <linux/irqchip/arm-vgic-info.h>
/linux-master/arch/arm64/kvm/vgic/
H A Dvgic-debug.c14 #include "vgic.h"
17 * Structure to control looping through the entire vgic state. We start at
63 iter->nr_spis = kvm->arch.vgic.nr_spis;
64 if (kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
89 iter = kvm->arch.vgic.iter;
102 kvm->arch.vgic.iter = iter;
114 struct vgic_state_iter *iter = kvm->arch.vgic.iter;
136 iter = kvm->arch.vgic.iter;
139 kvm->arch.vgic.iter = NULL;
239 print_dist_state(s, &kvm->arch.vgic);
[all...]
H A Dvgic-init.c13 #include "vgic.h"
16 * Initialization rules: there are multiple stages to the vgic
54 struct vgic_dist *dist = &kvm->arch.vgic;
117 kvm->arch.vgic.in_kernel = true;
118 kvm->arch.vgic.vgic_model = type;
120 kvm->arch.vgic.vgic_dist_base = VGIC_ADDR_UNDEF;
123 kvm->arch.vgic.vgic_cpu_base = VGIC_ADDR_UNDEF;
125 INIT_LIST_HEAD(&kvm->arch.vgic.rd_regions);
142 struct vgic_dist *dist = &kvm->arch.vgic;
197 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
[all...]
H A Dtrace.h33 #define TRACE_INCLUDE_PATH ../../arch/arm64/kvm/vgic
H A Dvgic-kvm-device.c13 #include "vgic.h"
39 if (kvm->arch.vgic.vgic_model != type_needed)
47 struct vgic_dist *vgic = &kvm->arch.vgic; local
55 r = vgic_check_iorange(kvm, vgic->vgic_dist_base, dev_addr->addr,
58 vgic->vgic_dist_base = dev_addr->addr;
63 r = vgic_check_iorange(kvm, vgic->vgic_cpu_base, dev_addr->addr,
66 vgic->vgic_cpu_base = dev_addr->addr;
78 * kvm_vgic_addr - set or get vgic VM base addresses
84 * Set or get the vgic bas
95 struct vgic_dist *vgic = &kvm->arch.vgic; local
[all...]
H A Dvgic-mmio-v2.c14 #include "vgic.h"
15 #include "vgic-mmio.h"
28 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; local
33 value = vgic->enabled ? GICD_ENABLE : 0;
36 value = vgic->nr_spis + VGIC_NR_PRIVATE_IRQS;
42 (vgic->implementation_rev << GICD_IIDR_REVISION_SHIFT) |
56 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
76 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
98 vcpu->kvm->arch.vgic
[all...]
H A Dvgic-v3.c14 #include "vgic.h"
39 u32 model = vcpu->kvm->arch.vgic.vgic_model;
109 u32 model = vcpu->kvm->arch.vgic.vgic_model;
197 u32 model = vcpu->kvm->arch.vgic.vgic_model;
227 u32 model = vcpu->kvm->arch.vgic.vgic_model;
277 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) {
356 struct vgic_dist *dist = &kvm->arch.vgic;
365 struct vgic_dist *dist = &kvm->arch.vgic;
379 struct vgic_dist *dist = &kvm->arch.vgic;
392 * The above vgic initialize
[all...]
H A Dvgic-mmio-v3.c18 #include "vgic.h"
19 #include "vgic-mmio.h"
43 struct vgic_dist *dist = &kvm->arch.vgic;
67 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; local
72 if (vgic->enabled)
75 if (vgic->nassgireq)
79 value = vgic->nr_spis + VGIC_NR_PRIVATE_IRQS;
94 (vgic->implementation_rev << GICD_IIDR_REVISION_SHIFT) |
108 struct vgic_dist *dist = &vcpu->kvm->arch.vgic;
294 struct vgic_dist *vgic = &vcpu->kvm->arch.vgic; local
749 struct vgic_dist *vgic = &kvm->arch.vgic; local
[all...]
H A Dvgic-v4.c13 #include "vgic.h"
18 * The vgic-v4 layer acts as a bridge between several entities:
189 struct vgic_dist *dist = &kvm->arch.vgic;
236 * vgic is initialized. In both cases, the number of vcpus
241 struct vgic_dist *dist = &kvm->arch.vgic;
317 struct its_vm *its_vm = &kvm->arch.vgic.its_vm;
370 err = its_make_vpe_resident(vpe, false, vcpu->kvm->arch.vgic.enabled);
450 .vm = &kvm->arch.vgic.its_vm,
H A Dvgic-mmio.c16 #include "vgic.h"
17 #include "vgic-mmio.h"
249 * Refer to Documentation/virt/kvm/devices/arm-vgic-v3.rst
264 switch (vcpu->kvm->arch.vgic.vgic_model) {
301 vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2);
380 * can happen is an additional vgic injection. We also clear
473 if ((vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 &&
482 if ((vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3 &&
564 u32 model = vcpu->kvm->arch.vgic.vgic_model;
770 int nr_irqs = vcpu->kvm->arch.vgic
[all...]
H A Dvgic.c15 #include "vgic.h"
64 struct vgic_dist *dist = &kvm->arch.vgic;
93 if (intid < (kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS)) {
94 intid = array_index_nospec(intid, kvm->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS);
95 return &kvm->arch.vgic.spis[intid - VGIC_NR_PRIVATE_IRQS];
116 struct vgic_dist *dist = &kvm->arch.vgic;
213 !irq->target_vcpu->kvm->arch.vgic.enabled))
405 * kvm_vgic_inject_irq - Inject an IRQ from a device to the vgic
961 if (!vcpu->kvm->arch.vgic.enabled)
H A Dvgic.h38 * Below macro converts vgic userspace format to MPIDR reg format.
46 * As per Documentation/virt/kvm/devices/arm-vgic-v3.rst,
67 * As per Documentation/virt/kvm/devices/arm-vgic-its.rst,
104 return vcpu->kvm->arch.vgic.implementation_rev;
138 struct vgic_dist *dist = &kvm->arch.vgic;
326 struct vgic_dist *d = &kvm->arch.vgic;
H A Dvgic-irqfd.c10 #include "vgic.h"
125 * as long as the damn vgic is initialized.
138 struct vgic_dist *dist = &kvm->arch.vgic;
H A Dvgic-its.c23 #include "vgic.h"
24 #include "vgic-mmio.h"
42 struct vgic_dist *dist = &kvm->arch.vgic;
288 u64 propbase = GICR_PROPBASER_ADDRESS(kvm->arch.vgic.propbaser);
328 struct vgic_dist *dist = &kvm->arch.vgic;
603 struct vgic_dist *dist = &kvm->arch.vgic;
622 struct vgic_dist *dist = &kvm->arch.vgic;
678 struct vgic_dist *dist = &kvm->arch.vgic;
1127 lpi_nr >= max_lpis_propbaser(kvm->arch.vgic.propbaser))
1922 struct vgic_dist *dist = &kvm->arch.vgic;
[all...]
H A Dvgic-v2.c12 #include "vgic.h"
291 struct vgic_dist *dist = &kvm->arch.vgic;
296 kvm_debug("Need to set vgic cpu and dist addresses first\n");
306 * Initialize the vgic if this hasn't already been done on demand by
307 * accessing the vgic state from userspace.
391 kvm_debug("vgic-v2@%llx\n", info->vctrl.start);
/linux-master/include/kvm/
H A Darm_vgic.h49 /* Physical address of vgic virtual cpu interface */
285 /* used by vgic-debug */
393 #define irqchip_in_kernel(k) (!!((k)->arch.vgic.in_kernel))
394 #define vgic_initialized(k) ((k)->arch.vgic.initialized)
395 #define vgic_ready(k) ((k)->arch.vgic.ready)
397 ((i) < (k)->arch.vgic.nr_spis + VGIC_NR_PRIVATE_IRQS))
/linux-master/arch/arm64/kvm/hyp/nvhe/
H A DMakefile26 hyp-obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
/linux-master/arch/arm64/include/asm/
H A Dkvm_emulate.h116 vcpu->kvm->arch.vgic.nassgireq)
H A Dkvm_host.h268 struct vgic_dist vgic; member in struct:kvm_arch
/linux-master/tools/testing/selftests/kvm/aarch64/
H A Dvpmu_counter_access.c18 #include <vgic.h>
444 "Failed to create vgic-v3, skipping");
/linux-master/tools/testing/selftests/kvm/
H A DMakefile52 LIBKVM_aarch64 += lib/aarch64/vgic.c
/linux-master/drivers/irqchip/
H A Dirq-apple-aic.c53 #include <linux/irqchip/arm-vgic-info.h>

Completed in 205 milliseconds

12