This patch series reprensent a bunch of patches necessary to enable common part
of Dom0less.
The stuff necessary to start/launch domains will be introduced separately.
---
Changes in v3:
- Drop dependency from other patch series
([1] https://lore.kernel.org/xen-devel/cover.1778140240.git.oleksii.kurochko@gmail.com/T/#t)
as it was merged.
- Reorder patches:
- move common patches to the start.
- Move some patches to separate patch series (will be introduced later)
- Address comments from ML.
---
Changes in v2:
- Move patch "[PATCH v1 04/27] xen/riscv: rework G-stage mode handling" to
patch series [1]
- Address the comments from ML.
- The following patches were folded into one:
# xen/riscv: implement init_intc_phandle()
# xen/riscv: call do_initcalls() in start_xen()
# xen/riscv: setup system domains
- The following patch were folded into one:
# xen/riscv: add vaplic access check
# xen/riscv: emulate guest writes to virtual APLIC MMIO
# xen/riscv: emulate guest reads from virtual APLIC MMIO
- Add new bug fix, not really necessary to this patch series:
xen/riscv: manage IRQ_DISABLED flag in APLIC irq enable/disable callbacks
---
Oleksii Kurochko (23):
xen: arm: move declaration of map_device_irqs_to_domain() to common
header
xen: arm: update p2m_set_allocation() prototype
xen/riscv: Implement ARCH_PAGING_MEMPOOL
xen/riscv: Implement construct_domain()
xen/riscv: implement prerequisites for domain_create()
xen/riscv: introduce guest riscv,isa string
xen/riscv: implement make_cpus_node()
xen/riscv: implement make_timer_node()
xen/riscv: implement make_arch_nodes()
xen/riscv: introduce init interrupt controller operations
xen/riscv: implement make_intc_domU_node()
xen/riscv: introduce aia_init() and aia_usable()
xen/riscv: introduce per-vCPU IMSIC state
xen/riscv: add very early virtual APLIC (vAPLIC) initialization
support
xen/riscv: introduce (de)initialization helpers for vINTC
xen/riscv: generate IMSIC DT node for guest domains
xen/riscv: create APLIC DT node for guest domains
xen/riscv: implement IRQ routing for device passthrough
xen/riscv: implement init_intc_phandle()
xen/riscv: initialize RCU, scheduler, and system domains in
start_xen()
xen/riscv: provide init_vuart()
xen/Kconfig: introduce HAS_STATIC_MEMORY
xen/riscv: add initial dom0less infrastructure support
...asic-VGEIN-management-for-AIA-guests.patch | 273 ++++++++++++++++++
xen/arch/arm/Kconfig | 1 +
xen/arch/arm/include/asm/p2m.h | 1 -
xen/arch/arm/include/asm/setup.h | 3 -
xen/arch/arm/mmu/p2m.c | 22 +-
xen/arch/riscv/Kconfig | 3 +
xen/arch/riscv/Makefile | 4 +
xen/arch/riscv/aia.c | 23 ++
xen/arch/riscv/aplic.c | 14 +-
xen/arch/riscv/cpufeature.c | 85 +++++-
xen/arch/riscv/device.c | 102 +++++++
xen/arch/riscv/dom0less-build.c | 40 +++
xen/arch/riscv/domain-build.c | 177 ++++++++++++
xen/arch/riscv/domain.c | 46 ++-
xen/arch/riscv/imsic.c | 167 +++++++++++
xen/arch/riscv/include/asm/aia.h | 10 +
xen/arch/riscv/include/asm/aplic.h | 9 +
xen/arch/riscv/include/asm/cpufeature.h | 4 +
xen/arch/riscv/include/asm/domain.h | 8 +
xen/arch/riscv/include/asm/guest-layout.h | 7 +
xen/arch/riscv/include/asm/imsic.h | 25 ++
xen/arch/riscv/include/asm/intc.h | 46 ++-
xen/arch/riscv/include/asm/irq.h | 5 +
xen/arch/riscv/include/asm/paging.h | 2 +-
xen/arch/riscv/include/asm/setup.h | 4 +-
xen/arch/riscv/include/asm/vaplic.h | 34 +++
xen/arch/riscv/intc.c | 103 ++++++-
xen/arch/riscv/irq.c | 203 +++++++++++++
xen/arch/riscv/p2m.c | 31 +-
xen/arch/riscv/paging.c | 7 +-
xen/arch/riscv/setup.c | 14 +
xen/arch/riscv/stubs.c | 17 --
xen/arch/riscv/vaplic.c | 141 +++++++++
xen/common/Kconfig | 5 +-
xen/common/device-tree/dom0less-build.c | 2 +-
xen/include/xen/fdt-domain-build.h | 13 +
xen/include/xen/p2m-common.h | 2 +
37 files changed, 1587 insertions(+), 66 deletions(-)
create mode 100644 0001-xen-riscv-add-basic-VGEIN-management-for-AIA-guests.patch
create mode 100644 xen/arch/riscv/aia.c
create mode 100644 xen/arch/riscv/device.c
create mode 100644 xen/arch/riscv/domain-build.c
create mode 100644 xen/arch/riscv/include/asm/aia.h
create mode 100644 xen/arch/riscv/include/asm/vaplic.h
create mode 100644 xen/arch/riscv/vaplic.c
--
2.54.0