Add cmd_stm32key support for STM32MP21x SoCs family.
Signed-off-by: Yann Gautier <[email protected]>
Signed-off-by: Nicolas Le Bayon <[email protected]>
Signed-off-by: Patrice Chotard <[email protected]>
---
arch/arm/mach-stm32mp/cmd_stm32key.c | 70 +++++++++++++++++++-----------------
1 file changed, 37 insertions(+), 33 deletions(-)
diff --git a/arch/arm/mach-stm32mp/cmd_stm32key.c
b/arch/arm/mach-stm32mp/cmd_stm32key.c
index f5def4cd2dc..f1e0a3e817c 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32key.c
+++ b/arch/arm/mach-stm32mp/cmd_stm32key.c
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
/*
- * Copyright (C) 2019, STMicroelectronics - All Rights Reserved
+ * Copyright (C) 2019-2024, STMicroelectronics - All Rights Reserved
*/
#include <command.h>
@@ -16,21 +16,21 @@
* Closed device: OTP0
* STM32MP15x: bit 6 of OTP0
* STM32MP13x: 0b111111 = 0x3F for OTP_SECURED closed device
- * STM32MP25x: bit 0 of OTP18
+ * STM32MP2xx: bit 0 of OTP18
*/
#define STM32MP1_OTP_CLOSE_ID 0
#define STM32_OTP_STM32MP13X_CLOSE_MASK GENMASK(5, 0)
#define STM32_OTP_STM32MP15X_CLOSE_MASK BIT(6)
-#define STM32MP25_OTP_WORD8 8
-#define STM32_OTP_STM32MP25X_BOOTROM_CLOSE_MASK GENMASK(7, 0)
-#define STM32MP25_OTP_CLOSE_ID 18
-#define STM32_OTP_STM32MP25X_CLOSE_MASK GENMASK(3, 0)
-#define STM32_OTP_STM32MP25X_PROVISIONING_DONE_MASK GENMASK(7, 4)
-#define STM32MP25_OTP_HWCONFIG 124
-#define STM32_OTP_STM32MP25X_DISABLE_SCAN_MASK BIT(20)
+#define STM32MP2X_OTP_WORD8 8
+#define STM32_OTP_STM32MP2X_BOOTROM_CLOSE_MASK GENMASK(7, 0)
+#define STM32MP2X_OTP_CLOSE_ID 18
+#define STM32_OTP_STM32MP2X_CLOSE_MASK GENMASK(3, 0)
+#define STM32_OTP_STM32MP2X_PROVISIONING_DONE_MASK GENMASK(7, 4)
+#define STM32MP2X_OTP_HWCONFIG 124
+#define STM32_OTP_STM32MP2X_DISABLE_SCAN_MASK BIT(20)
-#define STM32MP25_OTP_BOOTROM_CONF8 17
-#define STM32_OTP_STM32MP25X_OEM_KEY2_EN BIT(8)
+#define STM32MP2X_OTP_BOOTROM_CONF8 17
+#define STM32_OTP_STM32MP2X_OEM_KEY2_EN BIT(8)
/* PKH is the first element of the key list */
#define STM32KEY_PKH 0
@@ -69,7 +69,7 @@ const struct stm32key stm32mp15_list[] = {
static int post_process_oem_key2(struct udevice *dev);
-const struct stm32key stm32mp25_list[] = {
+const struct stm32key stm32mp2x_list[] = {
[STM32KEY_PKH] = {
.name = "OEM-KEY1",
.desc = "Hash of the 8 ECC Public Keys Hashes Table (ECDSA is
the authentication algorithm) for FSBLA or M",
@@ -138,23 +138,23 @@ const struct otp_close stm32mp15_close_state_otp[] = {
}
};
-const struct otp_close stm32mp25_close_state_otp[] = {
+const struct otp_close stm32mp2x_close_state_otp[] = {
{
- .word = STM32MP25_OTP_WORD8,
- .mask_wr = STM32_OTP_STM32MP25X_BOOTROM_CLOSE_MASK,
+ .word = STM32MP2X_OTP_WORD8,
+ .mask_wr = STM32_OTP_STM32MP2X_BOOTROM_CLOSE_MASK,
.mask_rd = 0,
.close_status_ops = NULL
},
{
- .word = STM32MP25_OTP_CLOSE_ID,
- .mask_wr = STM32_OTP_STM32MP25X_CLOSE_MASK |
- STM32_OTP_STM32MP25X_PROVISIONING_DONE_MASK,
- .mask_rd = STM32_OTP_STM32MP25X_CLOSE_MASK,
+ .word = STM32MP2X_OTP_CLOSE_ID,
+ .mask_wr = STM32_OTP_STM32MP2X_CLOSE_MASK |
+ STM32_OTP_STM32MP2X_PROVISIONING_DONE_MASK,
+ .mask_rd = STM32_OTP_STM32MP2X_CLOSE_MASK,
.close_status_ops = compare_any_bits
},
{
- .word = STM32MP25_OTP_HWCONFIG,
- .mask_wr = STM32_OTP_STM32MP25X_DISABLE_SCAN_MASK,
+ .word = STM32MP2X_OTP_HWCONFIG,
+ .mask_wr = STM32_OTP_STM32MP2X_DISABLE_SCAN_MASK,
.mask_rd = 0,
.close_status_ops = NULL
},
@@ -171,8 +171,9 @@ static u8 get_key_nb(void)
if (IS_ENABLED(CONFIG_STM32MP15X))
return ARRAY_SIZE(stm32mp15_list);
- if (IS_ENABLED(CONFIG_STM32MP23X) || IS_ENABLED(CONFIG_STM32MP25X))
- return ARRAY_SIZE(stm32mp25_list);
+ if (IS_ENABLED(CONFIG_STM32MP21X) || IS_ENABLED(CONFIG_STM32MP23X) ||
+ IS_ENABLED(CONFIG_STM32MP25X))
+ return ARRAY_SIZE(stm32mp2x_list);
}
static const struct stm32key *get_key(u8 index)
@@ -183,8 +184,9 @@ static const struct stm32key *get_key(u8 index)
if (IS_ENABLED(CONFIG_STM32MP15X))
return &stm32mp15_list[index];
- if (IS_ENABLED(CONFIG_STM32MP23X) || IS_ENABLED(CONFIG_STM32MP25X))
- return &stm32mp25_list[index];
+ if (IS_ENABLED(CONFIG_STM32MP21X) || IS_ENABLED(CONFIG_STM32MP23X) ||
+ IS_ENABLED(CONFIG_STM32MP25X))
+ return &stm32mp2x_list[index];
}
static u8 get_otp_close_state_nb(void)
@@ -195,8 +197,9 @@ static u8 get_otp_close_state_nb(void)
if (IS_ENABLED(CONFIG_STM32MP15X))
return ARRAY_SIZE(stm32mp15_close_state_otp);
- if (IS_ENABLED(CONFIG_STM32MP23X) || IS_ENABLED(CONFIG_STM32MP25X))
- return ARRAY_SIZE(stm32mp25_close_state_otp);
+ if (IS_ENABLED(CONFIG_STM32MP21X) || IS_ENABLED(CONFIG_STM32MP23X) ||
+ IS_ENABLED(CONFIG_STM32MP25X))
+ return ARRAY_SIZE(stm32mp2x_close_state_otp);
}
static const struct otp_close *get_otp_close_state(u8 index)
@@ -207,8 +210,9 @@ static const struct otp_close *get_otp_close_state(u8 index)
if (IS_ENABLED(CONFIG_STM32MP15X))
return &stm32mp15_close_state_otp[index];
- if (IS_ENABLED(CONFIG_STM32MP23X) || IS_ENABLED(CONFIG_STM32MP25X))
- return &stm32mp25_close_state_otp[index];
+ if (IS_ENABLED(CONFIG_STM32MP21X) || IS_ENABLED(CONFIG_STM32MP23X) ||
+ IS_ENABLED(CONFIG_STM32MP25X))
+ return &stm32mp2x_close_state_otp[index];
}
static int get_misc_dev(struct udevice **dev)
@@ -352,14 +356,14 @@ static int post_process_oem_key2(struct udevice *dev)
int ret;
u32 val;
- ret = misc_read(dev, STM32_BSEC_OTP(STM32MP25_OTP_BOOTROM_CONF8), &val,
4);
+ ret = misc_read(dev, STM32_BSEC_OTP(STM32MP2X_OTP_BOOTROM_CONF8), &val,
4);
if (ret != 4) {
- log_err("Error %d failed to read
STM32MP25_OTP_BOOTROM_CONF8\n", ret);
+ log_err("Error %d failed to read
STM32MP2X_OTP_BOOTROM_CONF8\n", ret);
return -EIO;
}
- val |= STM32_OTP_STM32MP25X_OEM_KEY2_EN;
- ret = misc_write(dev, STM32_BSEC_OTP(STM32MP25_OTP_BOOTROM_CONF8),
&val, 4);
+ val |= STM32_OTP_STM32MP2X_OEM_KEY2_EN;
+ ret = misc_write(dev, STM32_BSEC_OTP(STM32MP2X_OTP_BOOTROM_CONF8),
&val, 4);
if (ret != 4) {
log_err("Error %d failed to write OEM_KEY2_ENABLE\n", ret);
return -EIO;
--
2.43.0