From 8cf9a932fa7cebbfad1e9fab0ea633482adb8436 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 11 Aug 2024 23:45:46 +0100 Subject: [PATCH] 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 --- .../lib/preinit/07_trigger_fip_scrubbing | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 target/linux/mediatek/base-files/lib/preinit/07_trigger_fip_scrubbing 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