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.

Reply via email to