]>
Commit | Line | Data |
---|---|---|
eec3f024 BT |
1 | U-Boot for Freescale i.MX6 |
2 | ||
3 | This file contains information for the port of U-Boot to the Freescale i.MX6 | |
4 | SoC. | |
5 | ||
6 | 1. CONVENTIONS FOR FUSE ASSIGNMENTS | |
7 | ----------------------------------- | |
8 | ||
9 | 1.1 MAC Address: It is stored in fuse bank 4, with the 32 lsbs in word 2 and the | |
10 | 16 msbs in word 3. | |
6f3bef9e FE |
11 | |
12 | Example: | |
13 | ||
14 | For reading the MAC address fuses on a MX6Q: | |
15 | ||
16 | - The MAC address is stored in two fuse addresses (the fuse addresses are | |
17 | described in the Fusemap Descriptions table from the mx6q Reference Manual): | |
18 | ||
19 | 0x620[31:0] - MAC_ADDR[31:0] | |
20 | 0x630[15:0] - MAC_ADDR[47:32] | |
21 | ||
22 | In order to use the fuse API, we need to pass the bank and word values, which | |
23 | are calculated as below: | |
24 | ||
25 | Fuse address for the lower MAC address: 0x620 | |
26 | Base address for the fuses: 0x400 | |
27 | ||
28 | (0x620 - 0x400)/0x10 = 0x22 = 34 decimal | |
29 | ||
30 | As the fuses are arranged in banks of 8 words: | |
31 | ||
32 | 34 / 8 = 4 and the remainder is 2, so in this case: | |
33 | ||
34 | bank = 4 | |
35 | word = 2 | |
36 | ||
37 | And the U-boot command would be: | |
38 | ||
39 | => fuse read 4 2 | |
40 | Reading bank 4: | |
41 | ||
42 | Word 0x00000002: 9f027772 | |
43 | ||
44 | Doing the same for the upper MAC address: | |
45 | ||
46 | Fuse address for the upper MAC address: 0x630 | |
47 | Base address for the fuses: 0x400 | |
48 | ||
49 | (0x630 - 0x400)/0x10 = 0x23 = 35 decimal | |
50 | ||
51 | As the fuses are arranged in banks of 8 words: | |
52 | ||
53 | 35 / 8 = 4 and the remainder is 3, so in this case: | |
54 | ||
55 | bank = 4 | |
56 | word = 3 | |
57 | ||
58 | And the U-boot command would be: | |
59 | ||
60 | => fuse read 4 3 | |
61 | Reading bank 4: | |
62 | ||
63 | Word 0x00000003: 00000004 | |
64 | ||
65 | ,which matches the ethaddr value: | |
66 | => echo ${ethaddr} | |
67 | 00:04:9f:02:77:72 | |
68 | ||
69 | Some other useful hints: | |
70 | ||
71 | - The 'bank' and 'word' numbers can be easily obtained from the mx6 Reference | |
72 | Manual. For the mx6quad case, please check the "46.5 OCOTP Memory Map/Register | |
73 | Definition" from the "i.MX 6Dual/6Quad Applications Processor Reference Manual, | |
74 | Rev. 1, 04/2013" document. For example, for the MAC fuses we have: | |
75 | ||
76 | Address: | |
77 | 21B_C620 Value of OTP Bank4 Word2 (MAC Address)(OCOTP_MAC0) | |
78 | ||
79 | 21B_C630 Value of OTP Bank4 Word3 (MAC Address)(OCOTP_MAC1) | |
80 | ||
81 | - The command '=> fuse read 4 2 2' reads the whole MAC addresses at once: | |
82 | ||
83 | => fuse read 4 2 2 | |
84 | Reading bank 4: | |
85 | ||
86 | Word 0x00000002: 9f027772 00000004 |