]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
stm32mp: stm32prog: fix OTP read/write error management
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Thu, 27 Apr 2023 13:36:36 +0000 (15:36 +0200)
committerPatrice Chotard <patrice.chotard@foss.st.com>
Fri, 16 Jun 2023 09:16:31 +0000 (11:16 +0200)
Avoid to ignore the OTP read/write error and transmits the error
to STM32CubeProgrammer.

Today the error is only displayed in log error:
so the user on HOST thinks the OTP operation is performed.

Reported-by: Mickael GARDET <m.gardet@overkiz.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Fixes: 75ea9e75931c ("stm32mp: stm32prog: add TEE support in stm32prog command")
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c

index 773bae81f667a291b6193bb2aa23739ecc5d0378..1e40bdf0f6c088f263b80f8f4a77eed85817b403 100644 (file)
@@ -1446,8 +1446,11 @@ int stm32prog_otp_write(struct stm32prog_data *data, u32 offset, u8 *buffer,
 
        if (!data->otp_part) {
                data->otp_part = memalign(CONFIG_SYS_CACHELINE_SIZE, otp_size);
-               if (!data->otp_part)
+               if (!data->otp_part) {
+                       stm32prog_err("OTP write issue %d", -ENOMEM);
+
                        return -ENOMEM;
+               }
        }
 
        if (!offset)
@@ -1510,6 +1513,8 @@ int stm32prog_otp_read(struct stm32prog_data *data, u32 offset, u8 *buffer,
        memcpy(buffer, (void *)((uintptr_t)data->otp_part + offset), *size);
 
 end_otp_read:
+       if (result)
+               stm32prog_err("OTP read issue %d", result);
        log_debug("%s: result %i\n", __func__, result);
 
        return result;
@@ -1563,6 +1568,8 @@ int stm32prog_otp_start(struct stm32prog_data *data)
 
        free(data->otp_part);
        data->otp_part = NULL;
+       if (result)
+               stm32prog_err("OTP write issue %d", result);
        log_debug("%s: result %i\n", __func__, result);
 
        return result;