AnsweredAssumed Answered

Burning/Checking OTPMK fuses for HAB on I.MX6

Question asked by n0n@m3 on Oct 22, 2013
Latest reply on Jul 19, 2016 by Yuri Muhin

Hello,

 

I'm working on HAB. I'm using a SabreSD board with i.MX6quad processor.

According to “i.MX_6_High_Assurance_Boot_Linux_User_Guide” I burned the SRK to the corresponding fuses and verified it. Following I tried to check if the OTPMK is already burned.

I tried to read out the key with the MFG-Toll and the commands as followed.

...

<CMD> state=”Updater” type=”push” body=”$ cat /sys/fsl_otp/HW_OCOTP_OTPMK0”>cat word 0 of OTPMK field </CMD>

<CMD> state=”Updater” type=”push” body=”$ cat /sys/fsl_otp/HW_OCOTP_OTPMK1”>cat word 1 of OTPMK field </CMD>

<CMD> state=”Updater” type=”push” body=”$ cat /sys/fsl_otp/HW_OCOTP_OTPMK2”>cat word 2 of OTPMK field </CMD>

 

I only got this output.

 

...

UTP: sending Success to kernel for command $ ls /sys/fsl_otp.

UTP: received command '$ cat /sys/fsl_otp/HW_OCOTP_OTPMK0'

UTP: executing "cat /sys/fsl_otp/HW_OCOTP_OTPMK0"

0xbadabada

UTP: sending Success to kernel for command $ cat /sys/fsl_otp/HW_OCOTP_OTPMK0.

utp_poll: pass returned.

UTP: received command '$ cat /sys/fsl_otp/HW_OCOTP_OTPMK1'

UTP: executing "cat /sys/fsl_otp/HW_OCOTP_OTPMK1"

UTP: sending Success to kernel for command $ cat /sys/fsl_otp/HW_OCOTP_OTPMK1.

utp_poll: pass returned.

UTP: received command '$ cat /sys/fsl_otp/HW_OCOTP_OTPMK2'

UTP: executing "cat /sys/fsl_otp/HW_OCOTP_OTPMK2"

UTP: sending Success to kernel for command $ cat /sys/fsl_otp/HW_OCOTP_OTPMK2.

utp_poll: pass returned.

UTP: received command '$ cat /sys/fsl_otp/HW_OCOTP_OTPMK3'

...

 

I tried to burn the OTPMK but also without success.

 

I have a few questions:

 

1) Is the OTPMK already fused?

2) Why do I get 0xbadabada at HW_OCOTP_OTPMK0 and no values for the other fuses?

3) Is it possible to read the OTPMK anyway?

4) Am I doing anything wrong?

5) If I still have to fuse the OTPMK how can I do it?

 

Thanks …

 

Florian

Outcomes