[PATCH v3 15/24] efi_loader: fwu: fwu_arm_psa: Disable trial state handling
abdellatif.elkhlifi at arm.com
abdellatif.elkhlifi at arm.com
Mon Jul 21 13:18:07 CEST 2025
From: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
No need for trial state handling in U-Boot for FWU Arm PSA
In FWU Arm PSA mode, trial state is handled by Secure world.
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi at arm.com>
Cc: Heinrich Schuchardt <xypron.glpk at gmx.de>
Cc: Sughosh Ganu <sughosh.ganu at linaro.org>
Cc: Tom Rini <trini at konsulko.com>
Cc: Ilias Apalodimas <ilias.apalodimas at linaro.org>
Cc: Simon Glass <sjg at chromium.org>
Cc: Michal Simek <michal.simek at amd.com>
Cc: Marek Vasut <marek.vasut+renesas at mailbox.org>
Cc: Casey Connolly <casey.connolly at linaro.org>
Cc: Adriano Cordova <adrianox at gmail.com>
---
lib/efi_loader/efi_capsule.c | 7 +++++--
lib/fwu_updates/fwu.c | 8 +++++++-
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c
index 1dac691d24d..113cfe30fde 100644
--- a/lib/efi_loader/efi_capsule.c
+++ b/lib/efi_loader/efi_capsule.c
@@ -562,7 +562,9 @@ static efi_status_t efi_capsule_update_firmware(
if (IS_ENABLED(CONFIG_FWU_MULTI_BANK_UPDATE)) {
if (fwu_empty_capsule(capsule_data)) {
if (fwu_empty_capsule_checks_pass()) {
- return fwu_empty_capsule_process(capsule_data);
+ return !IS_ENABLED(CONFIG_FWU_ARM_PSA) ?
+ fwu_empty_capsule_process(capsule_data) :
+ 0;
} else {
log_err("FWU empty capsule checks failed. Cannot start update\n");
return EFI_INVALID_PARAMETER;
@@ -1377,7 +1379,8 @@ efi_status_t efi_launch_capsules(void)
efi_capsule_scan_done();
- if (IS_ENABLED(CONFIG_FWU_MULTI_BANK_UPDATE)) {
+ if (IS_ENABLED(CONFIG_FWU_MULTI_BANK_UPDATE) &&
+ !IS_ENABLED(CONFIG_FWU_ARM_PSA)) {
if (capsule_update == true && update_status == true) {
ret = fwu_post_update_process(fw_accept_os);
} else if (capsule_update == true && update_status == false) {
diff --git a/lib/fwu_updates/fwu.c b/lib/fwu_updates/fwu.c
index 46b6f9356a7..7ae3dfffae2 100644
--- a/lib/fwu_updates/fwu.c
+++ b/lib/fwu_updates/fwu.c
@@ -345,6 +345,11 @@ int fwu_get_mdata(struct fwu_mdata *mdata)
if (parts_ok[i])
continue;
+ if (IS_ENABLED(CONFIG_FWU_ARM_PSA)) {
+ log_err("FWU metadata copy %d invalid\n", i);
+ return -ENOTSYNC;
+ }
+
memcpy(parts_mdata[i], parts_mdata[1 - i], mdata_size);
err = fwu_sync_mdata(parts_mdata[i], i ? SECONDARY_PART : PRIMARY_PART);
if (err) {
@@ -786,7 +791,8 @@ static int fwu_boottime_checks(void)
in_trial = in_trial_state();
- ret = in_trial ? fwu_trial_count_update() : trial_counter_update(NULL);
+ ret = (in_trial && !IS_ENABLED(CONFIG_FWU_ARM_PSA)) ?
+ fwu_trial_count_update() : trial_counter_update(NULL);
if (!ret)
boottime_check = 1;
--
2.25.1
More information about the U-Boot
mailing list