From: Peng Fan <[email protected]>
This patchset is to support boot jailhouse before Linux.
The previous RFC patchset:
https://groups.google.com/g/jailhouse-dev/c/IZEFz-e2lh4/m/BBmGI_spIQAJ
Patch 1~6 is to create an new folder libbaremetal to hold
files that could shared between inmates and new bootloader.
Patch 9 is the central part to boot jailhouse with a baremetal
bootloader, which only support ARM64 + GIC_V3 now. It will use
psci to power up secondary cores, do GIC_V3 dist initialization,
Then kick inmate cell.
Images/cells loading is done by U-Boot bootm command to boot a fit image.
Patch 10 is to support using jailhouse userspace tool even boot jailhouse
before linux, just do as "insmod jailhouse.ko early_loader=1", then
it will bypass fw loading and etc, but setup information for linux usage.
Peng Fan (10):
inmates: arm-common: move mmio helpers to mmio.h
libbaremetal: move mmio.h out of inmates
inmates: lib: move string function prototypes to string.h
inmates: lib: move string.h to libbaremetal
inmate: lib: string: use header file from libbaremetal
Add libbaremetal
cell-config: reserve an entry to align jailhouse_system
arm64: sysregs: correct SCTLR_EL1_RES
ARM64: Add jailhouse bootloader support
driver: main: introduce early_loader param
Kbuild | 8 +-
bootloader/8mm.its | 75 +++
bootloader/Makefile | 68 +++
bootloader/arch/arm-common/Kbuild | 17 +
bootloader/arch/arm-common/gic-common.c | 34 ++
bootloader/arch/arm-common/gic-v3.c | 127 ++++
bootloader/arch/arm-common/include/gic-common.h | 2 +
bootloader/arch/arm64/Kbuild | 21 +
bootloader/arch/arm64/Makefile | 15 +
bootloader/arch/arm64/head.S | 201 +++++++
bootloader/arch/arm64/inmate.c | 53 ++
bootloader/arch/arm64/main.c | 218 +++++++
bootloader/include/bootloader.h | 5 +
bootloader/include/config.h | 5 +
bootloader/include/fls.h | 42 ++
bootloader/include/linux/irqchip/arm-gic-common.h | 21 +
bootloader/include/linux/irqchip/arm-gic-v3.h | 674 ++++++++++++++++++++++
bootloader/include/linux/irqchip/arm-gic.h | 34 ++
bootloader/loader.lds | 22 +
driver/main.c | 89 +--
hypervisor/arch/arm-common/include/asm/psci.h | 10 +
hypervisor/arch/arm64/include/asm/sysregs.h | 15 +-
include/jailhouse/cell-config.h | 1 +
inmates/Makefile | 8 +-
inmates/lib/arm-common/Makefile.lib | 2 +-
inmates/lib/arm-common/include/inmate.h | 49 +-
inmates/lib/arm/Makefile.lib | 2 +-
inmates/lib/arm64/Makefile.lib | 2 +-
inmates/lib/include/inmate_common.h | 9 +-
inmates/lib/x86/Makefile | 2 +-
inmates/lib/x86/Makefile.lib | 3 +-
libbaremetal/Makefile | 46 ++
libbaremetal/arm-common/Makefile.lib | 41 ++
libbaremetal/arm-common/include/mmio.h | 88 +++
libbaremetal/arm/Makefile | 44 ++
libbaremetal/arm/Makefile.lib | 63 ++
libbaremetal/arm64/Makefile | 44 ++
libbaremetal/arm64/Makefile.lib | 63 ++
{inmates/lib => libbaremetal}/include/string.h | 8 +
{inmates/lib => libbaremetal}/string.c | 3 +-
libbaremetal/x86/Makefile | 66 +++
libbaremetal/x86/Makefile.lib | 69 +++
42 files changed, 2266 insertions(+), 103 deletions(-)
create mode 100644 bootloader/8mm.its
create mode 100644 bootloader/Makefile
create mode 100644 bootloader/arch/arm-common/Kbuild
create mode 100644 bootloader/arch/arm-common/gic-common.c
create mode 100644 bootloader/arch/arm-common/gic-v3.c
create mode 100644 bootloader/arch/arm-common/include/gic-common.h
create mode 100644 bootloader/arch/arm64/Kbuild
create mode 100644 bootloader/arch/arm64/Makefile
create mode 100644 bootloader/arch/arm64/head.S
create mode 100644 bootloader/arch/arm64/inmate.c
create mode 100644 bootloader/arch/arm64/main.c
create mode 100644 bootloader/include/bootloader.h
create mode 100644 bootloader/include/config.h
create mode 100644 bootloader/include/fls.h
create mode 100644 bootloader/include/linux/irqchip/arm-gic-common.h
create mode 100644 bootloader/include/linux/irqchip/arm-gic-v3.h
create mode 100644 bootloader/include/linux/irqchip/arm-gic.h
create mode 100644 bootloader/loader.lds
create mode 100644 libbaremetal/Makefile
create mode 100644 libbaremetal/arm-common/Makefile.lib
create mode 100644 libbaremetal/arm-common/include/mmio.h
create mode 100644 libbaremetal/arm/Makefile
create mode 100644 libbaremetal/arm/Makefile.lib
create mode 100644 libbaremetal/arm64/Makefile
create mode 100644 libbaremetal/arm64/Makefile.lib
rename {inmates/lib => libbaremetal}/include/string.h (82%)
rename {inmates/lib => libbaremetal}/string.c (98%)
create mode 100644 libbaremetal/x86/Makefile
create mode 100644 libbaremetal/x86/Makefile.lib
--
2.16.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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/20200807030632.28259-1-peng.fan%40nxp.com.