<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body>
<p>This message could not be delivered immediately due to an internal mail routing issue.<br>
The mail routing error has been resolved in the meantime.<br>
We apologize for the delay in delivery and any inconvenience this may have caused.<br>
In case of any questions please contact us via it@hexagon.com.<br>
<br>
Original sender: patrick.delaunay@foss.st.com<br>
Original delivery time: 28-Jun-2021 01:03 PM (UTC)<br>
-----------------------------------------------------------------------------------------------------------------------<br>
This email is not from Hexagon’s Office 365 instance. Please be careful while clicking links, opening attachments, or replying to this email. Handle errors in fuse_hash_value function. Signed-off-by: Patrick Delaunay
<patrick.delaunay@foss.st.com>--- arch/arm/mach-stm32mp/cmd_stm32key.c | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-stm32mp/cmd_stm32key.c b/arch/arm/mach-stm32mp/cmd_stm32key.c index d2045a5983..2529139ebc
 100644 --- a/arch/arm/mach-stm32mp/cmd_stm32key.c +++ b/arch/arm/mach-stm32mp/cmd_stm32key.c @@ -25,7 +25,7 @@ static void read_hash_value(u32 addr) } } -static void fuse_hash_value(u32 addr, bool print) +static int fuse_hash_value(u32 addr, bool print) {
 struct udevice *dev; u32 word, val; @@ -36,21 +36,25 @@ static void fuse_hash_value(u32 addr, bool print) &dev); if (ret) { log_err("Can't find stm32mp_bsec driver\n"); - return; + return ret; } for (i = 0; i < STM32_OTP_HASH_KEY_SIZE; i++) { - if (print)
 - printf("Fuse OTP %i : %x\n", - STM32_OTP_HASH_KEY_START + i, - __be32_to_cpu(*(u32 *)addr)); - word = STM32_OTP_HASH_KEY_START + i; val = __be32_to_cpu(*(u32 *)addr); - misc_write(dev, STM32_BSEC_OTP(word), &val, 4); + if (print) + printf("Fuse OTP %i :
 %x\n", word, val); + + ret = misc_write(dev, STM32_BSEC_OTP(word), &val, 4); + if (ret != 4) { + log_err("Fuse OTP %i failed\n", word); + return ret; + } addr += 4; } + + return 0; } static int confirm_prog(void) @@ -104,7 +108,9 @@ static int do_stm32key_fuse(struct
 cmd_tbl *cmdtp, int flag, int argc, char *con if (!yes && !confirm_prog()) return CMD_RET_FAILURE; - fuse_hash_value(addr, !yes); + if (fuse_hash_value(addr, !yes)) + return CMD_RET_FAILURE; + printf("Hash key updated !\n"); return CMD_RET_SUCCESS; -- 2.25.1
</p>
</body>
</html>