commit 236ef8afdb8ff04ec98e7a26f57b351e0faf67a99d429892d08bdae869440c32 Author: Guillaume GARDET Date: Mon Sep 9 11:24:25 2024 +0000 - Completely delete strings command check. Fixes (bsc#1230279) OBS-URL: https://build.opensuse.org/package/show/hardware:boot/raspberrypi-eeprom?expand=0&rev=29 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..319f834 --- /dev/null +++ b/_service @@ -0,0 +1,19 @@ + + + git + https://github.com/raspberrypi/rpi-eeprom.git + raspberrypi-eeprom + ef2fc67d235d037b2b468813e646e20890fcea07 + v([0-9\.]{10}).* + @PARENT_TAG@ + + + + + *.tar + xz + + + diff --git a/add-suse-config.patch b/add-suse-config.patch new file mode 100644 index 0000000..d214ab7 --- /dev/null +++ b/add-suse-config.patch @@ -0,0 +1,13 @@ +diff --git a/rpi-eeprom-update b/rpi-eeprom-update +index 984ade2..c50a5b1 100755 +--- a/rpi-eeprom-update ++++ b/rpi-eeprom-update +@@ -688,7 +688,7 @@ findBootFS() + BOOTFS="${TMP_BOOTFS_MNT}" + elif [ -z "$BOOTFS" ]; then + if ! BOOTFS=$(/usr/lib/raspberrypi-sys-mods/get_fw_loc 2> /dev/null); then +- for BOOTFS in /boot/firmware /boot; do ++ for BOOTFS in /boot/efi /boot; do + if [ -f "${BOOTFS}/config.txt" ]; then + break + elif findmnt --fstab "$BOOTFS" > /dev/null; then diff --git a/dont-use-env.patch b/dont-use-env.patch new file mode 100644 index 0000000..18e885e --- /dev/null +++ b/dont-use-env.patch @@ -0,0 +1,23 @@ +From e28936a8fa34346727b229e7366960e508545cf0 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Fri, 22 Jan 2021 17:08:46 +0100 +Subject: [PATCH] Avoid using env so rpm catches the python dependency + +Signed-off-by: Nicolas Saenz Julienne +--- + rpi-eeprom-config | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/rpi-eeprom-config b/rpi-eeprom-config +index 0a6ce5e..943d0dd 100755 +--- a/rpi-eeprom-config ++++ b/rpi-eeprom-config +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python3 ++#!/usr/bin/python3 + + """ + rpi-eeprom-config +-- +2.30.0 + diff --git a/raspberrypi-eeprom-2023.10.30.tar.xz b/raspberrypi-eeprom-2023.10.30.tar.xz new file mode 100644 index 0000000..8220090 --- /dev/null +++ b/raspberrypi-eeprom-2023.10.30.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e9a32f8eade9bb9d8df0dece1d7a4d2146c7d8123b31b2863b00898748febac +size 5760252 diff --git a/raspberrypi-eeprom-2024.06.05.tar.xz b/raspberrypi-eeprom-2024.06.05.tar.xz new file mode 100644 index 0000000..e0917e9 --- /dev/null +++ b/raspberrypi-eeprom-2024.06.05.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2c5d17c412da2653b3d2f0051fbf373d5921fe97d5488d90f6efc1ff2b18524 +size 9453052 diff --git a/raspberrypi-eeprom.changes b/raspberrypi-eeprom.changes new file mode 100644 index 0000000..fd6c465 --- /dev/null +++ b/raspberrypi-eeprom.changes @@ -0,0 +1,167 @@ +------------------------------------------------------------------- +Mon Sep 9 10:41:02 UTC 2024 - Ivan Ivanov + +- Completely delete strings command check. Fixes (bsc#1230279) + +------------------------------------------------------------------- +Tue Sep 3 12:12:53 UTC 2024 - Guillaume GARDET + +- Update to 2024.06.05 +- Skipped: + * v2024.04.20-2712 + * v2024.02.17-2712 + * v2024.02.16-2712 + * v.2024.01.05-2712 + * v2023.12.06-2712 +- Refresh patch: + * rpi-eeprom-update-Use-tr-instead-of-strings.patch + +------------------------------------------------------------------- +Thu Nov 23 10:12:48 UTC 2023 - Guillaume GARDET + +- Update to v2023.10.30: + * Fix SDIO / WiFi clock-setup for BOOT_ORDER=0xf14 + * Fix SD power-on-reset + * Firmware support for improved watchdog driver + * Update DHCP Option97 to be R,P,i,5 on Pi5 +- Updates from skipped v2023.10.18: + * Add support for HAT gpiomap for improved HAT compatibility. + * Add I2C probe for DSI display auto detect + * Automatically set dtparam=nvme if booted from nvme + * Fix network boot reset issue where only the first attempt works. + * Adding pciex4_reset=0 to config.txt will leave RP1 PCIe enabled + when ARM stage is started. + * Prevent HDMI diagnostics being displayed immediately when + waking after HALT. + * Update board-name - "Raspberry Pi 5" +- Refresh patches: + * add-suse-config.patch + * rpi-eeprom-update-Use-tr-instead-of-strings.patch + +------------------------------------------------------------------- +Sun Jan 29 14:42:22 UTC 2023 - Tobias Klausmann + +- Refresh patch rpi-eeprom-update-Use-tr-instead-of-strings.patch + Replace the third source for "strings" as well + +------------------------------------------------------------------- +Sun Jan 22 20:32:45 UTC 2023 - Tobias Klausmann + +- Packaging changes: + * Compress archive to tar.xz to save space (~43M -> ~3.4M) + * Refresh rpi-eeprom-update-Use-tr-instead-of-strings.patch +- 2023-01-11-vl805-000138c0: +- Interesting changes since the last release:- + * Update VL805 to 138C0 - fix for handling of split transactions + raspberrypi/linux#5262 + * Fix HID error handling with network install #458 +- 2022-11-25-vl805-000138a1: +- Interesting changes since the last release:- + * Add [tryboot] conditional statement to autoboot.txt + tryboot_a_b mode + * Support custom OTP mac addresses + * Increase TFTP_MAX_BLOCK_SIZE + * Stop NVMe cleanly + * Fixes for NETCONSOLE parsing and initialisation. + * Long filename support for start_file / fixup_file. + * Secure boot and display debug info on the diagnostics screen. +- 2022-04-26-vl805-000138a1: +- Interesting changes since the last default release: + * Implement network install + * Add support for BOOT_ORDER_HTTP + * Enable the boot partition number to be specified as an EEPROM config + property. + +------------------------------------------------------------------- +Tue Mar 8 12:28:21 UTC 2022 - Guillaume GARDET + +- 2022-01-25-vl805-000138a1: +- Interesting changes since the last default release: + * Support and bug fixes for all Compute Module variants. + * NVMe interoperability fixes + * FAT/GPT fixes and file-system performance improvements. + * Added secure-boot support for industrial applications + * Added ramdisk / boot.img - for RPIBOOT and secure-boot. +- Package rpi-eeprom-digest +- Refresh patch: + * dont-use-env.patch + +------------------------------------------------------------------- +Wed Jun 30 12:19:25 UTC 2021 - Ferdinand Thiessen + +- Use upstream version schema (year.month.day) instead of arbitrary 0.0 +- Update to version 2021.04.29 + * Add support for NVMe to the bootloader with a new NVMe boot mode + * Add support for [cm4] and [pi400] config conditionals filters. + * TFTP - reply to duplicate ACKS + * Skip rendering of HDMI diagnostics display for the first 8 seconds + unless an error occurs. + * Add support for the BCM2711 XHCI controller - BOOT_ORDER 0x5 + * XHCI protocol layer fixes for non-VLI controllers + * Avoid USB MSD timeout of there is only one device + * Fix recovery.bin error handler so that the LED error pattern + is still displayed even if HDMI or SDRAM fail. + * Fix GPIO expander reset issue on some Pi4B 1.1 to 1.3 boards + * Fix regression for GPIO expander reset change which caused PMIC + reset to get card out of 1V8 mode to be missed. + * Timeout USB MSD commands and move to the next boot mode if a device + stops responding. + * Add support for booting from the BCM2711 XHCI controller which is + the USB-C socket on Pi 4B / Pi 400 and the type A sockets on Compute + Module 4 IO board. + * Validate SDRAM in recovery mode. +- Fixes bsc#1194950. + +------------------------------------------------------------------- +Fri Feb 19 10:07:06 UTC 2021 - Nicolas Patricio Saenz Julienne + +- Add 'pciutils' as a requirement. 'rpi-eeprom-update' uses lspci. + (bsc#1182437) +- Update to version 0.0~2020.09.03.65~gb9c255d: Simplifies code by removing + legacy functions. +- Add patch: "rpi-eeprom-update-Use-tr-instead-of-strings.patch" to avoid the + dependency with binutils. (bsc#1182437) + +------------------------------------------------------------------- +Thu Feb 4 14:17:12 UTC 2021 - Nicolas Patricio Saenz Julienne + +- Fix 'Supplements:' in spec file, as per + https://doc.opensuse.org/projects/libzypp/HEAD/zypp-modalias.html commas are + special charactes that should be replaced with '%2C' + +------------------------------------------------------------------- +Thu Jan 28 16:05:58 UTC 2021 - Nicolas Patricio Saenz Julienne + +- Remove VL805 firmware version from package version as it prevents it from + incresing monotonically. + +------------------------------------------------------------------- +Thu Jan 28 13:55:46 UTC 2021 - Guillaume GARDET + +- Prefix version with 0.0~ + +------------------------------------------------------------------- +Wed Jan 27 12:22:39 UTC 2021 - Nicolas Patricio Saenz Julienne + +- Define _firmwaredir when relevant + +------------------------------------------------------------------- +Tue Jan 26 12:31:38 UTC 2021 - Nicolas Patricio Saenz Julienne + +- Update to b9c255d: + * rpi-eeprom-config: Properly decode sysfs binary files + +------------------------------------------------------------------- +Mon Jan 25 18:29:06 UTC 2021 - Nicolas Patricio Saenz Julienne + +- Introduce _service file. + +------------------------------------------------------------------- +Mon Jan 25 12:55:26 UTC 2021 - Jan Engelhardt + +- Ditch unnecessarily split package. + +------------------------------------------------------------------- +Fri Jan 22 14:15:38 UTC 2021 - Nicolas Patricio Saenz Julienne + +- First commit +- Introduce patches: 'add-suse-config.patch' and 'don't-use-env.patch'. diff --git a/raspberrypi-eeprom.spec b/raspberrypi-eeprom.spec new file mode 100644 index 0000000..123df11 --- /dev/null +++ b/raspberrypi-eeprom.spec @@ -0,0 +1,100 @@ +# +# spec file for package raspberrypi-eeprom +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%if 0%{?suse_version} < 1550 +%define _firmwaredir /lib/firmware +%endif + +Name: raspberrypi-eeprom +Version: 2024.06.05 +Release: 0 +Summary: Raspberry Pi 4 and Pi 5 EEPROM firmware +License: SUSE-Firmware +Group: System/Boot +URL: https://github.com/raspberrypi/rpi-eeprom +Source0: %{name}-%{version}.tar.xz +Patch0: add-suse-config.patch +Patch1: dont-use-env.patch +Patch2: rpi-eeprom-update-Use-tr-instead-of-strings.patch +Provides: rpi-eeprom +Supplements: modalias(of:N*T*Cbrcm%2Cbcm2711*C*) +Requires: raspberrypi-firmware >= 2021.03.03 +Requires: raspberrypi-firmware-dt >= 2021.03.03 +Provides: rpi-eeprom-config = %{version} +Obsoletes: rpi-eeprom-config < %{version} +Requires: pciutils +Requires: raspberrypi-eeprom-firmware +BuildArch: noarch + +%description +First stage bootloader packages for Raspberry Pi 4 and Pi 5 + +%package firmware +Summary: Raspberry Pi 4 EEPROM firmware blobs +Group: System/Boot +Provides: raspberrypi-firmware-eeprom = %{version} +Obsoletes: raspberrypi-firmware-eeprom < %{version} +Requires: raspberrypi-eeprom +BuildRequires: fdupes + +%description firmware +First stage bootloader fimware blobs for Raspberry Pi 4 and Pi 5 + +%prep +%autosetup -p1 + +# 'strings' not needed - https://github.com/raspberrypi/rpi-eeprom/commit/ef0cfffced1bbee8ae6755ddf58e478c3d8c8f05 +sed -i '/if ! command -v strings/, /fi/d' rpi-eeprom-update + +%build + +%install +mkdir -p %{buildroot}%{_bindir} +install -m 0755 rpi-eeprom-config %{buildroot}%{_bindir} +install -m 0755 rpi-eeprom-digest %{buildroot}%{_bindir} +install -m 0755 rpi-eeprom-update %{buildroot}%{_bindir} +mkdir -p %{buildroot}/etc/default +install -m 644 rpi-eeprom-update-default %{buildroot}/etc/default/rpi-eeprom-update + +for model in 2711 2712; do + mkdir -p %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model + mv firmware-$model/beta %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model + mv firmware-$model/critical %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model + mv firmware-$model/stable %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model + cp -a firmware-$model/latest %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model + cp -a firmware-$model/default %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model + %fdupes -s %{buildroot}/%{_firmwaredir}/raspberrypi/bootloader-$model +done + +%files +%license LICENSE +%{_bindir}/rpi-eeprom-config +%{_bindir}/rpi-eeprom-digest +%{_bindir}/rpi-eeprom-update +%config /etc/default/rpi-eeprom-update + +%files firmware +%{_firmwaredir} +%{_firmwaredir}/raspberrypi +%{_firmwaredir}/raspberrypi/bootloader-*/beta +%{_firmwaredir}/raspberrypi/bootloader-*/critical +%{_firmwaredir}/raspberrypi/bootloader-*/stable +%{_firmwaredir}/raspberrypi/bootloader-*/latest +%{_firmwaredir}/raspberrypi/bootloader-*/default + +%changelog diff --git a/rpi-eeprom-update-Use-tr-instead-of-strings.patch b/rpi-eeprom-update-Use-tr-instead-of-strings.patch new file mode 100644 index 0000000..7b6ae4b --- /dev/null +++ b/rpi-eeprom-update-Use-tr-instead-of-strings.patch @@ -0,0 +1,58 @@ +From 8dbe479a2cc88c960c90054a5106ccfcdcd86ab4 Mon Sep 17 00:00:00 2001 +From: Nicolas Saenz Julienne +Date: Thu, 18 Feb 2021 17:49:46 +0100 +Subject: [PATCH] rpi-eeprom-update: Use 'tr' instead of 'strings' + +The 'strings' utility is installed by binutils whereas 'tr' belongs with +coreutils. Minimal systems will only contain the latter, due to binutils' +size (20-50 MB). So, convert all uses of 'strings' to 'tr' so as to +avoid the package dependency. + +The second and third 'tr' usage converts non-ASCII characters into newlines +so as to isolate the "BUILD_TIMESTAMP=1234567890" statement (similar to what +'strings' does). There is no need for this in the first one: non-ASCII +characters are simply discarded as DT aliases have a fixed one line +format. + +[tobijk]: Add hunk for third string replacement + +Signed-off-by: Nicolas Saenz Julienne +Signed-off-by: Tobias Klausmann +--- + rpi-eeprom-update | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/rpi-eeprom-update b/rpi-eeprom-update +index 6b54757..5ddf15a 100755 +--- a/rpi-eeprom-update ++++ b/rpi-eeprom-update +@@ -127,7 +127,7 @@ getBootloaderConfig() { + local blconfig_nvmem_path="" + + if [ -f "${blconfig_alias}" ]; then +- local blconfig_ofnode_path="/sys/firmware/devicetree/base"$(strings "${blconfig_alias}")"" ++ local blconfig_ofnode_path="/sys/firmware/devicetree/base"$(tr -cd [:print:] < "${blconfig_alias}")"" + local blconfig_ofnode_link=$(find -L /sys/bus/nvmem -maxdepth 3 -samefile "${blconfig_ofnode_path}" 2>/dev/null) + + if [ -e "${blconfig_ofnode_link}" ]; then +@@ -194,7 +194,7 @@ applyRecoveryUpdate() + [ -n "${BOOTLOADER_UPDATE_IMAGE}" ] || [ -n "${VL805_UPDATE_IMAGE}" ] || die "No update images specified" + + getBootloaderCurrentVersion +- BOOTLOADER_UPDATE_VERSION=$(strings "${BOOTLOADER_UPDATE_IMAGE}" | grep BUILD_TIMESTAMP | sed 's/.*=//g') ++ BOOTLOADER_UPDATE_VERSION=$(tr -c [:print:] "\n" < "${BOOTLOADER_UPDATE_IMAGE}" | sed '/^BUILD_TIMESTAMP=/s/.*=//p;d') + if [ "${BOOTLOADER_CURRENT_VERSION}" -gt "${BOOTLOADER_UPDATE_VERSION}" ]; then + warn " WARNING: Installing an older bootloader version." + warn " Update the rpi-eeprom package to fetch the latest bootloader images." +@@ -367,7 +367,7 @@ getBootloaderUpdateVersion() { + match=".*/pieeprom-[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9].bin" + latest="$(find "${FIRMWARE_IMAGE_DIR}/" -maxdepth 1 -type f -follow -size "${EEPROM_SIZE}c" -regex "${match}" | sort -r | head -n1)" + if [ -f "${latest}" ]; then +- BOOTLOADER_UPDATE_VERSION=$(strings "${latest}" | grep BUILD_TIMESTAMP | sed 's/.*=//g') ++ BOOTLOADER_UPDATE_VERSION=$(tr -c [:print:] "\n" < "${latest}" | sed '/^BUILD_TIMESTAMP=/s/.*=//p;d') + BOOTLOADER_UPDATE_IMAGE="${latest}" + fi + } +-- +2.46.0 +