Hi Fabio, On Monday, December 23, 2013 4:07:17 PM, Fabio Estevam wrote: > From: Fabio Estevam <fabio.este...@freescale.com> > > When using the fuse API in U-boot user must calculate the 'bank' and 'word' > values. > > Provide a real example on how to calculate such values for the mx6q. > > Signed-off-by: Fabio Estevam <fabio.este...@freescale.com> > --- > Changes since v2: > - Also mention that the bank/row values can be retrieved from the manual > - Add the 'fuse read 4 2 2' example > Changes since v1: > - Move the example into doc/README.imx6 > > doc/README.imx6 | 76 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 76 insertions(+) > > diff --git a/doc/README.imx6 b/doc/README.imx6 > index 513a06e..a6b9158 100644 > --- a/doc/README.imx6 > +++ b/doc/README.imx6 > @@ -8,3 +8,79 @@ SoC. > > 1.1 MAC Address: It is stored in fuse bank 4, with the 32 lsbs in word 2 and > the > 16 msbs in word 3. > + > +Example: > + > +For reading the MAC address fuses on a MX6Q: > + > +- The MAC address is stored in two fuse addresses (the fuse addresses are > +described in the Fusemap Descriptions table from the mx6q Reference Manual): > + > +0x620[31:0] - MAC_ADDR[31:0] > +0x630[15:0] - MAC_ADDR[47:32] > + > +In order to use the fuse API, we need to pass the bank and word values, > which > +are calculated as below: > + > +Fuse address for the lower MAC address: 0x620 > +Base address for the fuses: 0x400 > + > +(0x620 - 0x400)/0x10 = 0x22 = 34 decimal > + > +As the fuses are arranged in banks of 8 words: > + > +34 / 8 = 4 and the remainder is 2, so in this case: > + > +bank = 4 > +word = 2 > + > +And the U-boot command would be: > + > +=> fuse read 4 2 > +Reading bank 4: > + > +Word 0x00000002: 9f027772 > + > +Doing the same for the upper MAC address: > + > +Fuse address for the upper MAC address: 0x630 > +Base address for the fuses: 0x400 > + > +(0x630 - 0x400)/0x10 = 0x23 = 35 decimal > + > +As the fuses are arranged in banks of 8 words: > + > +35 / 8 = 4 and the remainder is 3, so in this case: > + > +bank = 4 > +word = 3 > + > +And the U-boot command would be: > + > +=> fuse read 4 3 > +Reading bank 4: > + > +Word 0x00000003: 00000004 > + > +,which matches the ethaddr value: > +=> echo ${ethaddr} > +00:04:9f:02:77:72 > + > +Some other useful hints: > + > +- The 'bank' and 'word' numbers can be easily obtained from the mx6 > Reference > +Manual. For the mx6quad case, please check the "46.5 OCOTP Memory > Map/Register > +Definition" from the "i.MX 6Dual/6Quad Applications Processor Reference > Manual, > +Rev. 1, 04/2013" document. For example, for the MAC fuses we have: > + > +Address: > +21B_C620 Value of OTP Bank4 Word2 (MAC Address)(OCOTP_MAC0) > + > +21B_C630 Value of OTP Bank4 Word3 (MAC Address)(OCOTP_MAC1) > + > +- The command '=> fuse read 4 2 2' reads the whole MAC addresses at once: > + > +=> fuse read 4 2 2 > +Reading bank 4: > + > +Word 0x00000002: 9f027772 00000004 > -- > 1.8.1.2 > >
Reviewed-by: Benoît Thébaudeau <benoit.thebaud...@advansee.com> Best regards, Benoît _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot