[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