From ebc669e78efc42b6cbf20d0950b11fdcf2ec533b Mon Sep 17 00:00:00 2001
From: j1nx
Date: Tue, 30 Mar 2021 13:52:18 +0200
Subject: [PATCH] Prepare and add to be able to update the eeprom on boot.
---
buildroot-external/Config.in | 1 +
.../configs/rpi4_64-gui_defconfig | 1 +
.../package/rpi-eeprom/Config.in | 6 +++++
.../package/rpi-eeprom/rpi-eeprom.mk | 26 +++++++++++++++++++
4 files changed, 34 insertions(+)
create mode 100644 buildroot-external/package/rpi-eeprom/Config.in
create mode 100644 buildroot-external/package/rpi-eeprom/rpi-eeprom.mk
diff --git a/buildroot-external/Config.in b/buildroot-external/Config.in
index abdc1da7..60eb671f 100644
--- a/buildroot-external/Config.in
+++ b/buildroot-external/Config.in
@@ -83,6 +83,7 @@ endmenu
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-splash/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/qt5ct/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/respeaker/Config.in"
+ source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/rpi-eeprom/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/snapcast/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/spotifyd/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/userland-tools/Config.in"
diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig
index 96f169d8..ebad5810 100644
--- a/buildroot-external/configs/rpi4_64-gui_defconfig
+++ b/buildroot-external/configs/rpi4_64-gui_defconfig
@@ -532,6 +532,7 @@ BR2_PACKAGE_NCPAMIXER=y
BR2_PACKAGE_OVOS_SPLASH=y
BR2_PACKAGE_QT5CT=y
BR2_PACKAGE_RESPEAKER=y
+BR2_PACKAGE_RPI_EEPROM=y
BR2_PACKAGE_SNAPCAST=y
BR2_PACKAGE_SNAPCAST_SERVER=y
BR2_PACKAGE_SPOTIFYD=y
diff --git a/buildroot-external/package/rpi-eeprom/Config.in b/buildroot-external/package/rpi-eeprom/Config.in
new file mode 100644
index 00000000..08f6987d
--- /dev/null
+++ b/buildroot-external/package/rpi-eeprom/Config.in
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_RPI_EEPROM
+ bool "rpi-eeprom"
+ help
+ EEPROM bootloader firmware for Raspberry Pi 4
+
+ https://github.com/raspberrypi/rpi-eeprom
diff --git a/buildroot-external/package/rpi-eeprom/rpi-eeprom.mk b/buildroot-external/package/rpi-eeprom/rpi-eeprom.mk
new file mode 100644
index 00000000..ad248e95
--- /dev/null
+++ b/buildroot-external/package/rpi-eeprom/rpi-eeprom.mk
@@ -0,0 +1,26 @@
+#############################################################
+#
+# rpi-eeprom
+#
+#############################################################
+RPI_EEPROM_VERSION = 16bb29427f96dc8276a7102c0526154a1084bffd
+RPI_EEPROM_SITE = $(call github,raspberrypi,rpi-eeprom,$(RPI_EEPROM_VERSION))
+RPI_EEPROM_LICENSE = BSD-3-Clause
+RPI_EEPROM_LICENSE_FILES = LICENSE
+RPI_EEPROM_INSTALL_IMAGES = YES
+RPI_EEPROM_FIRMWARE_PATH = firmware/beta/pieeprom-2020-10-28.bin
+
+define RPI_EEPROM_BUILD_CMDS
+ $(@D)/rpi-eeprom-config $(@D)/$(RPI_EEPROM_FIRMWARE_PATH) --out $(@D)/default.conf
+ (cat $(@D)/default.conf | grep -v ^$$; echo HDMI_DELAY=0) > $(@D)/boot.conf
+ $(@D)/rpi-eeprom-config $(@D)/$(RPI_EEPROM_FIRMWARE_PATH) --config $(@D)/boot.conf --out $(@D)/pieeprom.upd
+ sha256sum $(@D)/pieeprom.upd | awk '{ print $$1 }' > $(@D)/pieeprom.sig
+ echo "ts: $$(date -u +%s)" >> $(@D)/pieeprom.sig
+endef
+
+define RPI_EEPROM_INSTALL_IMAGES_CMDS
+ $(INSTALL) -D -m 0644 $(@D)/pieeprom.sig $(BINARIES_DIR)/rpi-eeprom/pieeprom.sig
+ $(INSTALL) -D -m 0644 $(@D)/pieeprom.upd $(BINARIES_DIR)/rpi-eeprom/pieeprom.upd
+endef
+
+$(eval $(generic-package))