[PATCH 6/6] fwu: do not allow capsule processing on exceeding Trial Counter threshold
Michal Simek
michal.simek at amd.com
Wed Sep 4 14:36:09 CEST 2024
On 8/30/24 13:40, Sughosh Ganu wrote:
> When in Trial State, the platform keeps a count of the number of times
> it has booted in the Trial State. Once the threshold of the maximum
> allowed count exceeds, the platform reverts to boot from a different
> bank on subsequent boot, thus coming out of the Trial State. It is
> expected that all the updated images would be accepted or rejected
> while the platform is in Trial State. Put in checks so that it is not
> possible to apply an empty capsule once the max Trial Count exceeds.
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu at linaro.org>
> ---
> lib/fwu_updates/fwu.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/lib/fwu_updates/fwu.c b/lib/fwu_updates/fwu.c
> index a94a769a2b..7f085a0211 100644
> --- a/lib/fwu_updates/fwu.c
> +++ b/lib/fwu_updates/fwu.c
> @@ -113,6 +113,8 @@ static int fwu_trial_count_update(void)
> ret = fwu_revert_boot_index();
> if (ret)
> log_err("Unable to revert active_index\n");
> +
> + trial_counter_update(NULL);
> ret = 1;
> } else {
> log_info("Trial State count: attempt %d out of %d\n",
> @@ -762,8 +764,8 @@ static int fwu_boottime_checks(void)
> return 0;
>
> in_trial = in_trial_state();
> - if (!in_trial || (ret = fwu_trial_count_update()) > 0)
> - ret = trial_counter_update(NULL);
> +
> + ret = in_trial ? fwu_trial_count_update() : trial_counter_update(NULL);
>
> if (!ret)
> boottime_check = 1;
Tested-by: Michal Simek <michal.simek at amd.com>
Thanks,
Michal
More information about the U-Boot
mailing list