forked from Minki/linux
1d916229e3
vgic.c is currently a mixture of generic vGIC emulation code and functions specific to emulating a GICv2. To ease the addition of GICv3, split off strictly v2 specific parts into a new file vgic-v2-emul.c. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Christoffer Dall <christoffer.dall@linaro.org> ------- As the diff isn't always obvious here (and to aid eventual rebases), here is a list of high-level changes done to the code: * added new file to respective arm/arm64 Makefiles * moved GICv2 specific functions to vgic-v2-emul.c: - handle_mmio_misc() - handle_mmio_set_enable_reg() - handle_mmio_clear_enable_reg() - handle_mmio_set_pending_reg() - handle_mmio_clear_pending_reg() - handle_mmio_priority_reg() - vgic_get_target_reg() - vgic_set_target_reg() - handle_mmio_target_reg() - handle_mmio_cfg_reg() - handle_mmio_sgi_reg() - vgic_v2_unqueue_sgi() - read_set_clear_sgi_pend_reg() - write_set_clear_sgi_pend_reg() - handle_mmio_sgi_set() - handle_mmio_sgi_clear() - vgic_v2_handle_mmio() - vgic_get_sgi_sources() - vgic_dispatch_sgi() - vgic_v2_queue_sgi() - vgic_v2_map_resources() - vgic_v2_init() - vgic_v2_add_sgi_source() - vgic_v2_init_model() - vgic_v2_init_emulation() - handle_cpu_mmio_misc() - handle_mmio_abpr() - handle_cpu_mmio_ident() - vgic_attr_regs_access() - vgic_create() (renamed to vgic_v2_create()) - vgic_destroy() (renamed to vgic_v2_destroy()) - vgic_has_attr() (renamed to vgic_v2_has_attr()) - vgic_set_attr() (renamed to vgic_v2_set_attr()) - vgic_get_attr() (renamed to vgic_v2_get_attr()) - struct kvm_mmio_range vgic_dist_ranges[] - struct kvm_mmio_range vgic_cpu_ranges[] - struct kvm_device_ops kvm_arm_vgic_v2_ops {} Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
27 lines
836 B
Makefile
27 lines
836 B
Makefile
#
|
|
# Makefile for Kernel-based Virtual Machine module
|
|
#
|
|
|
|
plus_virt := $(call as-instr,.arch_extension virt,+virt)
|
|
ifeq ($(plus_virt),+virt)
|
|
plus_virt_def := -DREQUIRES_VIRT=1
|
|
endif
|
|
|
|
ccflags-y += -Ivirt/kvm -Iarch/arm/kvm
|
|
CFLAGS_arm.o := -I. $(plus_virt_def)
|
|
CFLAGS_mmu.o := -I.
|
|
|
|
AFLAGS_init.o := -Wa,-march=armv7-a$(plus_virt)
|
|
AFLAGS_interrupts.o := -Wa,-march=armv7-a$(plus_virt)
|
|
|
|
KVM := ../../../virt/kvm
|
|
kvm-arm-y = $(KVM)/kvm_main.o $(KVM)/coalesced_mmio.o
|
|
|
|
obj-y += kvm-arm.o init.o interrupts.o
|
|
obj-y += arm.o handle_exit.o guest.o mmu.o emulate.o reset.o
|
|
obj-y += coproc.o coproc_a15.o coproc_a7.o mmio.o psci.o perf.o
|
|
obj-$(CONFIG_KVM_ARM_VGIC) += $(KVM)/arm/vgic.o
|
|
obj-$(CONFIG_KVM_ARM_VGIC) += $(KVM)/arm/vgic-v2.o
|
|
obj-$(CONFIG_KVM_ARM_VGIC) += $(KVM)/arm/vgic-v2-emul.o
|
|
obj-$(CONFIG_KVM_ARM_TIMER) += $(KVM)/arm/arch_timer.o
|