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.

Reply via email to