[U-Boot] [PATCH 2/3] mxs_ocotp: check for errors from the OTP controller after writing

Fabio Estevam festevam at gmail.com
Fri Nov 21 18:10:38 CET 2014


Hi Hector,

On Fri, Nov 21, 2014 at 2:54 PM, Hector Palacios
<hector.palacios at digi.com> wrote:
> The write operation may fail when trying to write to a locked area. In
> this case the ERROR bit is set in the CTRL register. Check for that
> condition and return an error.
>
> Signed-off-by: Hector Palacios <hector.palacios at digi.com>
> ---
>  drivers/misc/mxs_ocotp.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/misc/mxs_ocotp.c b/drivers/misc/mxs_ocotp.c
> index 09002814f2f0..1659ee6a5eec 100644
> --- a/drivers/misc/mxs_ocotp.c
> +++ b/drivers/misc/mxs_ocotp.c
> @@ -221,6 +221,13 @@ static int mxs_ocotp_write_fuse(uint32_t addr, uint32_t mask)
>                 goto fail;
>         }
>
> +       /* Check for errors */
> +       if (readl(&ocotp_regs->hw_ocotp_ctrl) & OCOTP_CTRL_ERROR) {
> +               puts("Failed writing fuses!\n");
> +               ret = -EPERM;
> +               goto fail;
> +       }
> +
>  fail:

What about doing this instead?

       /* Check for errors */
       ret = readl(&ocotp_regs->hw_ocotp_ctrl) & OCOTP_CTRL_ERROR);
       if (ret) {
               printfs("Failed writing the fuses: %d\n", ret);
               goto fail;
       }


More information about the U-Boot mailing list