From c0bfc88f8e8e03974834cbcacbbfbd5f202a2857 Mon Sep 17 00:00:00 2001 From: Manish V Badarkhe Date: Sun, 20 Jun 2021 22:29:22 +0100 Subject: [PATCH] feat(fwu): avoid NV counter upgrade in trial run state Avoided NV counter update when the system is running in trial run state. Change-Id: I5da6a6760f8a9faff777f2ff879156e9c3c76726 Signed-off-by: Manish V Badarkhe --- drivers/auth/auth_mod.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/auth/auth_mod.c b/drivers/auth/auth_mod.c index c7f84afdf..917ee4a28 100644 --- a/drivers/auth/auth_mod.c +++ b/drivers/auth/auth_mod.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2015-2021, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -242,6 +243,7 @@ static int auth_nvctr(const auth_method_param_nv_ctr_t *param, unsigned int data_len, len, i; unsigned int plat_nv_ctr; int rc = 0; + bool is_trial_run = false; /* Get the counter value from current image. The AM expects the IPM * to return the counter value as a DER encoded integer */ @@ -284,7 +286,10 @@ static int auth_nvctr(const auth_method_param_nv_ctr_t *param, /* Invalid NV-counter */ return 1; } else if (*cert_nv_ctr > plat_nv_ctr) { - *need_nv_ctr_upgrade = true; +#if PSA_FWU_SUPPORT && IMAGE_BL2 + is_trial_run = fwu_is_trial_run_state(); +#endif /* PSA_FWU_SUPPORT && IMAGE_BL2 */ + *need_nv_ctr_upgrade = !is_trial_run; } return 0;