Hi Fabio, On Tuesday, December 17, 2013 9:03:40 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> > --- > doc/README.fuse | 57 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 57 insertions(+) > > diff --git a/doc/README.fuse b/doc/README.fuse > index 1bc91c4..aca1e5e 100644 > --- a/doc/README.fuse > +++ b/doc/README.fuse > @@ -65,3 +65,60 @@ Configuration: > > CONFIG_CMD_FUSE > Define this to enable the fuse commands. > + > +Example: > + > +For reading the MAC address fuses on a MX6Q: > + > +- The MAC address are 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 > -- > 1.8.1.2
Note that the documentation in this file is also completed for i.MX6 by doc/README.mxc_ocotp and doc/README.imx6, as explained in each README. The information that you add here regarding the location of the MAC fuses for i.MX6Q is already present in doc/README.imx6. Regarding the 'calculation' part, it is actually not needed since the values obtained with these calculations are already given by the reference manual in '46.5 OCOTP Memory Map/Register Definition'. Examples could still be interesting though. What do you think? - Should the calculation part be removed and replaced with a reference to the RM §46.5 be added? - Should this example be moved to doc/README.imx6, or kept in doc/README.fuse as a generic example for the fuse API? - Should an example be added to show how to read the whole MAC address with a single fuse command (i.e. 'fuse read 4 2 2')? Best regards, Benoît _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot