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.