Hi,

this series adds MMU support for ARM and ARM64. We will need those
patches for cache coherency.

I was able to fully consolidate ARM and ARM64 MMU driver code.

I did a lot of testing, but I might have overseen some things -- please
test and review carefully.

Tested on a Jetson TK1 and QEMU ARM64.

Thanks!

  Ralf

since v2:
  - add additional () around SCTLR_MMU_CACHES
  - add memory_barrier() after writing to the comm_region
  - proper (de-)initialisation of the MMU for ARM's linux-loaders

since v1:
  - place the linux-loader patch before enabling the MMU
  - use CONFIG_INMATE_BASE instead of the symbol __inmate_base
  - Adress Jan's comments on register naming. Use now real register
    names and alias them.

Ralf Ramsauer (15):
  inmates: make alloc() a common library function
  inmates: implement arch_init_early() routine
  inmates: arm-common: introduce sysregs_common.h
  inmates: arm-common: define more sysregs
  inmates: arm: define more sysregs
  inmates: arm64: define more sysregs
  inmates: make map_range global
  inmates: arm: move calculation of CONFIG_INMATE_BASE to
    inmate_common.h
  inmates: arm-common: implement common map_range routine
  inmates: tools: arm: linux-loader: disable mmu before starting
  inmates: x86: introduce architecture specific include directory
  inmates: x86: introduce processor.h
  inmates: arm-common: introduce processor.h
  inmates: add a memory barrier after entering a fail state
  inmates: arm-common: add MMU support

 inmates/lib/alloc.c                           |  49 ++++++++
 inmates/lib/arm-common/Makefile.lib           |   4 +-
 inmates/lib/arm-common/gic-v2.c               |   3 +
 inmates/lib/arm-common/gic-v3.c               |  11 +-
 .../lib/arm-common/include/asm/processor.h    |  53 +++++++++
 .../arm-common/include/asm/sysregs_common.h   |  68 +++++++++++
 inmates/lib/arm-common/include/inmate.h       |   7 +-
 inmates/lib/arm-common/printk.c               |   7 ++
 inmates/lib/arm-common/setup.c                | 109 ++++++++++++++++++
 inmates/lib/arm/include/asm/sysregs.h         |  32 +++++
 inmates/lib/arm/inmate.lds.S                  |   6 +-
 inmates/lib/arm64/include/asm/sysregs.h       |  32 +++++
 inmates/lib/arm64/inmate.lds.S                |   6 +-
 inmates/lib/inmate_common.h                   |  15 +++
 inmates/lib/setup.c                           |   4 +
 inmates/lib/x86/Makefile                      |   4 +-
 inmates/lib/x86/Makefile.lib                  |   1 +
 inmates/lib/x86/include/asm/processor.h       |  46 ++++++++
 inmates/lib/x86/{ => include}/inmate.h        |   7 --
 inmates/lib/x86/mem.c                         |  10 --
 inmates/lib/x86/setup.c                       |  43 +++++++
 inmates/tools/arm/linux-loader.c              |   8 +-
 inmates/tools/arm64/linux-loader.c            |   8 +-
 23 files changed, 487 insertions(+), 46 deletions(-)
 create mode 100644 inmates/lib/alloc.c
 create mode 100644 inmates/lib/arm-common/include/asm/processor.h
 create mode 100644 inmates/lib/arm-common/include/asm/sysregs_common.h
 create mode 100644 inmates/lib/arm-common/setup.c
 create mode 100644 inmates/lib/x86/include/asm/processor.h
 rename inmates/lib/x86/{ => include}/inmate.h (97%)
 create mode 100644 inmates/lib/x86/setup.c

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