Hello everyone!
This is V8 of the patch series that introduces eSPI (Extended SPI) support.
Compared to V7, it mainly includes fixes for MISRA rules violations and
cautions, several minor changes, and the addition of Reviewed-by/Acked-by tags.
The series includes:
1) General refactoring of common IRQ operations with GIC registers to
improve code readability, simplify further maintenance and prepare the
key functions for eSPI implementation.
2) Introducing a new Kconfig option (default n) to enable or disable
eSPI support. Disabling this option prevents unnecessary resource
allocation for setups that do not require eSPIs.
3) Adding additional resources to store required information and operate
with up to 1024 interrupts from eSPI range.
4) Adjusting assertions and checks to pass verification for INTIDs in
the eSPI range.
5) Configuration of eSPI-specific registers during GIC initialization
for systems with GICv3.1+ hardware.
6) Enables eSPI MMIO emulation for vGIC, allowing guest domains to
access and operate within the eSPI's INTIDs.
7) Updating documentation and CHANGELOG to reflect the changes made for eSPI
support.
Also, to simplify reviewing, please find below link to unsquashed patches, that
are on top of every patch, that is changed in the series, compared to V7:
https://github.com/LKomaryanskiy/xen/commits/espi-support-master-upstream-v8-unsquashed-v2/
Github branch with patch series:
https://github.com/LKomaryanskiy/xen/commits/espi-support-master-upstream-v8/
Changes in V8:
- individual changes in patches
Link on V7:
- https://lists.xenproject.org/archives/html/xen-devel/2025-09/msg00405.html
Changes in V7:
- individual changes in patches
Link on V6:
- https://lists.xenproject.org/archives/html/xen-devel/2025-09/msg00296.html
Changes in V6:
- individual changes in patches
Link on V5:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg02086.html
Changes in V5:
- individual changes in patches
Link on V4:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg01767.html
Changes in V4:
- added a patch for documentation
- individual changes in patches
Link on V3:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg01628.html
Changes in V3:
- added a patch to update CHANGELOG.md
- individual changes in patches
Link on V2:
- https://lists.xenproject.org/archives/html/xen-devel/2025-08/msg00372.html
Changes in V2:
- added 2 more patches to implement helper
functions for gic/vgic:
xen/arm: gic: implement helper functions for INTID checks
xen/arm: vgic: implement helper functions for virq checks
- removed 2 patches:
xen/arm/irq: allow assignment/releasing of eSPI interrupts
xen/arm: gic/irq: permit routing of eSPI interrupts to Xen and domains
since their functionality can be moved to appropriate patches after
introducing patches with helper functions
- individual changes in patches
Link on V1:
- https://lists.xenproject.org/archives/html/xen-devel/2025-07/msg01809.html
Leonid Komarianskyi (12):
xen/arm: gicv3: refactor obtaining GIC addresses for common operations
xen/arm: gic: implement helper functions for INTID checks
xen/arm: vgic: implement helper functions for virq checks
xen/arm/irq: add handling for IRQs in the eSPI range
xen/arm: gicv3: implement handling of GICv3.1 eSPI
xen/arm/irq: allow eSPI processing in the gic_interrupt function
xen/arm: gicv3: modify ICH_LR_PHYSICAL_MASK to allow eSPI processing
xen/arm: vgic: add resource management for extended SPIs
xen/arm: domain_build/dom0less-build: adjust domains config to support
eSPIs
xen/arm: vgic-v3: add emulation of GICv3.1 eSPI registers
doc/man: update description for nr_spis with eSPI
CHANGELOG.md: add mention of GICv3.1 eSPI support
CHANGELOG.md | 2 +
docs/man/xl.cfg.5.pod.in | 13 +-
xen/arch/arm/Kconfig | 8 +
xen/arch/arm/dom0less-build.c | 2 +-
xen/arch/arm/domain_build.c | 2 +-
xen/arch/arm/gic-v3.c | 209 +++++++++++++++++++----
xen/arch/arm/gic.c | 8 +-
xen/arch/arm/include/asm/gic.h | 28 ++++
xen/arch/arm/include/asm/gic_v3_defs.h | 40 ++++-
xen/arch/arm/include/asm/irq.h | 38 +++++
xen/arch/arm/include/asm/vgic.h | 56 ++++++-
xen/arch/arm/irq.c | 55 +++++-
xen/arch/arm/vgic-v3.c | 203 +++++++++++++++++-----
xen/arch/arm/vgic.c | 222 +++++++++++++++++++++++--
xen/arch/arm/vgic/vgic.c | 5 +
15 files changed, 777 insertions(+), 114 deletions(-)
--
2.34.1