diff options
Diffstat (limited to 'meta-raspberrypi/recipes-bsp')
-rw-r--r-- | meta-raspberrypi/recipes-bsp/rpi-eeprom/files/0001-Fix-rpi-eeprom-update-when-using-busybox-find.patch | 36 | ||||
-rw-r--r-- | meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb | 64 |
2 files changed, 100 insertions, 0 deletions
diff --git a/meta-raspberrypi/recipes-bsp/rpi-eeprom/files/0001-Fix-rpi-eeprom-update-when-using-busybox-find.patch b/meta-raspberrypi/recipes-bsp/rpi-eeprom/files/0001-Fix-rpi-eeprom-update-when-using-busybox-find.patch new file mode 100644 index 0000000000..b85be195b6 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/rpi-eeprom/files/0001-Fix-rpi-eeprom-update-when-using-busybox-find.patch @@ -0,0 +1,36 @@ +From 55ca589ab9e6e719c1e1f9fc72997d1643d28fe3 Mon Sep 17 00:00:00 2001 +From: Allan Xavier <mr.a.xavier@googlemail.com> +Date: Thu, 12 Jan 2023 12:08:55 +0000 +Subject: [PATCH] Fix rpi-eeprom-update when using busybox find + +The busybox implementation of find does not detect recursive nested +symlinks, this results in it finding multiple instances of of_node +matching -samefile, the result of which then fails the -e path test. + +The of_node symlink we're tyring to find should match the path +/sys/bus/nvmem/devices/*/of_node so just limit the find depth to 3 as +there's no point searching deeper than that. + +Signed-off-by: Allan Xavier <mr.a.xavier@googlemail.com> + +Upstream-Status: Backport [https://github.com/raspberrypi/rpi-eeprom/commit/55ca589ab9e6e719c1e1f9fc72997d1643d28fe3] +--- + rpi-eeprom-update | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rpi-eeprom-update b/rpi-eeprom-update +index 79eb3bf..cb25316 100755 +--- a/rpi-eeprom-update ++++ b/rpi-eeprom-update +@@ -126,7 +126,7 @@ getBootloaderConfig() { + + if [ -f "${blconfig_alias}" ]; then + local blconfig_ofnode_path="/sys/firmware/devicetree/base"$(strings "${blconfig_alias}")"" +- local blconfig_ofnode_link=$(find -L /sys/bus/nvmem -samefile "${blconfig_ofnode_path}" 2>/dev/null) ++ local blconfig_ofnode_link=$(find -L /sys/bus/nvmem -maxdepth 3 -samefile "${blconfig_ofnode_path}" 2>/dev/null) + + if [ -e "${blconfig_ofnode_link}" ]; then + blconfig_nvmem_path=$(dirname "${blconfig_ofnode_link}") +-- +2.34.1 + diff --git a/meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb b/meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb new file mode 100644 index 0000000000..bf0d430ff9 --- /dev/null +++ b/meta-raspberrypi/recipes-bsp/rpi-eeprom/rpi-eeprom_git.bb @@ -0,0 +1,64 @@ +SUMMARY = "Installation scripts and binaries for the Raspberry Pi 4 EEPROM" +DESCRIPTION = "This repository contains the rpi4 bootloader and scripts \ +for updating it in the spi eeprom" +LICENSE = "BSD-3-Clause & Broadcom-RPi" +LIC_FILES_CHKSUM = "file://LICENSE;md5=f546ed4f47e9d4c1fe954ecc9d3ef4f3" + +SRC_URI = " \ + git://github.com/raspberrypi/rpi-eeprom.git;protocol=https;branch=master \ + file://0001-Fix-rpi-eeprom-update-when-using-busybox-find.patch \ +" + +SRCREV = "6e79e995bbc75c5fdd5305bd7fe029758cfade2f" +PV = "v2022.12.07-138a1" + +S = "${WORKDIR}/git" + +RDEPENDS:${PN} += " \ + coreutils \ + python3 \ + python3-pycryptodomex \ + openssl \ + xxd \ + pciutils \ +" + +inherit python3native + +do_install() { + install -d ${D}${bindir} + + # install executables + install -m 0755 ${S}/tools/vl805 ${D}${bindir} + install -m 0755 ${S}/rpi-eeprom-update ${D}${bindir} + install -m 0755 ${S}/rpi-eeprom-config ${D}${bindir} + install -m 0755 ${S}/rpi-eeprom-digest ${D}${bindir} + + # copy firmware files + install -d ${D}${base_libdir}/firmware/raspberrypi/bootloader/critical + install -d ${D}${base_libdir}/firmware/raspberrypi/bootloader/stable + install -d ${D}${base_libdir}/firmware/raspberrypi/bootloader/beta + + install -m 644 ${S}/firmware/critical/* ${D}${base_libdir}/firmware/raspberrypi/bootloader/critical + install -m 644 ${S}/firmware/stable/* ${D}${base_libdir}/firmware/raspberrypi/bootloader/stable + install -m 644 ${S}/firmware/beta/* ${D}${base_libdir}/firmware/raspberrypi/bootloader/beta + + ln -s critical ${D}${base_libdir}/firmware/raspberrypi/bootloader/default + ln -s stable ${D}${base_libdir}/firmware/raspberrypi/bootloader/latest + + # copy default config + install -d ${D}${sysconfdir}/default + install -D ${S}/rpi-eeprom-update-default ${D}${sysconfdir}/default/rpi-eeprom-update +} + +FILES:${PN} += "${base_libdir}/firmware/raspberrypi/bootloader/*" + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# vl805 tool sources are not available (yet), as it comes as a precompiled +# binary only. It has ARM architecture whereas target machine is Aarch64. We +# need to disable arch check for it otherwise it cannot packed. +QAPATHTEST[arch] = "" + +COMPATIBLE_MACHINE = "raspberrypi4|raspberrypi4-64" |