AnsweredAssumed Answered

How to access the content of the fuse map?

Question asked by Ed Sutter on Jul 16, 2020
Latest reply on Aug 12, 2020 by Victor Jimenez

The imx1060 fusemap (ref-manual chapter 22) is confusing me, so I could use some clarification...


Seems the fusemap chapter goes into a lot of detail regarding fuse addresses (ranging from 0x400 - 0x8c0) and their bits; but there is no discussion regarding how to access that address range.  Then chapter 23 (OCOTP) seems to say that the OCOTP is the mechanism used to access the fuse map.  Referring to the SDK's OCOTP code, I can use OCOTP_Init(), OCOTP_ReloadShadowRegister()OCOTP_ReadFuseShadowRegister() and OCOTP_WriteFuseShadowRegister() to read/write the fuses; but I don't understand how the address passed to OCOTP_ReadFuseShadowRegister() corresponds to some entry in the fusemap.


Based on the "OTP Memory Footprint" (Figure 23-2 in ref manual), there are several "not-reserved" shadow registers that can be accessed as follows:


0x00:   LOCK

0x05:   BOOT_CFG

0x06:   BOOT_CFG

0x07:   BOOT_CFG

0x0F:   ANALOG

0x20:   SJC

0x21:   SJC

0x22:   MAC

0x23:   MAC

0x24:   MAC

0x26:   GP1

0x27:   GP2

0x28:   SW_GP1



0x38:   GP3

0x39:   GP3

0x3A:   GP3

0x3B:   GP3


Do each of these registers somehow correspond to entries fusemap?  If yes, how?  If no, what am I missing?

Are the functions I mention above the correct hooks into the fusemap?