diff options
Diffstat (limited to 'meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi')
5 files changed, 150 insertions, 0 deletions
diff --git a/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend new file mode 100644 index 00000000..687980cf --- /dev/null +++ b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend @@ -0,0 +1,31 @@ + +do_deploy_append_raspberrypi4() { + # if ARMSTUB is set, it should be set in config.txt by earlier recipes, so replace it + if [ -n "${ARMSTUB}" ]; then + sed -i 's/^armstub=.*/armstub=bl31.bin/' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + + if ! grep '^enable_gic' config.txt; then + sed -i 's/^enable_gic=.*/enable_gic=1/' ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + else + echo "enable_gic=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + fi + + # otherwise, set it + else + echo "# ARM stub configuration" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "armstub=bl31.bin" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + echo "enable_gic=1" >> ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + fi + + sed -i -e "s#dtoverlay=mcp2515.*##g" ${DEPLOYDIR}/bcm2835-bootfiles/config.txt + 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-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend new file mode 100644 index 00000000..158eb6e8 --- /dev/null +++ b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend @@ -0,0 +1,21 @@ +COMPATIBLE_MACHINE = "raspberrypi4" +TFA_BUILD_TARGET = "bl31" +TFA_PLATFORM = "rpi4" + +# Skip installing the binary into /lib/firmware. We only need it on the boot +# partition that is generated from the files in DEPLOYDIR +do_install[noexec] = "1" + +FILES_${PN} = "" + +do_deploy() { + if ${@"true" if d.getVar('TFA_DEBUG') == '1' else "false"}; then + BUILD_PLAT=${B}/${BUILD_DIR}/debug/ + else + BUILD_PLAT=${B}/${BUILD_DIR}/release/ + fi + + install -d ${DEPLOYDIR}/bcm2835-bootfiles + cp ${BUILD_PLAT}/bl31.bin ${DEPLOYDIR}/bcm2835-bootfiles/bl31.bin +} + diff --git a/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-extended/jailhouse/jailhouse_%.bbappend b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-extended/jailhouse/jailhouse_%.bbappend new file mode 100644 index 00000000..1d8ea6b7 --- /dev/null +++ b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-extended/jailhouse/jailhouse_%.bbappend @@ -0,0 +1,2 @@ +DEPENDS_append_raspberrypi4 = " trusted-firmware-a" + diff --git a/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch b/meta-agl-devel/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-devel/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 <jakub@luzny.cz> +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 <jakub@luzny.cz> +--- + 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: <None> + + ++Name: jailhouse-memory ++Info: Reserves memory for use by the Jailhouse hypervisor ++Load: dtoverlay=jailhouse-memory,<param>=<val> ++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-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend new file mode 100644 index 00000000..1456fdc8 --- /dev/null +++ b/meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend @@ -0,0 +1,9 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch" + + +LINUX_VERSION = "5.4.51" +SRCREV = "2c8ec3bb4403a7c76c22ec6d3d5fc4b2a366024e" + +require recipes-kernel/linux/linux-jailhouse-5.4.inc |