Hi All.

This patch aims to add GICv3 support to the New VGIC. It adds support for
the GICv3 distributor, redistributor, sysreg and ITS interfaces. This will
allow Xen to emulate level-triggered interrupts with GICVb3 and will make
the NEW_VGIC more complete and usable.

The bulk of the code is taken from the Linux Kernel v6.0 and adapted to the
existing Xen codebase.

For the NEW_VGIC config the !GIC_V3 dependency is removed.
For the HAS_ITS config the deprecated flag is removed and NEW_VGIC dependency
is added.

Original non-ported changes are:
- Moving the GICv3 distributor base to fix the new_vgic's intid calculation.
- Moving the get/put irq to a wider scope to properly integrate the ITS.

Mykyta Poturai (4):
  arm/gicv3: Move guest dist base
  arm/vgic: Move get/put irq to a wider scope
  arm/new vgic: Add GICv3 support for NEW VGIC
  arm/new vgic: Add ITS support to NEW_VGIC

 xen/arch/arm/Kconfig                   |    5 +-
 xen/arch/arm/domain_build.c            |   23 +-
 xen/arch/arm/gic-v3-its.c              |   28 +
 xen/arch/arm/gic-v3-lpi.c              |   11 +
 xen/arch/arm/gic-v3.c                  |    9 +
 xen/arch/arm/include/asm/gic_v3_defs.h |   13 +-
 xen/arch/arm/include/asm/gic_v3_its.h  |   82 +
 xen/arch/arm/include/asm/new_vgic.h    |   96 +-
 xen/arch/arm/include/asm/vgic.h        |    6 +
 xen/arch/arm/vgic/Makefile             |    3 +
 xen/arch/arm/vgic/vgic-init.c          |   19 +-
 xen/arch/arm/vgic/vgic-its.c           | 1945 ++++++++++++++++++++++++
 xen/arch/arm/vgic/vgic-mmio-v3.c       | 1027 +++++++++++++
 xen/arch/arm/vgic/vgic-mmio.c          |   24 +
 xen/arch/arm/vgic/vgic-mmio.h          |   21 +
 xen/arch/arm/vgic/vgic-v3.c            |  383 +++++
 xen/arch/arm/vgic/vgic.c               |   60 +-
 xen/arch/arm/vgic/vgic.h               |   51 +-
 xen/include/public/arch-arm.h          |    2 +-
 19 files changed, 3774 insertions(+), 34 deletions(-)
 create mode 100644 xen/arch/arm/vgic/vgic-its.c
 create mode 100644 xen/arch/arm/vgic/vgic-mmio-v3.c
 create mode 100644 xen/arch/arm/vgic/vgic-v3.c

-- 
2.34.1

Reply via email to