From 39872b4742c0f3868a9a4b1b16e2be66f0e754a5 Mon Sep 17 00:00:00 2001 From: Jakub Luzny Date: Wed, 12 Aug 2020 12:57:57 +0200 Subject: meta-agl-jailhouse: Add support for RPi4 with 2G/4G/8G of memory The Jailhouse configuration files had to be modified to append the additional memory regions present on the higher mem variants of the RPi4. To avoid the use of mem= kernel parameter to fix the memory that can be used by the root cell, a device tree overlay with reserved-memory nodes is used instead. To avoid conflict with the GPU memory, the memory region used for Jailhouse and the non-root cells was moved from 0x30000000 to 0x20000000. Bug-AGL: SPEC-3507 Signed-off-by: Jakub Luzny Change-Id: Iabd67504c3df0349dd62e45f12d1019de14328f1 --- .../recipes-bsp/bootfiles/rpi-config_git.bbappend | 4 + ...toverlays-Add-jailhouse-memory-DT-overlay.patch | 87 ++++++++++++++++++++++ .../linux/linux-raspberrypi_%.bbappend | 2 - .../linux/linux-raspberrypi_5.4%.bbappend | 5 ++ 4 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch delete mode 100644 meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend (limited to 'meta-agl-jailhouse/dynamic-layers/raspberrypi') diff --git a/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend b/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend index 178c982a..687980cf 100644 --- a/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend +++ b/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend @@ -21,6 +21,10 @@ do_deploy_append_raspberrypi4() { echo "# Enable CAN (Waveshare RS485 CAN HAT)" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt echo "dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25,spimaxfrequency=1000000" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + # memory reserved for Jailhouse + echo "dtoverlay=jailhouse-memory" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "dtoverlay=jailhouse-memory,start=0xe0000000,size=0x200000" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + } diff --git a/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch b/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch new file mode 100644 index 00000000..1b6373cc --- /dev/null +++ b/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch @@ -0,0 +1,87 @@ +From c6319fb59e0cd5b6d3d4e3401abd9c2057059a74 Mon Sep 17 00:00:00 2001 +From: Jakub Luzny +Date: Tue, 11 Aug 2020 10:40:18 +0200 +Subject: [PATCH] dt/dtoverlays: Add jailhouse-memory DT overlay + +It is meant to reserve memory that can be used by the Jailhouse partitioning +hypervisor. More regions can be reserved. + +Upstream-Status: Inappropriate [Jailhouse specific] + +Signed-off-by: Jakub Luzny +--- + arch/arm/boot/dts/overlays/Makefile | 1 + + arch/arm/boot/dts/overlays/README | 7 +++++ + .../boot/dts/overlays/jailhouse-memory-overlay.dts | 30 ++++++++++++++++++++++ + 3 files changed, 38 insertions(+) + create mode 100644 arch/arm/boot/dts/overlays/jailhouse-memory-overlay.dts + +diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile +index fa6db6eed3e2..38c61c67606d 100644 +--- a/arch/arm/boot/dts/overlays/Makefile ++++ b/arch/arm/boot/dts/overlays/Makefile +@@ -92,6 +92,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ + iqaudio-dacplus.dtbo \ + iqaudio-digi-wm8804-audio.dtbo \ + irs1125.dtbo \ ++ jailhouse-memory.dtbo \ + jedec-spi-nor.dtbo \ + justboom-both.dtbo \ + justboom-dac.dtbo \ +diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README +index 69892d01faae..4a62f204b4f9 100644 +--- a/arch/arm/boot/dts/overlays/README ++++ b/arch/arm/boot/dts/overlays/README +@@ -1528,6 +1528,13 @@ Load: dtoverlay=irs1125 + Params: + + ++Name: jailhouse-memory ++Info: Reserves memory for use by the Jailhouse hypervisor ++Load: dtoverlay=jailhouse-memory,= ++Params: start Start of the reserved memory area (default 0x20000000) ++ size Size of the reserved memory area (default 0x10000000) ++ ++ + Name: jedec-spi-nor + Info: Adds support for JEDEC-compliant SPI NOR flash devices. (Note: The + "jedec,spi-nor" kernel driver was formerly known as "m25p80".) +diff --git a/arch/arm/boot/dts/overlays/jailhouse-memory-overlay.dts b/arch/arm/boot/dts/overlays/jailhouse-memory-overlay.dts +new file mode 100644 +index 000000000000..26c3ce6b9e3d +--- /dev/null ++++ b/arch/arm/boot/dts/overlays/jailhouse-memory-overlay.dts +@@ -0,0 +1,30 @@ ++// Reserves memory for use by the Jailhouse hypervisor ++/dts-v1/; ++/plugin/; ++ ++/ { ++ compatible = "brcm,bcm2835"; ++ ++ fragment@0 { ++ target-path = "/"; ++ __overlay__ { ++ ++ reserved-memory { ++ #address-cells = <2>; ++ #size-cells = <1>; ++ ++ ranges; ++ ++ jailhouse_memory: jailhouse@20000000 { ++ reg = <0x0 0x20000000 0x10000000>; ++ no-map; ++ }; ++ }; ++ }; ++ }; ++ ++ __overrides__ { ++ start = <&jailhouse_memory>,"reg#0"; ++ size = <&jailhouse_memory>,"reg:8"; ++ }; ++}; +-- +2.11.0 + diff --git a/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend b/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend deleted file mode 100644 index 0616c06e..00000000 --- a/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_%.bbappend +++ /dev/null @@ -1,2 +0,0 @@ -# required for Jailhouse to work with the supplied cell confiugrations -CMDLINE_append = " mem=768M" \ No newline at end of file diff --git a/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend b/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend index 7e37d21b..1456fdc8 100644 --- a/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend +++ b/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend @@ -1,3 +1,8 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch" + + LINUX_VERSION = "5.4.51" SRCREV = "2c8ec3bb4403a7c76c22ec6d3d5fc4b2a366024e" -- cgit 1.2.3-korg