[PATCH] fwu: Allow code to properly decode trial state

Current code after capsule update (mtd write) is not changing active_index in mdata to previous_active_index. On the reboot this is shown but showing message "Boot idx 1 is not matching active idx 0, changing active_idx" which is changing active_idx and writing mdata to flash.
But when this message is visible it is not checking which state that images are. If they have acceptance bit setup to yes everything is fine and valid images are booted (doesn't mean the latest one). But if acceptance bit is no and images are in trial state in_trial variable is never setup. Which means that from new flashed image stable image can be rewritten because in_trial is not setup properly.
Signed-off-by: Michal Simek michal.simek@amd.com ---
lib/fwu_updates/fwu.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/lib/fwu_updates/fwu.c b/lib/fwu_updates/fwu.c index cd5c3b64773b..38b50cb7628c 100644 --- a/lib/fwu_updates/fwu.c +++ b/lib/fwu_updates/fwu.c @@ -666,8 +666,6 @@ static int fwu_boottime_checks(void *ctx, struct event *event) ret = fwu_set_active_index(boot_idx); if (!ret) boottime_check = 1; - - return 0; }
if (efi_init_obj_list() != EFI_SUCCESS)

On Thu, 13 Jul 2023 at 09:35, Michal Simek michal.simek@amd.com wrote:
Current code after capsule update (mtd write) is not changing active_index in mdata to previous_active_index. On the reboot this is shown but showing message "Boot idx 1 is not matching active idx 0, changing active_idx" which is changing active_idx and writing mdata to flash.
But when this message is visible it is not checking which state that images are. If they have acceptance bit setup to yes everything is fine and valid images are booted (doesn't mean the latest one). But if acceptance bit is no and images are in trial state in_trial variable is never setup. Which means that from new flashed image stable image can be rewritten because in_trial is not setup properly.
Signed-off-by: Michal Simek michal.simek@amd.com
Acked-by: Jassi Brar jaswinder.singh@linaro.org

On Thu, Jul 13, 2023 at 04:35:24PM +0200, Michal Simek wrote:
Current code after capsule update (mtd write) is not changing active_index in mdata to previous_active_index. On the reboot this is shown but showing message "Boot idx 1 is not matching active idx 0, changing active_idx" which is changing active_idx and writing mdata to flash.
But when this message is visible it is not checking which state that images are. If they have acceptance bit setup to yes everything is fine and valid images are booted (doesn't mean the latest one). But if acceptance bit is no and images are in trial state in_trial variable is never setup. Which means that from new flashed image stable image can be rewritten because in_trial is not setup properly.
Signed-off-by: Michal Simek michal.simek@amd.com Acked-by: Jassi Brar jaswinder.singh@linaro.org
Applied to u-boot/master, thanks!
participants (3)
-
Jassi Brar
-
Michal Simek
-
Tom Rini