aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-stm32mp
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@foss.st.com>2022-09-15 18:11:38 +0200
committerPatrice Chotard <patrice.chotard@foss.st.com>2022-09-23 14:28:25 +0200
commitc6327ba40f59de42cfac4b6e489f4a7a1539ddf5 (patch)
treeff4275a6913e6d80f5e94782c26abb5a18c45006 /arch/arm/mach-stm32mp
parent89f3745152ab1a88eb9b6629a12b4ff0efe8c61b (diff)
downloadu-boot-c6327ba40f59de42cfac4b6e489f4a7a1539ddf5.zip
u-boot-c6327ba40f59de42cfac4b6e489f4a7a1539ddf5.tar.gz
u-boot-c6327ba40f59de42cfac4b6e489f4a7a1539ddf5.tar.bz2
arm: stm32mp: add defines for BSEC_LOCK status in stm32key command
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@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Diffstat (limited to 'arch/arm/mach-stm32mp')
-rw-r--r--arch/arm/mach-stm32mp/cmd_stm32key.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/arch/arm/mach-stm32mp/cmd_stm32key.c b/arch/arm/mach-stm32mp/cmd_stm32key.c
index 68f2892..1899d91 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);