/linux-master/arch/arm64/kvm/ |
H A D | Makefile | 16 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 D | vgic-v2-cpuif-proxy.c | 40 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 D | Makefile | 10 obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
|
/linux-master/include/linux/irqchip/ |
H A D | arm-gic-common.h | 10 #include <linux/irqchip/arm-vgic-info.h>
|
/linux-master/arch/arm64/kvm/vgic/ |
H A D | vgic-debug.c | 14 #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 D | vgic-init.c | 13 #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 D | trace.h | 33 #define TRACE_INCLUDE_PATH ../../arch/arm64/kvm/vgic
|
H A D | vgic-kvm-device.c | 13 #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 D | vgic-mmio-v2.c | 14 #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 D | vgic-v3.c | 14 #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 D | vgic-mmio-v3.c | 18 #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 D | vgic-v4.c | 13 #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 D | vgic-mmio.c | 16 #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 D | vgic.c | 15 #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 D | vgic.h | 38 * 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 D | vgic-irqfd.c | 10 #include "vgic.h" 125 * as long as the damn vgic is initialized. 138 struct vgic_dist *dist = &kvm->arch.vgic;
|
H A D | vgic-its.c | 23 #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 D | vgic-v2.c | 12 #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 D | arm_vgic.h | 49 /* 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 D | Makefile | 26 hyp-obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \
|
/linux-master/arch/arm64/include/asm/ |
H A D | kvm_emulate.h | 116 vcpu->kvm->arch.vgic.nassgireq)
|
H A D | kvm_host.h | 268 struct vgic_dist vgic; member in struct:kvm_arch
|
/linux-master/tools/testing/selftests/kvm/aarch64/ |
H A D | vpmu_counter_access.c | 18 #include <vgic.h> 444 "Failed to create vgic-v3, skipping");
|
/linux-master/tools/testing/selftests/kvm/ |
H A D | Makefile | 52 LIBKVM_aarch64 += lib/aarch64/vgic.c
|
/linux-master/drivers/irqchip/ |
H A D | irq-apple-aic.c | 53 #include <linux/irqchip/arm-vgic-info.h>
|