1*0f67e09eSBenoît ThébaudeauDriver implementing the fuse API for Freescale's IC Identification Module (IIM) 2*0f67e09eSBenoît Thébaudeau 3*0f67e09eSBenoît ThébaudeauThis IP can be found on the following SoCs: 4*0f67e09eSBenoît Thébaudeau - MPC512x, 5*0f67e09eSBenoît Thébaudeau - i.MX25, 6*0f67e09eSBenoît Thébaudeau - i.MX27, 7*0f67e09eSBenoît Thébaudeau - i.MX31, 8*0f67e09eSBenoît Thébaudeau - i.MX35, 9*0f67e09eSBenoît Thébaudeau - i.MX51, 10*0f67e09eSBenoît Thébaudeau - i.MX53. 11*0f67e09eSBenoît Thébaudeau 12*0f67e09eSBenoît ThébaudeauThe section numbers in this file refer to the i.MX25 Reference Manual. 13*0f67e09eSBenoît Thébaudeau 14*0f67e09eSBenoît ThébaudeauA fuse word contains 8 fuse bit slots, as explained in 30.4.2.2.1. 15*0f67e09eSBenoît Thébaudeau 16*0f67e09eSBenoît ThébaudeauA bank contains 256 fuse word slots, as shown by the memory map in 30.3.1. 17*0f67e09eSBenoît Thébaudeau 18*0f67e09eSBenoît ThébaudeauSome fuse bit or word slots may not have the corresponding fuses actually 19*0f67e09eSBenoît Thébaudeauimplemented in the fusebox. 20*0f67e09eSBenoît Thébaudeau 21*0f67e09eSBenoît ThébaudeauSee the README files of the SoCs using this driver in order to know the 22*0f67e09eSBenoît Thébaudeauconventions used by U-Boot to store some specific data in the fuses, e.g. MAC 23*0f67e09eSBenoît Thébaudeauaddresses. 24*0f67e09eSBenoît Thébaudeau 25*0f67e09eSBenoît ThébaudeauFuse operations: 26*0f67e09eSBenoît Thébaudeau 27*0f67e09eSBenoît Thébaudeau Read 28*0f67e09eSBenoît Thébaudeau Read operations are implemented as read accesses to the shadow registers, 29*0f67e09eSBenoît Thébaudeau using "Word y of Bank x" from the register summary in 30.3.2. This is 30*0f67e09eSBenoît Thébaudeau explained in detail in 30.4.5.1. 31*0f67e09eSBenoît Thébaudeau 32*0f67e09eSBenoît Thébaudeau Sense 33*0f67e09eSBenoît Thébaudeau Sense operations are implemented as explained in 30.4.5.2. 34*0f67e09eSBenoît Thébaudeau 35*0f67e09eSBenoît Thébaudeau Program 36*0f67e09eSBenoît Thébaudeau Program operations are implemented as explained in 30.4.5.3. Following 37*0f67e09eSBenoît Thébaudeau this operation, the shadow registers are reloaded by the hardware (not 38*0f67e09eSBenoît Thébaudeau immediately, but this does not make any difference for a user reading 39*0f67e09eSBenoît Thébaudeau these registers). 40*0f67e09eSBenoît Thébaudeau 41*0f67e09eSBenoît Thébaudeau Override 42*0f67e09eSBenoît Thébaudeau Override operations are implemented as write accesses to the shadow 43*0f67e09eSBenoît Thébaudeau registers, as explained in 30.4.5.4. 44*0f67e09eSBenoît Thébaudeau 45*0f67e09eSBenoît ThébaudeauConfiguration: 46*0f67e09eSBenoît Thébaudeau 47*0f67e09eSBenoît Thébaudeau CONFIG_FSL_IIM 48*0f67e09eSBenoît Thébaudeau Define this to enable the fsl_iim driver. 49