[openwrt/openwrt] mediatek: add script to trigger scrubbing of FIP-in-UBI

LEDE Commits lede-commits at lists.infradead.org
Mon Aug 12 03:32:39 PDT 2024


dangole pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/8cf9a932fa7cebbfad1e9fab0ea633482adb8436

commit 8cf9a932fa7cebbfad1e9fab0ea633482adb8436
Author: Daniel Golle <daniel at makrotopia.org>
AuthorDate: Sun Aug 11 23:45:46 2024 +0100

    mediatek: add script to trigger scrubbing of FIP-in-UBI
    
    Read the 'fip' static volume in order to trigger scrubbing in case of
    detecting flipped bits while reading.
    We have to do this in Linux because we never read or touch the 'fip'
    volume and the UBISPL implementation in ARM TrustedFirmware-A does NOT
    handle scrubbing itself.
    
    Signed-off-by: Daniel Golle <daniel at makrotopia.org>
---
 .../base-files/lib/preinit/07_trigger_fip_scrubbing      | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/target/linux/mediatek/base-files/lib/preinit/07_trigger_fip_scrubbing b/target/linux/mediatek/base-files/lib/preinit/07_trigger_fip_scrubbing
new file mode 100644
index 0000000000..74458e075b
--- /dev/null
+++ b/target/linux/mediatek/base-files/lib/preinit/07_trigger_fip_scrubbing
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+trigger_fip_scrubbing() {
+	local vol voltype volname
+	for vol in /sys/class/ubi/ubi*_*; do
+		[ -e "$vol" ] || continue
+		voltype="$(cat "$vol"/type)"
+		volname="$(cat "$vol"/name)"
+		if [ "$voltype" = "static" ] && [ "$volname" = "fip" ]; then
+			cat "/dev/${vol##*/}" > /dev/null
+			break
+		fi
+	done
+}
+
+boot_hook_add preinit_main trigger_fip_scrubbing




More information about the lede-commits mailing list