Hi,
this is a rebase of "wip/new-cpu-config" branch of Jan. We will need
these patches for RISC-V support, which will land on the list soon.
Basically, this series adds support for both: logical and physical CPU
IDs in Jailhouse.
Thanks
Ralf
Jan Kiszka (20):
core: Add internal event check before hypervisor activation
core: Skip arch_flush_cell_vcpu_caches during setup
x86: Do not kick targets of vcpu cache flushes
core: Clarify invocation context of arch_flush_cell_vcpu_caches
core: Convert config_commit into a unit callback
arm64: Update unit link order comment and save a line
arm, arm64: Make GICv3 arm64-only
x86: Rename CPU_ID_INVALID to APIC_INVALID_CPU
core: Beautify for_each_cpu helper
core: Use statically sized cpu sets
core: Move cell_init() of root cell from init_early to init_late
core: Change CPU configuration to an array of structures
driver: Convert to new CPU configuration format
core: Convert to new CPU configuration format
tools: Convert to new CPU configuration format
configs: x86: Convert to new CPU configuration format
configs: arm: Convert to new CPU configuration format
configs: arm64: Convert to new CPU configuration format
core: Optimize parsing of large CPU sets
RISC-V cornerstone
configs/arm/bananapi-inmate-demo.c | 10 +-
configs/arm/bananapi-linux-demo.c | 10 +-
configs/arm/bananapi.c | 13 ++-
configs/arm/emtrion-rzg1e-inmate-demo.c | 8 +-
configs/arm/emtrion-rzg1e-linux-demo.c | 8 +-
configs/arm/emtrion-rzg1e.c | 11 +-
configs/arm/emtrion-rzg1h-inmate-demo.c | 8 +-
configs/arm/emtrion-rzg1h-linux-demo.c | 8 +-
configs/arm/emtrion-rzg1h.c | 29 ++++-
configs/arm/emtrion-rzg1m-inmate-demo.c | 8 +-
configs/arm/emtrion-rzg1m-linux-demo.c | 8 +-
configs/arm/emtrion-rzg1m.c | 11 +-
configs/arm/jetson-tk1-inmate-demo.c | 10 +-
configs/arm/jetson-tk1-linux-demo.c | 13 ++-
configs/arm/jetson-tk1.c | 19 +++-
configs/arm/orangepi0-inmate-demo.c | 10 +-
configs/arm/orangepi0-linux-demo.c | 13 ++-
configs/arm/orangepi0.c | 19 +++-
configs/arm/qemu-arm-inmate-demo.c | 10 +-
configs/arm/qemu-arm-linux-demo.c | 13 ++-
configs/arm/qemu-arm.c | 31 ++++-
configs/arm64/amd-seattle-inmate-demo.c | 8 +-
configs/arm64/amd-seattle-linux-demo.c | 11 +-
configs/arm64/amd-seattle.c | 29 ++++-
configs/arm64/espressobin-inmate-demo.c | 10 +-
configs/arm64/espressobin-linux-demo.c | 10 +-
configs/arm64/espressobin.c | 13 ++-
configs/arm64/foundation-v8-inmate-demo.c | 8 +-
configs/arm64/foundation-v8-linux-demo.c | 11 +-
configs/arm64/foundation-v8.c | 17 ++-
configs/arm64/hikey-inmate-demo.c | 10 +-
configs/arm64/hikey-linux-demo.c | 13 ++-
configs/arm64/hikey.c | 31 ++++-
configs/arm64/imx8dxl-inmate-demo.c | 8 +-
configs/arm64/imx8dxl.c | 13 ++-
configs/arm64/imx8mm-inmate-demo.c | 8 +-
configs/arm64/imx8mm-linux-demo.c | 11 +-
configs/arm64/imx8mm.c | 19 +++-
configs/arm64/imx8mn-inmate-demo.c | 8 +-
configs/arm64/imx8mn-linux-demo.c | 11 +-
configs/arm64/imx8mn.c | 19 +++-
configs/arm64/imx8mp-inmate-demo.c | 8 +-
configs/arm64/imx8mp-linux-demo.c | 11 +-
configs/arm64/imx8mp.c | 19 +++-
configs/arm64/imx8mq-inmate-demo.c | 8 +-
configs/arm64/imx8mq-linux-demo.c | 11 +-
configs/arm64/imx8mq.c | 19 +++-
configs/arm64/imx8qm-inmate-demo.c | 8 +-
configs/arm64/imx8qm-linux-demo.c | 11 +-
configs/arm64/imx8qm.c | 25 ++++-
configs/arm64/jetson-tx1-inmate-demo.c | 8 +-
configs/arm64/jetson-tx1-linux-demo.c | 11 +-
configs/arm64/jetson-tx1.c | 17 ++-
configs/arm64/jetson-tx2-inmate-demo.c | 8 +-
configs/arm64/jetson-tx2.c | 17 ++-
configs/arm64/k3-am625-sk-inmate-demo.c | 8 +-
configs/arm64/k3-am625-sk-linux-demo.c | 14 ++-
configs/arm64/k3-am625-sk.c | 17 ++-
configs/arm64/k3-am654-idk-linux-demo.c | 11 +-
configs/arm64/k3-am654-idk.c | 17 ++-
configs/arm64/k3-am654-inmate-demo.c | 8 +-
configs/arm64/k3-j7200-evm-inmate-demo.c | 8 +-
configs/arm64/k3-j7200-evm-linux-demo.c | 8 +-
configs/arm64/k3-j7200-evm.c | 11 +-
configs/arm64/k3-j721e-evm-inmate-demo.c | 8 +-
configs/arm64/k3-j721e-evm-linux-demo.c | 8 +-
configs/arm64/k3-j721e-evm.c | 11 +-
configs/arm64/ls1028a-rdb-inmate-demo.c | 8 +-
configs/arm64/ls1028a-rdb-linux-demo.c | 8 +-
configs/arm64/ls1028a-rdb.c | 13 ++-
configs/arm64/ls1043a-rdb-dpaa-linux-demo.c | 11 +-
configs/arm64/ls1043a-rdb-inmate-demo.c | 8 +-
configs/arm64/ls1043a-rdb-linux-demo.c | 11 +-
configs/arm64/ls1043a-rdb.c | 19 +++-
configs/arm64/ls1046a-rdb-inmate-demo.c | 8 +-
configs/arm64/ls1046a-rdb-linux-demo.c | 11 +-
configs/arm64/ls1046a-rdb.c | 19 +++-
configs/arm64/ls1088a-rdb-inmate-demo.c | 8 +-
configs/arm64/ls1088a-rdb-linux-demo.c | 11 +-
configs/arm64/ls1088a-rdb.c | 29 ++++-
configs/arm64/ls2088a-rdb-inmate-demo.c | 8 +-
configs/arm64/ls2088a-rdb-linux-demo.c | 11 +-
configs/arm64/ls2088a-rdb.c | 29 ++++-
configs/arm64/macchiatobin-inmate-demo.c | 10 +-
configs/arm64/macchiatobin-linux-demo.c | 13 ++-
configs/arm64/macchiatobin.c | 19 +++-
.../arm64/miriac-sbc-ls1046a-inmate-demo.c | 8 +-
configs/arm64/miriac-sbc-ls1046a-linux-demo.c | 11 +-
configs/arm64/miriac-sbc-ls1046a.c | 17 ++-
configs/arm64/pine64-plus-inmate-demo.c | 8 +-
configs/arm64/pine64-plus-linux-demo.c | 11 +-
configs/arm64/pine64-plus.c | 17 ++-
configs/arm64/qemu-arm64-inmate-demo.c | 10 +-
configs/arm64/qemu-arm64-linux-demo.c | 13 ++-
configs/arm64/qemu-arm64-zephyr-demo.c | 11 +-
configs/arm64/qemu-arm64.c | 55 ++++++++-
configs/arm64/rpi4-inmate-demo.c | 10 +-
configs/arm64/rpi4-linux-demo.c | 13 ++-
configs/arm64/rpi4.c | 19 +++-
configs/arm64/ultra96-inmate-demo.c | 10 +-
configs/arm64/ultra96-linux-demo.c | 13 ++-
configs/arm64/ultra96.c | 19 +++-
configs/arm64/zynqmp-zcu102-inmate-demo.c | 10 +-
configs/arm64/zynqmp-zcu102-linux-demo-2.c | 10 +-
configs/arm64/zynqmp-zcu102-linux-demo.c | 13 ++-
configs/arm64/zynqmp-zcu102.c | 19 +++-
configs/riscv/qemu-riscv64.c | 65 +++++++++++
configs/x86/apic-demo.c | 10 +-
configs/x86/e1000-demo.c | 10 +-
configs/x86/f2a88xm-hd3.c | 19 +++-
configs/x86/imb-a180.c | 19 +++-
configs/x86/ioapic-demo.c | 10 +-
configs/x86/ivshmem-demo.c | 10 +-
configs/x86/linux-x86-demo.c | 13 ++-
configs/x86/pci-demo.c | 10 +-
configs/x86/qemu-x86.c | 19 +++-
configs/x86/smp-demo.c | 16 ++-
configs/x86/tiny-demo.c | 10 +-
driver/cell.c | 20 +++-
driver/main.c | 98 +++++++++-------
driver/main.h | 5 +-
driver/sysfs.c | 20 ++--
hypervisor/arch/arm-common/Kbuild | 4 +-
hypervisor/arch/arm-common/control.c | 22 ++--
hypervisor/arch/arm-common/gic-v2.c | 2 +-
hypervisor/arch/arm-common/include/asm/gic.h | 1 -
.../arch/arm-common/include/asm/iommu.h | 1 -
.../arch/arm-common/include/asm/irqchip.h | 2 -
hypervisor/arch/arm-common/irqchip.c | 8 +-
hypervisor/arch/arm-common/lib.c | 6 +-
hypervisor/arch/arm-common/psci.c | 13 +--
hypervisor/arch/arm/include/asm/arch_gicv3.h | 53 ---------
hypervisor/arch/arm/include/asm/types.h | 4 +-
hypervisor/arch/arm/iommu.c | 4 -
hypervisor/arch/arm/traps.c | 13 +--
hypervisor/arch/arm64/Kbuild | 9 +-
.../arch/{arm-common => arm64}/gic-v3.c | 48 ++++----
.../arch/arm64/include/asm/arch_gicv3.h | 30 -----
.../include/asm/gic_v3.h | 10 +-
hypervisor/arch/arm64/include/asm/ti-pvu.h | 2 -
hypervisor/arch/arm64/include/asm/types.h | 2 +
hypervisor/arch/arm64/iommu.c | 7 --
hypervisor/arch/arm64/paging.c | 5 +-
hypervisor/arch/arm64/smmu-v3.c | 1 +
hypervisor/arch/arm64/smmu.c | 7 +-
hypervisor/arch/arm64/ti-pvu.c | 14 +--
hypervisor/arch/arm64/traps.c | 2 +-
hypervisor/arch/riscv/Kbuild | 17 +++
hypervisor/arch/riscv/Makefile | 13 +++
hypervisor/arch/riscv/asm-defines.c | 19 ++++
hypervisor/arch/riscv/control.c | 78 +++++++++++++
hypervisor/arch/riscv/dbg-write.c | 17 +++
hypervisor/arch/riscv/entry.S | 17 +++
hypervisor/arch/riscv/include/asm/bitops.h | 37 ++++++
hypervisor/arch/riscv/include/asm/cell.h | 24 ++++
hypervisor/arch/riscv/include/asm/control.h | 0
.../smmu.h => riscv/include/asm/ivshmem.h} | 10 +-
.../arch/riscv/include/asm/jailhouse_header.h | 14 +++
hypervisor/arch/riscv/include/asm/mmio.h | 0
hypervisor/arch/riscv/include/asm/paging.h | 54 +++++++++
.../arch/riscv/include/asm/paging_modes.h | 0
hypervisor/arch/riscv/include/asm/percpu.h | 23 ++++
hypervisor/arch/riscv/include/asm/processor.h | 33 ++++++
hypervisor/arch/riscv/include/asm/sections.h | 14 +++
hypervisor/arch/riscv/include/asm/spinlock.h | 27 +++++
hypervisor/arch/riscv/include/asm/types.h | 14 +++
hypervisor/arch/riscv/ivshmem.c | 29 +++++
hypervisor/arch/riscv/lib.c | 19 ++++
hypervisor/arch/riscv/paging.c | 23 ++++
hypervisor/arch/riscv/pci.c | 49 ++++++++
hypervisor/arch/riscv/setup.c | 32 ++++++
hypervisor/arch/x86/amd_iommu.c | 4 +-
hypervisor/arch/x86/apic.c | 24 ++--
hypervisor/arch/x86/cat.c | 5 +-
hypervisor/arch/x86/control.c | 26 ++---
hypervisor/arch/x86/include/asm/apic.h | 4 +-
hypervisor/arch/x86/include/asm/control.h | 4 +-
hypervisor/arch/x86/include/asm/ioapic.h | 4 +-
hypervisor/arch/x86/include/asm/iommu.h | 2 -
hypervisor/arch/x86/include/asm/types.h | 4 +-
hypervisor/arch/x86/ioapic.c | 4 +-
hypervisor/arch/x86/iommu.c | 4 +-
hypervisor/arch/x86/svm.c | 6 +-
hypervisor/arch/x86/test-device.c | 3 +-
hypervisor/arch/x86/vmx.c | 4 +-
hypervisor/arch/x86/vtd.c | 4 +-
hypervisor/control.c | 106 +++++++++---------
hypervisor/include/jailhouse/cell.h | 8 +-
hypervisor/include/jailhouse/control.h | 31 +++--
hypervisor/include/jailhouse/pci.h | 4 +-
hypervisor/include/jailhouse/percpu.h | 4 +-
hypervisor/include/jailhouse/processor.h | 4 +-
hypervisor/include/jailhouse/types.h | 14 +--
hypervisor/include/jailhouse/unit.h | 7 +-
hypervisor/pci.c | 11 +-
hypervisor/setup.c | 22 ++--
include/arch/riscv/asm/jailhouse_hypercall.h | 68 +++++++++++
include/jailhouse/cell-config.h | 22 ++--
inmates/demos/riscv/Makefile | 0
inmates/lib/riscv/Makefile | 0
inmates/tests/riscv/Makefile | 0
inmates/tools/riscv/Makefile | 0
pyjailhouse/config_parser.py | 13 ++-
pyjailhouse/sysfs_parser.py | 20 +++-
scripts/include.mk | 3 +
tools/jailhouse-config-create | 14 +--
tools/root-cell-config.c.tmpl | 15 ++-
207 files changed, 2206 insertions(+), 848 deletions(-)
create mode 100644 configs/riscv/qemu-riscv64.c
delete mode 100644 hypervisor/arch/arm/include/asm/arch_gicv3.h
rename hypervisor/arch/{arm-common => arm64}/gic-v3.c (95%)
delete mode 100644 hypervisor/arch/arm64/include/asm/arch_gicv3.h
rename hypervisor/arch/{arm-common => arm64}/include/asm/gic_v3.h (94%)
create mode 100644 hypervisor/arch/riscv/Kbuild
create mode 100644 hypervisor/arch/riscv/Makefile
create mode 100644 hypervisor/arch/riscv/asm-defines.c
create mode 100644 hypervisor/arch/riscv/control.c
create mode 100644 hypervisor/arch/riscv/dbg-write.c
create mode 100644 hypervisor/arch/riscv/entry.S
create mode 100644 hypervisor/arch/riscv/include/asm/bitops.h
create mode 100644 hypervisor/arch/riscv/include/asm/cell.h
create mode 100644 hypervisor/arch/riscv/include/asm/control.h
rename hypervisor/arch/{arm64/include/asm/smmu.h =>
riscv/include/asm/ivshmem.h} (60%)
create mode 100644 hypervisor/arch/riscv/include/asm/jailhouse_header.h
create mode 100644 hypervisor/arch/riscv/include/asm/mmio.h
create mode 100644 hypervisor/arch/riscv/include/asm/paging.h
create mode 100644 hypervisor/arch/riscv/include/asm/paging_modes.h
create mode 100644 hypervisor/arch/riscv/include/asm/percpu.h
create mode 100644 hypervisor/arch/riscv/include/asm/processor.h
create mode 100644 hypervisor/arch/riscv/include/asm/sections.h
create mode 100644 hypervisor/arch/riscv/include/asm/spinlock.h
create mode 100644 hypervisor/arch/riscv/include/asm/types.h
create mode 100644 hypervisor/arch/riscv/ivshmem.c
create mode 100644 hypervisor/arch/riscv/lib.c
create mode 100644 hypervisor/arch/riscv/paging.c
create mode 100644 hypervisor/arch/riscv/pci.c
create mode 100644 hypervisor/arch/riscv/setup.c
create mode 100644 include/arch/riscv/asm/jailhouse_hypercall.h
create mode 100644 inmates/demos/riscv/Makefile
create mode 100644 inmates/lib/riscv/Makefile
create mode 100644 inmates/tests/riscv/Makefile
create mode 100644 inmates/tools/riscv/Makefile
--
2.36.1
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/20220627131329.3659-1-ralf.ramsauer%40oth-regensburg.de.