[PATCH 1/4] arm: stm32mp: add defines for BSEC_LOCK status in stm32key command
Patrice CHOTARD
patrice.chotard at foss.st.com
Mon Sep 19 08:52:22 CEST 2022
Hi Patrick
On 9/15/22 18:11, Patrick Delaunay wrote:
> Add defines for value used in stm32key for BSEC permanent lock status
> and error.
>
> This patch is a preliminary step to support more lock status in BSEC
> driver.
>
> Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
>
> arch/arm/mach-stm32mp/cmd_stm32key.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm/mach-stm32mp/cmd_stm32key.c b/arch/arm/mach-stm32mp/cmd_stm32key.c
> index 68f28922d1e..1899d91ecb5 100644
> --- a/arch/arm/mach-stm32mp/cmd_stm32key.c
> +++ b/arch/arm/mach-stm32mp/cmd_stm32key.c
> @@ -19,6 +19,9 @@
> #define STM32_OTP_HASH_KEY_START 24
> #define STM32_OTP_HASH_KEY_SIZE 8
>
> +#define BSEC_LOCK_ERROR (-1)
> +#define BSEC_LOCK_PERM BIT(0)
> +
> static int get_misc_dev(struct udevice **dev)
> {
> int ret;
> @@ -60,14 +63,14 @@ static int read_hash_otp(bool print, bool *locked, bool *closed)
> val = ~0x0;
> ret = misc_read(dev, STM32_BSEC_LOCK(word), &lock, 4);
> if (ret != 4)
> - lock = -1;
> + lock = BSEC_LOCK_ERROR;
> if (print)
> - printf("OTP HASH %i: %x lock : %d\n", word, val, lock);
> + printf("OTP HASH %i: %x lock : %x\n", word, val, lock);
> if (val == ~0x0)
> nb_invalid++;
> else if (val == 0x0)
> nb_zero++;
> - if (lock == 1)
> + if (lock & BSEC_LOCK_PERM)
> nb_lock++;
> }
>
> @@ -77,13 +80,13 @@ static int read_hash_otp(bool print, bool *locked, bool *closed)
> val = 0x0;
> ret = misc_read(dev, STM32_BSEC_LOCK(word), &lock, 4);
> if (ret != 4)
> - lock = -1;
> + lock = BSEC_LOCK_ERROR;
>
> status = (val & STM32_OTP_CLOSE_MASK) == STM32_OTP_CLOSE_MASK;
> if (closed)
> *closed = status;
> if (print)
> - printf("OTP %d: closed status: %d lock : %d\n", word, status, lock);
> + printf("OTP %d: closed status: %d lock : %x\n", word, status, lock);
>
> status = (nb_lock == STM32_OTP_HASH_KEY_SIZE);
> if (locked)
> @@ -128,7 +131,7 @@ static int fuse_hash_value(u32 addr, bool print)
> return ret;
> }
> /* on success, lock the OTP for HASH key */
> - val = 1;
> + val = BSEC_LOCK_PERM;
> ret = misc_write(dev, STM32_BSEC_LOCK(word), &val, 4);
> if (ret != 4) {
> log_err("Lock OTP %i failed\n", word);
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice
More information about the U-Boot
mailing list