Hi,

analogously to x86, this series provides some platform information on
ARM via the communication region.

In sum, this series passes to inmates:
  - A struct jailhouse_debug_console to inmates on all architectures
    (including x86, but there it is not used yet)
  - GIC (v3 and v4) register locations
  - Platform Timer IRQ

The nice thing is that we get rid of mach.h on ARM architectures, which
makes inmates completely platform independant.

Inmate command line options (e.g., con-type, con-divider, ...) may still
override platform information.

Tested on a Jetson TK1 and qemu-arm64.

Patches can also be found here:
https://github.com/lfd/jailhouse/tree/platform-info

  Ralf

Ralf Ramsauer (19):
  core: x86: percpu: remove superfluous include
  inmates: arm: link with --whole-archive
  inmates: arm: uart: introduce DEFINE_UART macro
  inmates: arm: uart: register uarts in own section
  configs: arm: add comm_region to all inmates
  core: move struct jailhouse_debug_console to the top
  inmates: arm: add consoles to inmate definition
  core: pass cell's console to communication region
  inmates: arm: configure uarts via communication region
  core: add common platform info for ARM architectures
  inmates: arm-common: define mmio_read64
  inmates: arm: sysregs: define bits for MPIDR
  inmates: arm: get GIC configuration from comm_region's platform info
  inmates: arm: dynamically choose GIC version
  core: arm: define timer_irq in sysconfig and pass it to comm_region
  inmates: arm: use timer_irq from comm_region
  inmates: arm: delete mach.h
  core, tools: Increase header revision
  inmates: arm: allow absence of config.h

 configs/arm/bananapi-gic-demo.c               |  18 ++-
 configs/arm/bananapi-linux-demo.c             |  18 ++-
 configs/arm/bananapi-uart-demo.c              |  18 ++-
 configs/arm/bananapi.c                        |   1 +
 configs/arm/emtrion-rzg1e-linux-demo.c        |  18 ++-
 configs/arm/emtrion-rzg1e-uart-demo.c         |  18 ++-
 configs/arm/emtrion-rzg1e.c                   |   1 +
 configs/arm/emtrion-rzg1h-linux-demo.c        |  18 ++-
 configs/arm/emtrion-rzg1h-uart-demo.c         |  18 ++-
 configs/arm/emtrion-rzg1h.c                   |   1 +
 configs/arm/emtrion-rzg1m-linux-demo.c        |  18 ++-
 configs/arm/emtrion-rzg1m-uart-demo.c         |  18 ++-
 configs/arm/emtrion-rzg1m.c                   |   1 +
 configs/arm/jetson-tk1-demo.c                 |  18 ++-
 configs/arm/jetson-tk1-linux-demo.c           |  18 ++-
 configs/arm/jetson-tk1.c                      |   1 +
 configs/arm/orangepi0-gic-demo.c              |  15 ++-
 configs/arm/orangepi0-linux-demo.c            |  15 ++-
 configs/arm/orangepi0.c                       |   1 +
 configs/arm/vexpress-gic-demo.c               |  15 ++-
 configs/arm/vexpress-linux-demo.c             |  15 ++-
 configs/arm/vexpress-uart-demo.c              |  15 ++-
 configs/arm/vexpress.c                        |   1 +
 configs/arm64/amd-seattle-gic-demo.c          |  15 ++-
 configs/arm64/amd-seattle-linux-demo.c        |  15 ++-
 configs/arm64/amd-seattle-uart-demo.c         |  15 ++-
 configs/arm64/amd-seattle.c                   |   1 +
 configs/arm64/espressobin-gic-demo.c          |  15 ++-
 configs/arm64/espressobin-linux-demo.c        |  15 ++-
 configs/arm64/espressobin.c                   |   1 +
 configs/arm64/foundation-v8-gic-demo.c        |  15 ++-
 configs/arm64/foundation-v8-linux-demo.c      |  15 ++-
 configs/arm64/foundation-v8-uart-demo.c       |  15 ++-
 configs/arm64/foundation-v8.c                 |   1 +
 configs/arm64/hikey-gic-demo.c                |  15 ++-
 configs/arm64/hikey-linux-demo.c              |  15 ++-
 configs/arm64/hikey.c                         |   1 +
 configs/arm64/imx8mq-gic-demo.c               |  15 ++-
 configs/arm64/imx8mq.c                        |   1 +
 configs/arm64/jetson-tx1-demo.c               |  15 ++-
 configs/arm64/jetson-tx1-linux-demo.c         |  15 ++-
 configs/arm64/jetson-tx1.c                    |   1 +
 configs/arm64/jetson-tx2-demo.c               |  15 ++-
 configs/arm64/jetson-tx2.c                    |   1 +
 configs/arm64/qemu-arm64-gic-demo.c           |  15 ++-
 configs/arm64/qemu-arm64-linux-demo.c         |  15 ++-
 configs/arm64/qemu-arm64.c                    |   1 +
 configs/arm64/zynqmp-zcu102-gic-demo.c        |  15 ++-
 configs/arm64/zynqmp-zcu102-linux-demo-2.c    |  15 ++-
 configs/arm64/zynqmp-zcu102-linux-demo.c      |  15 ++-
 configs/arm64/zynqmp-zcu102.c                 |   1 +
 hypervisor/arch/arm-common/control.c          |  10 ++
 hypervisor/arch/x86/include/asm/percpu.h      |   2 -
 hypervisor/control.c                          |   1 +
 .../arch/arm-common/asm/jailhouse_hypercall.h |  44 +++++++
 include/arch/arm/asm/jailhouse_hypercall.h    |   3 +
 include/arch/arm64/asm/jailhouse_hypercall.h  |   3 +
 include/jailhouse/cell-config.h               |  49 +------
 include/jailhouse/console.h                   |  84 ++++++++++++
 include/jailhouse/hypercall.h                 |   6 +-
 inmates/Makefile                              |  12 +-
 inmates/demos/arm/gic-demo.c                  |   5 +-
 inmates/lib/arm-common/gic-v2.c               |  28 ++--
 inmates/lib/arm-common/gic-v3.c               |  55 ++++++--
 inmates/lib/arm-common/gic.c                  |  15 ++-
 inmates/lib/arm-common/include/gic.h          |   2 +-
 inmates/lib/arm-common/include/inmate.h       |   6 +
 inmates/lib/arm-common/include/uart.h         |  21 +--
 inmates/lib/arm-common/printk.c               |  50 ++------
 inmates/lib/arm-common/uart-8250-8.c          |  15 +--
 inmates/lib/arm-common/uart-8250.c            |  15 +--
 inmates/lib/arm-common/uart-hscif.c           |  15 +--
 inmates/lib/arm-common/uart-imx.c             |  15 +--
 inmates/lib/arm-common/uart-jailhouse.c       |  12 +-
 inmates/lib/arm-common/uart-mvebu.c           |  15 +--
 inmates/lib/arm-common/uart-pl011.c           |  15 +--
 inmates/lib/arm-common/uart-scifa.c           |  15 +--
 inmates/lib/arm-common/uart-xuartps.c         |  15 +--
 inmates/lib/arm/include/asm/sysregs.h         |   9 ++
 inmates/lib/arm/include/mach.h                | 116 -----------------
 inmates/lib/arm/inmate.lds.S                  |   9 +-
 inmates/lib/arm64/include/asm/sysregs.h       |  10 ++
 inmates/lib/arm64/include/mach.h              | 121 ------------------
 inmates/lib/arm64/inmate.lds.S                |   9 +-
 tools/jailhouse-cell-linux                    |   4 +-
 tools/jailhouse-hardware-check                |   2 +-
 86 files changed, 901 insertions(+), 481 deletions(-)
 create mode 100644 include/arch/arm-common/asm/jailhouse_hypercall.h
 create mode 100644 include/jailhouse/console.h
 delete mode 100644 inmates/lib/arm/include/mach.h
 delete mode 100644 inmates/lib/arm64/include/mach.h

-- 
2.17.0

-- 
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