summaryrefslogtreecommitdiffstats
path: root/meta-agl-devel/meta-agl-jailhouse/dynamic-layers
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-devel/meta-agl-jailhouse/dynamic-layers')
-rw-r--r--meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/bootfiles/rpi-config_git.bbappend31
-rw-r--r--meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-bsp/trusted-firmware-a/trusted-firmware-a_%.bbappend21
-rw-r--r--meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-extended/jailhouse/jailhouse_%.bbappend2
-rw-r--r--meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi/0001-dt-dtoverlays-Add-jailhouse-memory-DT-overlay.patch87
-rw-r--r--meta-agl-devel/meta-agl-jailhouse/dynamic-layers/raspberrypi/recipes-kernel/linux/linux-raspberrypi_5.4%.bbappend9
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