/linux-4.1.27/virt/kvm/arm/ |
D | vgic-v3.c | 52 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) in vgic_v3_get_lr() 59 vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V2) in vgic_v3_get_lr() 87 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) in vgic_v3_set_lr() 187 if (vcpu->kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3) in vgic_v3_enable() 230 struct vgic_params *vgic = &vgic_v3_params; in vgic_v3_probe() local 232 vgic->maint_irq = irq_of_parse_and_map(vgic_node, 0); in vgic_v3_probe() 233 if (!vgic->maint_irq) { in vgic_v3_probe() 245 vgic->nr_lr = (ich_vtr_el2 & 0xf) + 1; in vgic_v3_probe() 246 vgic->can_emulate_gicv2 = false; in vgic_v3_probe() 254 vgic->vcpu_base = 0; in vgic_v3_probe() [all …]
|
D | vgic-v2.c | 186 struct vgic_params *vgic = &vgic_v2_params; in vgic_v2_probe() local 188 vgic->maint_irq = irq_of_parse_and_map(vgic_node, 0); in vgic_v2_probe() 189 if (!vgic->maint_irq) { in vgic_v2_probe() 201 vgic->vctrl_base = of_iomap(vgic_node, 2); in vgic_v2_probe() 202 if (!vgic->vctrl_base) { in vgic_v2_probe() 208 vgic->nr_lr = readl_relaxed(vgic->vctrl_base + GICH_VTR); in vgic_v2_probe() 209 vgic->nr_lr = (vgic->nr_lr & 0x3f) + 1; in vgic_v2_probe() 211 ret = create_hyp_io_mappings(vgic->vctrl_base, in vgic_v2_probe() 212 vgic->vctrl_base + resource_size(&vctrl_res), in vgic_v2_probe() 240 vgic->can_emulate_gicv2 = true; in vgic_v2_probe() [all …]
|
D | vgic.c | 89 static const struct vgic_params *vgic; variable 93 vcpu->kvm->arch.vgic.vm_ops.add_sgi_source(vcpu, irq, source); in add_sgi_source() 98 return vcpu->kvm->arch.vgic.vm_ops.queue_sgi(vcpu, irq); in queue_sgi() 103 return kvm->arch.vgic.vm_ops.map_resources(kvm, vgic); in kvm_vgic_map_resources() 248 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_edge() 257 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_enabled() 264 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_queued() 271 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_is_active() 278 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_set_queued() 285 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in vgic_irq_clear_queued() [all …]
|
D | vgic-v2-emul.c | 51 reg = vcpu->kvm->arch.vgic.enabled; in handle_mmio_misc() 55 vcpu->kvm->arch.vgic.enabled = reg & 1; in handle_mmio_misc() 63 reg |= (vcpu->kvm->arch.vgic.nr_irqs >> 5) - 1; in handle_mmio_misc() 130 u32 *reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg() 142 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_get_target_reg() 156 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_set_target_reg() 221 reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg() 248 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in read_set_clear_sgi_pend_reg() 270 struct vgic_dist *dist = &vcpu->kvm->arch.vgic; in write_set_clear_sgi_pend_reg() 410 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_dispatch_sgi() [all …]
|
D | vgic-v3-emul.c | 72 if (vcpu->kvm->arch.vgic.enabled) in handle_mmio_ctlr() 81 vcpu->kvm->arch.vgic.enabled = !!(reg & GICD_CTLR_ENABLE_SS_G1); in handle_mmio_ctlr() 100 reg = (min(vcpu->kvm->arch.vgic.nr_irqs, 1024) >> 5) - 1; in handle_mmio_typer() 188 reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg_dist() 207 reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg_dist() 255 struct vgic_dist *dist = &kvm->arch.vgic; in handle_mmio_route_reg() 591 reg = vgic_bytemap_get_reg(&vcpu->kvm->arch.vgic.irq_priority, in handle_mmio_priority_reg_redist() 604 u32 *reg = vgic_bitmap_get_reg(&vcpu->kvm->arch.vgic.irq_cfg, in handle_mmio_cfg_reg_redist() 726 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v3_map_resources() 801 struct vgic_dist *dist = &kvm->arch.vgic; in vgic_v3_init_model() [all …]
|
/linux-4.1.27/arch/arm64/kvm/ |
D | Makefile | 22 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic.o 23 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v2.o 24 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v2-emul.o 25 kvm-$(CONFIG_KVM_ARM_HOST) += vgic-v2-switch.o 26 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v3.o 27 kvm-$(CONFIG_KVM_ARM_HOST) += $(KVM)/arm/vgic-v3-emul.o 28 kvm-$(CONFIG_KVM_ARM_HOST) += vgic-v3-switch.o
|
/linux-4.1.27/arch/arm/kvm/ |
D | Makefile | 23 obj-y += $(KVM)/arm/vgic.o 24 obj-y += $(KVM)/arm/vgic-v2.o 25 obj-y += $(KVM)/arm/vgic-v2-emul.o
|
/linux-4.1.27/arch/arm/include/asm/ |
D | kvm_host.h | 72 struct vgic_dist vgic; member 221 static inline void vgic_arch_setup(const struct vgic_params *vgic) in vgic_arch_setup() argument 223 BUG_ON(vgic->type != VGIC_V2); in vgic_arch_setup()
|
/linux-4.1.27/arch/arm64/include/asm/ |
D | kvm_host.h | 68 struct vgic_dist vgic; member 224 static inline void vgic_arch_setup(const struct vgic_params *vgic) in vgic_arch_setup() argument 228 switch(vgic->type) in vgic_arch_setup()
|
/linux-4.1.27/include/kvm/ |
D | arm_vgic.h | 331 #define irqchip_in_kernel(k) (!!((k)->arch.vgic.in_kernel)) 332 #define vgic_initialized(k) (!!((k)->arch.vgic.nr_cpus)) 333 #define vgic_ready(k) ((k)->arch.vgic.ready)
|
/linux-4.1.27/arch/arm64/kernel/ |
D | asm-offsets.c | 149 DEFINE(KVM_VGIC_VCTRL, offsetof(struct kvm, arch.vgic.vctrl_base)); in main()
|
/linux-4.1.27/Documentation/virtual/kvm/devices/ |
D | arm-vgic.txt | 116 -ENOMEM: memory shortage when allocating vgic internal data
|
/linux-4.1.27/arch/arm/kernel/ |
D | asm-offsets.c | 206 DEFINE(KVM_VGIC_VCTRL, offsetof(struct kvm, arch.vgic.vctrl_base)); in main()
|