Our board has pins BOOT_MODE0 and BOOT_MODE1, but no additional pins for setting up boot modes (as are available in the SABRE SD design) without flashing fuses. So our way forward is to flash fuses, but we want to make sure we are doing it correctly.
We have found two ways of flashing fuses:
From "Manufacturing Tool V2 Quick Start Guide" associated with the mfgtool documents, we found the following three suggested lines of code (to be added to the configuration file ucl2.xml):
<CMD state="Updater" type="push" body="$ ls /sys/fsl_otp ">Showing HW_OCOTP fuse bank</CMD>
<CMD state="Updater" type="push" body="$ echo 0x11204154 > /sys/fsl_otp/HW_OCOTP_CFG1">write 0x11204154 to HW_OCOTP_CFG1 fuse bank</CMD>
<CMD state="Updater" type="push" body="$ cat /sys/fsl_otp/HW_OCOTP_CFG1">Read value from HW_OCOTP_CFG1 fuse bank</CMD>
NOTE: we believe (and added to the above lines of code) that “HW_OCOTP_CFG1” is the fuse bank we need to change (IMX6DQRM chapter 8 table 8-8.) We also believe that the fuse value is 0x11204154 (according to the same table, based upon the returned cat value on CFG1 fuse bank of 0x112041d4.)
Question: can you confirm this fuse bank and value (HW_OCOTP_CFG1, 0x11204154)?
The other option is to use the uboot to flash the fuses. This is done as show on this link https://community.freescale.com/docs/DOC-95458. This link indicates that we should run imxotp from uboot as follows:
imxotp blow [--force] <index> <value>
NOTE: the “<index>” is the hex representation for the fuse name. We think that the “<value>” is the fuse value 0x11204154 (also according to Reference Manual, chapter 8 table 8-8).
We do not know the hex value for the “<index>”.
(1) Are we correct in trying thus to change “<index>” and “<value>” in order to boot from the SD card?
(2) Is the fuse value 0x11204154 correct?
(3) Is CFG1 the correct fuse bank for us to use, and if so what is the correct “<index>” hex value?