xref: /openbmc/u-boot/doc/README.fsl_iim (revision ec7023db8dc95966919589541f1ca09355a3f7a5)
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