Hi,
this RFC series adds PSCI support for ARM inmates.
A new psci-demo inmate boots a secondary CPU and issues SGIs back and forth.
After some rounds, it shuts down the secondary CPU again.
Tested in Jailhouse on a TK1 and TX1.
Tested on bare-metal on a TK1. (Note: U-Boot must not boot in HYP mode)
Two important remarks:
- I'm currently including headers from the hypervisor that are
GPL-only. We recently switched to a dual-license for inmates.
I would like to avoid duplicating those headers.
- When issuing SGI via routing mode 0 (send SGIs to CpuTargetList),
then Jailhouse does not set the calling CPU id.
Not working:
- PSCI support on bare-metal ARM64 without Jailhouse (WIP, I have some
problems with activating interrupts on bare-metal, as u-boot boots into
EL2...)
Changes since the first RFC series:
- Jan alread removed virt_id. This made my approach of removing it
obselete. Removed those patches
- Removed the TX1 non-root Linux inmate support patches, sent them
separately
- Switched to dual-license header
Ralf Ramsauer (12):
inmates: arm: correct decoding of SGIs
arm64: allow more than 32 bit for entry points
inmates: define PAGE_SIZE for ARM architectures
arm: remove superfluous include guards
arm: split psci header
inmates: arm-common: add simple PSCI interface for inmates
inmates: arm: add CPU_ON support for PSCI
inmates: arm: add support for CPU offlining
inmates: arm: Add cpu_id routine
inmates: arm-common: add support for issuing SGIs
configs: Jetson family: assign two CPUs to demo cells
inmates: demos: Add PSCI demo
configs/jetson-tk1-demo.c | 4 +-
configs/jetson-tx1-demo.c | 4 +-
hypervisor/arch/arm-common/include/asm/psci.h | 33 +-----
hypervisor/arch/arm-common/include/asm/psci_defs.h | 39 +++++++
hypervisor/arch/arm64/control.c | 2 +-
hypervisor/arch/arm64/include/asm/control.h | 2 +-
hypervisor/arch/arm64/include/asm/percpu.h | 2 +-
inmates/demos/arm/Makefile | 3 +-
inmates/demos/arm/psci-demo.c | 127 +++++++++++++++++++++
inmates/demos/arm64/Makefile | 3 +-
inmates/lib/arm-common/Makefile.lib | 2 +-
inmates/lib/arm-common/gic-v2.c | 7 ++
inmates/lib/arm-common/include/gic.h | 6 +-
inmates/lib/arm-common/include/inmate.h | 10 ++
inmates/lib/arm-common/include/psci.h | 70 ++++++++++++
inmates/lib/arm-common/psci.c | 80 +++++++++++++
inmates/lib/arm/header.S | 35 ++++++
inmates/lib/arm/include/arch/asm/psci_call.h | 61 ++++++++++
inmates/lib/arm/include/arch/inmate.h | 2 +
inmates/lib/arm64/header.S | 40 +++++++
inmates/lib/arm64/include/arch/asm/psci_call.h | 62 ++++++++++
inmates/lib/arm64/include/arch/inmate.h | 2 +
22 files changed, 553 insertions(+), 43 deletions(-)
create mode 100644 hypervisor/arch/arm-common/include/asm/psci_defs.h
create mode 100644 inmates/demos/arm/psci-demo.c
create mode 100644 inmates/lib/arm-common/include/psci.h
create mode 100644 inmates/lib/arm-common/psci.c
create mode 100644 inmates/lib/arm/include/arch/asm/psci_call.h
create mode 100644 inmates/lib/arm64/include/arch/asm/psci_call.h
--
2.14.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].
For more options, visit https://groups.google.com/d/optout.