Porting siemens jailhouse to SP7021

Project home: https://github.com/siemens/jailhouse

 

U-Boot

1. Add PCSI support

commit a6e96cdbb2ec426f7219a9017dc4617ea88f547d Author: qinjian <qinjian@sunmedia.com.cn> Date: Wed Jul 1 15:41:58 2020 +0800 [arm] support arm psci arch/arm/mach-pentagram/Kconfig | 1 + arch/arm/mach-pentagram/Makefile | 3 +++ arch/arm/mach-pentagram/cpu.c | 17 +++++++++++++++++ arch/arm/mach-pentagram/nonsec_virt.S | 35 +++++++++++++++++++++++++++++++++++ arch/arm/mach-pentagram/psci.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ board/sunplus/pentagram_board/Makefile | 1 - board/sunplus/pentagram_board/board.c | 15 --------------- board/sunplus/pentagram_board/nonsec_virt.S | 35 ----------------------------------- 8 files changed, 103 insertions(+), 51 deletions(-)

2. Enable HYP mode

diff --git a/arch/arm/mach-pentagram/Kconfig b/arch/arm/mach-pentagram/Kconfig index 595187a..0cd8572 100644 --- a/arch/arm/mach-pentagram/Kconfig +++ b/arch/arm/mach-pentagram/Kconfig @@ -6,8 +6,8 @@ choice config TARGET_PENTAGRAM_COMMON bool "pentagram common board" select CPU_V7A - #select CPU_V7_HAS_NONSEC - #select CPU_V7_HAS_VIRT + select CPU_V7_HAS_NONSEC + select CPU_V7_HAS_VIRT select ARCH_SUPPORT_PSCI select SYS_THUMB_BUILD

3. Adjust fdt loading address from EOM(End of memory, reserved for jailhouse) to a specified address

diff --git a/include/configs/pentagram_common.h b/include/configs/pentagram_common.h index a60a470..ac45783 100644 --- a/include/configs/pentagram_common.h +++ b/include/configs/pentagram_common.h @@ -283,6 +283,7 @@ "stdin=" STDIN_CFG "\0" \ "stdout=" STDOUT_CFG "\0" \ "stderr=" STDOUT_CFG "\0" \ +"fdt_high=0x04000000 \0" \ "bootinfo_base=" __stringify(SP_BOOTINFO_BASE) "\0" \ "addr_src_kernel=" __stringify(CONFIG_SRCADDR_KERNEL) "\0" \ "addr_src_nonos=" __stringify(CONFIG_SRCADDR_NONOS) "\0" \

 

Linux Kernel

1. Enable PCSI support

2. Add jailhouse ivshmem drivers

3. Modify defconfig & Kconfig

4. Modify dts: kernel bootargs, reserved 128MB for jailhouse

5. Modify io_map virt-base to avoid confliction with jailhouse

 

Jailhouse

1. Add SP7021 system/cell configs, uart-sunplus driver