We are developing a custom board based on IMX7 sabreSD. We are planning to support eMMC boot and SD boot. So I studied about fuse options in IMX7. Below is the summery of understanding.
Various boot mode and boot selection of device is based on BOOT_MODE and BOOT_CFG values as per TRM. Here BOOT_MODE[1:0] is based on hardware settings and BOOT_CFG values are to be fused into OTP registers for the first time. The 6.3.3 Fusemap Descriptions Table of TRM gives the fuse address values of BOOT_CFG value is 0x470. It also gives the fuse names and fuse functions of 0x470[19:0], 0x470, 0x470, 0x470,0x470 bits.
Now below are my queries related to this fuse map.
- 0x470 offset is mapped to OCOTP_BOOT_CFG0 OTP register. So I need to write one time value to this fuse map based on my boot device selection. Now I am figuring out the 32 bit value for this fuse map. From the TRM, I have managed to find the values of 0x470[15:0] and 0x470 which is BT_FUSE_SEL. Now my question is, how can I select the other values for this 32 bit fuse OTP register? I mean, I want to know the valid values for 0x470[31:16] excluding 0x470 ? Where can I find those details?
- Also can any one confirm, that above understanding about fuse map in IMX7 is correct? Specifically Is the fuse map OTP register OCOTP_BOOT_CFG0 correct?
- In the OTP register section of OCOTP_BOOT_CFG0, I can see below description
Can you please explain, what's that "HW_OCOTP_LOCK_BOOT_CFG" bit is? Which register I need to set that bit?
Thank You in advance.