From: JunBin Li <lijunbin4(a)huawei.com>
virtCCA feature
JunBin Li (1):
coda part1
arch/arm64/Kconfig | 8 +
arch/arm64/configs/openeuler_defconfig | 5 +-
arch/arm64/include/asm/kvm_emulate.h | 18 +
arch/arm64/include/asm/kvm_host.h | 15 +-
arch/arm64/include/asm/kvm_tmi.h | 410 +++++++
arch/arm64/include/asm/kvm_tmm.h | 52 +-
arch/arm64/include/asm/set_memory.h | 1 +
arch/arm64/include/asm/virtcca_cvm_guest.h | 39 +
arch/arm64/include/uapi/asm/kvm.h | 4 +
arch/arm64/kernel/Makefile | 1 +
arch/arm64/kernel/virtcca_cvm_guest.c | 93 ++
arch/arm64/kvm/Kconfig | 6 +-
arch/arm64/kvm/Makefile | 3 +
arch/arm64/kvm/arch_timer.c | 92 ++
arch/arm64/kvm/arm.c | 136 ++-
arch/arm64/kvm/guest.c | 8 +
arch/arm64/kvm/mmio.c | 17 +-
arch/arm64/kvm/mmu.c | 30 +
arch/arm64/kvm/pmu-emul.c | 9 +
arch/arm64/kvm/psci.c | 12 +-
arch/arm64/kvm/reset.c | 13 +
arch/arm64/kvm/tmi.c | 279 +++++
arch/arm64/kvm/vgic/vgic-v3.c | 17 +-
arch/arm64/kvm/vgic/vgic.c | 55 +-
arch/arm64/kvm/virtcca_cvm.c | 1065 +++++++++++++++++
arch/arm64/kvm/virtcca_cvm_exit.c | 221 ++++
arch/arm64/mm/init.c | 3 +
arch/arm64/mm/mmu.c | 5 +-
arch/arm64/mm/pageattr.c | 3 +
drivers/iommu/arm/arm-smmu-v3/Makefile | 1 +
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c | 809 +++++++++++++
drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.h | 160 +++
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 178 ++-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 16 +
drivers/iommu/io-pgtable-arm.c | 60 +
drivers/iommu/iommu.c | 11 +
drivers/irqchip/irq-gic-v3-its.c | 231 +++-
drivers/pci/access.c | 33 +
drivers/pci/msi/msi.c | 90 +-
drivers/perf/arm_pmu.c | 17 +
drivers/vfio/pci/vfio_pci_core.c | 5 +
drivers/vfio/pci/vfio_pci_rdwr.c | 61 +
drivers/vfio/vfio_iommu_type1.c | 17 +
drivers/vfio/vfio_main.c | 18 +
include/kvm/arm_arch_timer.h | 4 +
include/linux/iommu.h | 9 +
include/linux/iopoll.h | 38 +
include/linux/kvm_host.h | 22 +
include/linux/pci.h | 4 +
include/linux/perf/arm_pmu.h | 4 +
include/linux/vfio.h | 5 +
include/uapi/linux/kvm.h | 13 +
include/uapi/linux/vfio.h | 3 +
kernel/dma/swiotlb.c | 16 +
virt/kvm/kvm_main.c | 4 +
virt/kvm/vfio.c | 121 +-
virt/kvm/vfio.h | 10 +
57 files changed, 4511 insertions(+), 69 deletions(-)
create mode 100644 arch/arm64/include/asm/kvm_tmi.h
create mode 100644 arch/arm64/include/asm/virtcca_cvm_guest.h
create mode 100644 arch/arm64/kernel/virtcca_cvm_guest.c
create mode 100644 arch/arm64/kvm/tmi.c
create mode 100644 arch/arm64/kvm/virtcca_cvm.c
create mode 100644 arch/arm64/kvm/virtcca_cvm_exit.c
create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.c
create mode 100644 drivers/iommu/arm/arm-smmu-v3/arm-s-smmu-v3.h
--
2.25.1