Hi Ahmad,

On 23-10-02, Ahmad Fatoum wrote:
> From: Rouven Czerwinski <r.czerwin...@pengutronix.de>
> 
> The i.MX8M family of processors moved the SEC_CONFIG_1 fuse to a
> different location. Extend the hab driver with the new location and take
> care of the DIR_BT_DIS fuse which only needs to be burned on i.MX8MQ.
> 
> Signed-off-by: Rouven Czerwinski <r.czerwin...@pengutronix.de>
> Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de>
> ---
>  drivers/hab/hab.c | 32 +++++++++++++++++++++++++++-----
>  1 file changed, 27 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/hab/hab.c b/drivers/hab/hab.c
> index aa848979b467..ee402352f243 100644
> --- a/drivers/hab/hab.c
> +++ b/drivers/hab/hab.c
> @@ -150,23 +150,45 @@ static int imx_hab_permanent_write_enable_ocotp(int 
> enable)
>       return imx_ocotp_permanent_write(enable);
>  }
>  
> +static uint32_t get_sec_config_fuse(void) {
> +     if (cpu_is_mx6()) {
> +             return OCOTP_SEC_CONFIG_1;
> +     } else {
> +             return MX8M_OCOTP_SEC_CONFIG_1;
> +     }

Small nit: remove the {} from the one-liner if-else, same...
         
> +}
> +
>  static int imx_hab_lockdown_device_ocotp(void)
>  {
>       int ret;
> +     uint32_t dis_fuse;
> +     uint32_t sec_fuse;
>  
> -     ret = imx_ocotp_write_field(OCOTP_DIR_BT_DIS, 1);
> -     if (ret < 0)
> -             return ret;
> +     if (cpu_is_mx6() || cpu_is_mx8mq()) {
> +             if (cpu_is_mx6()) {
> +                     dis_fuse = OCOTP_DIR_BT_DIS;
> +             } else {
> +                     dis_fuse = MX8MQ_OCOTP_DIR_BT_DIS;
> +             }

here.

Regards,
  Marco

> +             ret = imx_ocotp_write_field(dis_fuse, 1);
> +             if (ret < 0)
> +                     return ret;
> +     }
>  
> -     return imx_ocotp_write_field(OCOTP_SEC_CONFIG_1, 1);
> +     sec_fuse = get_sec_config_fuse();
> +
> +     return imx_ocotp_write_field(sec_fuse, 1);
>  }
>  
>  static int imx_hab_device_locked_down_ocotp(void)
>  {
>       int ret;
> +     uint32_t fuse;
>       unsigned int v;
>  
> -     ret = imx_ocotp_read_field(OCOTP_SEC_CONFIG_1, &v);
> +     fuse = get_sec_config_fuse();
> +
> +     ret = imx_ocotp_read_field(fuse, &v);
>       if (ret < 0)
>               return ret;
>  
> -- 
> 2.39.2
> 
> 
> 

Reply via email to