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