This is now finally the ARM64 support for Jailhouse, ready to be merged.
It is based on the work of many people at Huawai, rebased on the latest
fixes and refactorings of ARM and augmented with support for the HiKey
board as well as some further corrections. Reviews are welcome!

Thanks for your valuable contributions (and patience),
Jan

CC: Jani Kokkonen <jani.kokko...@huawei.com>
CC: Veaceslav Falico <veaceslav.fal...@huawei.com>
CC: wuqix...@huawei.com
CC: Mazda Sabony <mazda.sab...@amd.com>
CC: Edgar E. Iglesias <edgar.igles...@xilinx.com>
CC: Jean-Philippe Brucker <jean-philippe.bruc...@arm.com>
CC: Will Deacon <will.dea...@arm.com>


CC: Antonios Motakis <antonios.mota...@huawei.com>
CC: Claudio Fontana <claudio.font...@huawei.com>
CC: Dmitry Voytik <dmitry.voy...@huawei.com>

Antonios Motakis (26):
  arm64: add sysregs helper macros
  arm64: add asm/processor.h header for AArch64
  arm64: add definitions for the AArch64 page table format
  arm64: spinlock implementation
  arm64: add percpu.h header file
  arm64: add cell.h header file
  arm64: add jailhouse_hypercall.h header file
  config: add root cell configuration for the ARMv8 Foundation model
  config: root cell configuration for the AMD Seattle
  arm64: initialize EL2 for hypervisor entry
  arm64: initialize the hypervisor for entry
  arm64: initial exception handling and catch EL2 aborts
  arm64: plug the hypervisor mmu code
  arm64: handle accesses to emulated mmio regions
  arm64: reanimate the root cell back from the dead
  arm64: hypervisor disable support
  inmates: arm: uart-demo: move heartbeat to header file
  inmates: arm: lib: move IRQ stack initialization
  inmates: arm: prep timer library for AArch64
  inmates: arm64: port inmate demos from AArch32 to AArch64
  config: add uart demo cell config for Foundation v8
  config: gic inmate cell config for foundation-v8
  config: UART demo cell config for the AMD Seattle
  config: gic demo cell config for the AMD Seattle
  config: add linux inmate cell config for AMD Seattle
  Documentation: add instructions for ARM64 Linux loader

Claudio Fontana (1):
  arm64: implement bitops

Dmitry Voytik (6):
  arm64: add control.h header file
  arm64: add types.h
  arm64: dump stack on unhandled exceptions
  tools: arm64: add exception dump parser
  inmates: arm64: implement non-root linux loader
  config: add linux inmate cell config for foundation-v8

Jan Kiszka (17):
  arm: Move modules shared with arm64 into arch/arm-common
  arm: Factor out common control.c module
  arm64: Provide minimum stubs to allow building on AArch64
  arm64: Implement data cache flush
  arm64: plug the irqchip and GICv2 code from AArch32
  arm64: Plug arm-common control module
  arm: Prepare for 64-bit PSCI
  arm64: PSCI support for SMP on AArch64
  arm64: Handle hypercalls from the cells
  arm64: Implement cell creation/destruction
  ci: Add support for arm64
  arm64: Switch to kernel 4.7+ hyp-stub interface
  arm64: Add dsb around EL2 TLB flush
  configs, inmates: Add support for HiKey board
  ci: Add aarch64 gcc to Coverity setup
  ci: Patch the pre-built kernel with __boot_cpu_mode export
  arm64: Fix out-of-bounds read access in gic_cpu_reset

 .travis.yml                                        |    4 +-
 Documentation/non-root-linux-arm64.txt             |   51 +
 ci/build-all-configs.sh                            |    6 +-
 ci/gen-kernel-build.sh                             |   23 +
 ci/jailhouse-config-amd-seattle.h                  |    5 +
 ci/kernel-config-amd-seattle                       | 3091 ++++++++++++++++++++
 configs/amd-seattle-gic-demo.c                     |   55 +
 configs/amd-seattle-linux-demo.c                   |  100 +
 configs/amd-seattle-uart-demo.c                    |   55 +
 configs/amd-seattle.c                              |  193 ++
 configs/foundation-v8-gic-demo.c                   |   55 +
 configs/foundation-v8-linux-demo.c                 |   74 +
 configs/foundation-v8-uart-demo.c                  |   55 +
 configs/foundation-v8.c                            |  149 +
 configs/hikey-gic-demo.c                           |   55 +
 configs/hikey.c                                    |   81 +
 hypervisor/Makefile                                |    4 +
 hypervisor/arch/arm-common/control.c               |  220 ++
 .../arch/{arm => arm-common}/dbg-write-pl011.c     |    0
 hypervisor/arch/{arm => arm-common}/dbg-write.c    |    0
 hypervisor/arch/{arm => arm-common}/gic-common.c   |    0
 hypervisor/arch/{arm => arm-common}/gic-v2.c       |    7 +-
 hypervisor/arch/{arm => arm-common}/irqchip.c      |    0
 hypervisor/arch/{arm => arm-common}/lib.c          |    0
 hypervisor/arch/{arm => arm-common}/mmu_cell.c     |    0
 hypervisor/arch/{arm => arm-common}/paging.c       |    0
 hypervisor/arch/{arm => arm-common}/psci.c         |    9 +-
 hypervisor/arch/arm/Makefile                       |   17 +-
 hypervisor/arch/arm/control.c                      |  207 +-
 hypervisor/arch/arm/include/asm/control.h          |    1 +
 hypervisor/arch/arm/include/asm/psci.h             |    3 +-
 hypervisor/arch/arm/include/asm/sysregs.h          |    4 +-
 hypervisor/arch/arm/include/asm/uart_pl011.h       |    2 +
 hypervisor/arch/arm64/Makefile                     |   29 +
 hypervisor/arch/arm64/asm-defines.c                |   36 +
 hypervisor/arch/arm64/caches.S                     |   65 +
 hypervisor/arch/arm64/control.c                    |  142 +
 hypervisor/arch/arm64/entry.S                      |  343 +++
 hypervisor/arch/arm64/exception.S                  |   95 +
 hypervisor/arch/arm64/include/asm/bitops.h         |  141 +
 hypervisor/arch/arm64/include/asm/cell.h           |   27 +
 .../arch/{arm => arm64}/include/asm/control.h      |   19 +-
 .../arch/arm64/include/asm/jailhouse_hypercall.h   |   92 +
 hypervisor/arch/arm64/include/asm/paging.h         |  277 ++
 hypervisor/arch/arm64/include/asm/percpu.h         |  125 +
 hypervisor/arch/arm64/include/asm/processor.h      |  191 ++
 hypervisor/arch/arm64/include/asm/sections.h       |   29 +
 hypervisor/arch/arm64/include/asm/setup.h          |   25 +
 hypervisor/arch/arm64/include/asm/spinlock.h       |   73 +
 hypervisor/arch/arm64/include/asm/sysregs.h        |   26 +
 hypervisor/arch/arm64/include/asm/traps.h          |   35 +
 hypervisor/arch/arm64/include/asm/types.h          |   46 +
 hypervisor/arch/arm64/mmio.c                       |  109 +
 hypervisor/arch/arm64/setup.c                      |  131 +
 hypervisor/arch/arm64/traps.c                      |  201 ++
 inmates/Makefile                                   |    4 +
 inmates/demos/arm/uart-demo.c                      |   13 -
 inmates/demos/arm64/Makefile                       |   20 +
 inmates/lib/arm/gic.c                              |    5 +-
 inmates/lib/arm/include/gic.h                      |    9 +
 inmates/lib/arm/include/inmate.h                   |   13 +
 inmates/lib/arm/timer.c                            |    6 +-
 inmates/lib/arm64/Makefile                         |   21 +
 inmates/lib/arm64/Makefile.lib                     |   47 +
 inmates/lib/arm64/header.S                         |   66 +
 inmates/lib/{arm => arm64}/include/gic.h           |    2 +-
 inmates/lib/{arm => arm64}/include/inmate.h        |   14 +-
 .../arm64/include/mach-amd-seattle/mach/gic_v2.h   |   14 +
 .../arm64/include/mach-amd-seattle/mach/timer.h    |   13 +
 .../lib/arm64/include/mach-amd-seattle/mach/uart.h |   13 +
 .../arm64/include/mach-foundation-v8/mach/gic_v2.h |   14 +
 .../arm64/include/mach-foundation-v8/mach/timer.h  |   13 +
 .../arm64/include/mach-foundation-v8/mach/uart.h   |   13 +
 .../lib/arm64/include/mach-hi6220/mach/gic_v2.h    |   14 +
 inmates/lib/arm64/include/mach-hi6220/mach/timer.h |   13 +
 inmates/lib/arm64/include/mach-hi6220/mach/uart.h  |   13 +
 inmates/lib/arm64/inmate.lds                       |   46 +
 inmates/tools/arm64/Makefile                       |   19 +
 inmates/tools/arm64/linux-loader.c                 |   66 +
 samples/kernel-inmate-amd-seattle.dts              |  149 +
 samples/kernel-inmate-foundation-v8.dts            |  103 +
 scripts/arm64-parsedump.py                         |  167 ++
 82 files changed, 7414 insertions(+), 259 deletions(-)
 create mode 100644 Documentation/non-root-linux-arm64.txt
 create mode 100644 ci/jailhouse-config-amd-seattle.h
 create mode 100644 ci/kernel-config-amd-seattle
 create mode 100644 configs/amd-seattle-gic-demo.c
 create mode 100644 configs/amd-seattle-linux-demo.c
 create mode 100644 configs/amd-seattle-uart-demo.c
 create mode 100644 configs/amd-seattle.c
 create mode 100644 configs/foundation-v8-gic-demo.c
 create mode 100644 configs/foundation-v8-linux-demo.c
 create mode 100644 configs/foundation-v8-uart-demo.c
 create mode 100644 configs/foundation-v8.c
 create mode 100644 configs/hikey-gic-demo.c
 create mode 100644 configs/hikey.c
 create mode 100644 hypervisor/arch/arm-common/control.c
 rename hypervisor/arch/{arm => arm-common}/dbg-write-pl011.c (100%)
 rename hypervisor/arch/{arm => arm-common}/dbg-write.c (100%)
 rename hypervisor/arch/{arm => arm-common}/gic-common.c (100%)
 rename hypervisor/arch/{arm => arm-common}/gic-v2.c (98%)
 rename hypervisor/arch/{arm => arm-common}/irqchip.c (100%)
 rename hypervisor/arch/{arm => arm-common}/lib.c (100%)
 rename hypervisor/arch/{arm => arm-common}/mmu_cell.c (100%)
 rename hypervisor/arch/{arm => arm-common}/paging.c (100%)
 rename hypervisor/arch/{arm => arm-common}/psci.c (87%)
 create mode 100644 hypervisor/arch/arm64/Makefile
 create mode 100644 hypervisor/arch/arm64/asm-defines.c
 create mode 100644 hypervisor/arch/arm64/caches.S
 create mode 100644 hypervisor/arch/arm64/control.c
 create mode 100644 hypervisor/arch/arm64/entry.S
 create mode 100644 hypervisor/arch/arm64/exception.S
 create mode 100644 hypervisor/arch/arm64/include/asm/bitops.h
 create mode 100644 hypervisor/arch/arm64/include/asm/cell.h
 copy hypervisor/arch/{arm => arm64}/include/asm/control.h (74%)
 create mode 100644 hypervisor/arch/arm64/include/asm/jailhouse_hypercall.h
 create mode 100644 hypervisor/arch/arm64/include/asm/paging.h
 create mode 100644 hypervisor/arch/arm64/include/asm/percpu.h
 create mode 100644 hypervisor/arch/arm64/include/asm/processor.h
 create mode 100644 hypervisor/arch/arm64/include/asm/sections.h
 create mode 100644 hypervisor/arch/arm64/include/asm/setup.h
 create mode 100644 hypervisor/arch/arm64/include/asm/spinlock.h
 create mode 100644 hypervisor/arch/arm64/include/asm/sysregs.h
 create mode 100644 hypervisor/arch/arm64/include/asm/traps.h
 create mode 100644 hypervisor/arch/arm64/include/asm/types.h
 create mode 100644 hypervisor/arch/arm64/mmio.c
 create mode 100644 hypervisor/arch/arm64/setup.c
 create mode 100644 hypervisor/arch/arm64/traps.c
 create mode 100644 inmates/demos/arm64/Makefile
 create mode 100644 inmates/lib/arm64/Makefile
 create mode 100644 inmates/lib/arm64/Makefile.lib
 create mode 100644 inmates/lib/arm64/header.S
 copy inmates/lib/{arm => arm64}/include/gic.h (94%)
 copy inmates/lib/{arm => arm64}/include/inmate.h (78%)
 create mode 100644 inmates/lib/arm64/include/mach-amd-seattle/mach/gic_v2.h
 create mode 100644 inmates/lib/arm64/include/mach-amd-seattle/mach/timer.h
 create mode 100644 inmates/lib/arm64/include/mach-amd-seattle/mach/uart.h
 create mode 100644 inmates/lib/arm64/include/mach-foundation-v8/mach/gic_v2.h
 create mode 100644 inmates/lib/arm64/include/mach-foundation-v8/mach/timer.h
 create mode 100644 inmates/lib/arm64/include/mach-foundation-v8/mach/uart.h
 create mode 100644 inmates/lib/arm64/include/mach-hi6220/mach/gic_v2.h
 create mode 100644 inmates/lib/arm64/include/mach-hi6220/mach/timer.h
 create mode 100644 inmates/lib/arm64/include/mach-hi6220/mach/uart.h
 create mode 100644 inmates/lib/arm64/inmate.lds
 create mode 100644 inmates/tools/arm64/Makefile
 create mode 100644 inmates/tools/arm64/linux-loader.c
 create mode 100644 samples/kernel-inmate-amd-seattle.dts
 create mode 100644 samples/kernel-inmate-foundation-v8.dts
 create mode 100755 scripts/arm64-parsedump.py

-- 
2.1.4

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to