Commit 9c641a872aa54edc97d69281f705819e96a5c90e

Authored by Suresh Gupta
Committed by York Sun
1 parent 7af9a07403

powerpc/usb: Workaround for erratum-A006261

USB spec says that the minimum disconnect threshold should be
	over 525 mV. However, internal USB PHY threshold value is below
	this specified value. Due to this some devices disconnect at
	run-time. Hence, phy settings are tweaked to increased disconnect
	threshold to be above 525mV by using this workaround.

Signed-off-by: Suresh Gupta <suresh.gupta@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>

Showing 5 changed files with 128 additions and 2 deletions Inline Diff

arch/powerpc/cpu/mpc85xx/cmd_errata.c
1 /* 1 /*
2 * Copyright 2010-2011 Freescale Semiconductor, Inc. 2 * Copyright 2010-2011 Freescale Semiconductor, Inc.
3 * 3 *
4 * SPDX-License-Identifier: GPL-2.0+ 4 * SPDX-License-Identifier: GPL-2.0+
5 */ 5 */
6 6
7 #include <common.h> 7 #include <common.h>
8 #include <command.h> 8 #include <command.h>
9 #include <linux/compiler.h> 9 #include <linux/compiler.h>
10 #include <asm/fsl_errata.h> 10 #include <asm/fsl_errata.h>
11 #include <asm/processor.h> 11 #include <asm/processor.h>
12 #include "fsl_corenet_serdes.h" 12 #include "fsl_corenet_serdes.h"
13 13
14 #ifdef CONFIG_SYS_FSL_ERRATUM_A004849 14 #ifdef CONFIG_SYS_FSL_ERRATUM_A004849
15 /* 15 /*
16 * This work-around is implemented in PBI, so just check to see if the 16 * This work-around is implemented in PBI, so just check to see if the
17 * work-around was actually applied. To do this, we check for specific data 17 * work-around was actually applied. To do this, we check for specific data
18 * at specific addresses in DCSR. 18 * at specific addresses in DCSR.
19 * 19 *
20 * Array offsets[] contains a list of offsets within DCSR. According to the 20 * Array offsets[] contains a list of offsets within DCSR. According to the
21 * erratum document, the value at each offset should be 2. 21 * erratum document, the value at each offset should be 2.
22 */ 22 */
23 static void check_erratum_a4849(uint32_t svr) 23 static void check_erratum_a4849(uint32_t svr)
24 { 24 {
25 void __iomem *dcsr = (void *)CONFIG_SYS_DCSRBAR + 0xb0000; 25 void __iomem *dcsr = (void *)CONFIG_SYS_DCSRBAR + 0xb0000;
26 unsigned int i; 26 unsigned int i;
27 27
28 #if defined(CONFIG_PPC_P2041) || defined(CONFIG_PPC_P3041) 28 #if defined(CONFIG_PPC_P2041) || defined(CONFIG_PPC_P3041)
29 static const uint8_t offsets[] = { 29 static const uint8_t offsets[] = {
30 0x50, 0x54, 0x58, 0x90, 0x94, 0x98 30 0x50, 0x54, 0x58, 0x90, 0x94, 0x98
31 }; 31 };
32 #endif 32 #endif
33 #ifdef CONFIG_PPC_P4080 33 #ifdef CONFIG_PPC_P4080
34 static const uint8_t offsets[] = { 34 static const uint8_t offsets[] = {
35 0x60, 0x64, 0x68, 0x6c, 0xa0, 0xa4, 0xa8, 0xac 35 0x60, 0x64, 0x68, 0x6c, 0xa0, 0xa4, 0xa8, 0xac
36 }; 36 };
37 #endif 37 #endif
38 uint32_t x108; /* The value that should be at offset 0x108 */ 38 uint32_t x108; /* The value that should be at offset 0x108 */
39 39
40 for (i = 0; i < ARRAY_SIZE(offsets); i++) { 40 for (i = 0; i < ARRAY_SIZE(offsets); i++) {
41 if (in_be32(dcsr + offsets[i]) != 2) { 41 if (in_be32(dcsr + offsets[i]) != 2) {
42 printf("Work-around for Erratum A004849 is not enabled\n"); 42 printf("Work-around for Erratum A004849 is not enabled\n");
43 return; 43 return;
44 } 44 }
45 } 45 }
46 46
47 #if defined(CONFIG_PPC_P2041) || defined(CONFIG_PPC_P3041) 47 #if defined(CONFIG_PPC_P2041) || defined(CONFIG_PPC_P3041)
48 x108 = 0x12; 48 x108 = 0x12;
49 #endif 49 #endif
50 50
51 #ifdef CONFIG_PPC_P4080 51 #ifdef CONFIG_PPC_P4080
52 /* 52 /*
53 * For P4080, the erratum document says that the value at offset 0x108 53 * For P4080, the erratum document says that the value at offset 0x108
54 * should be 0x12 on rev2, or 0x1c on rev3. 54 * should be 0x12 on rev2, or 0x1c on rev3.
55 */ 55 */
56 if (SVR_MAJ(svr) == 2) 56 if (SVR_MAJ(svr) == 2)
57 x108 = 0x12; 57 x108 = 0x12;
58 if (SVR_MAJ(svr) == 3) 58 if (SVR_MAJ(svr) == 3)
59 x108 = 0x1c; 59 x108 = 0x1c;
60 #endif 60 #endif
61 61
62 if (in_be32(dcsr + 0x108) != x108) { 62 if (in_be32(dcsr + 0x108) != x108) {
63 printf("Work-around for Erratum A004849 is not enabled\n"); 63 printf("Work-around for Erratum A004849 is not enabled\n");
64 return; 64 return;
65 } 65 }
66 66
67 /* Everything matches, so the erratum work-around was applied */ 67 /* Everything matches, so the erratum work-around was applied */
68 68
69 printf("Work-around for Erratum A004849 enabled\n"); 69 printf("Work-around for Erratum A004849 enabled\n");
70 } 70 }
71 #endif 71 #endif
72 72
73 #ifdef CONFIG_SYS_FSL_ERRATUM_A004580 73 #ifdef CONFIG_SYS_FSL_ERRATUM_A004580
74 /* 74 /*
75 * This work-around is implemented in PBI, so just check to see if the 75 * This work-around is implemented in PBI, so just check to see if the
76 * work-around was actually applied. To do this, we check for specific data 76 * work-around was actually applied. To do this, we check for specific data
77 * at specific addresses in the SerDes register block. 77 * at specific addresses in the SerDes register block.
78 * 78 *
79 * The work-around says that for each SerDes lane, write BnTTLCRy0 = 79 * The work-around says that for each SerDes lane, write BnTTLCRy0 =
80 * 0x1B00_0001, Register 2 = 0x0088_0000, and Register 3 = 0x4000_0000. 80 * 0x1B00_0001, Register 2 = 0x0088_0000, and Register 3 = 0x4000_0000.
81 81
82 */ 82 */
83 static void check_erratum_a4580(uint32_t svr) 83 static void check_erratum_a4580(uint32_t svr)
84 { 84 {
85 const serdes_corenet_t __iomem *srds_regs = 85 const serdes_corenet_t __iomem *srds_regs =
86 (void *)CONFIG_SYS_FSL_CORENET_SERDES_ADDR; 86 (void *)CONFIG_SYS_FSL_CORENET_SERDES_ADDR;
87 unsigned int lane; 87 unsigned int lane;
88 88
89 for (lane = 0; lane < SRDS_MAX_LANES; lane++) { 89 for (lane = 0; lane < SRDS_MAX_LANES; lane++) {
90 if (serdes_lane_enabled(lane)) { 90 if (serdes_lane_enabled(lane)) {
91 const struct serdes_lane __iomem *srds_lane = 91 const struct serdes_lane __iomem *srds_lane =
92 &srds_regs->lane[serdes_get_lane_idx(lane)]; 92 &srds_regs->lane[serdes_get_lane_idx(lane)];
93 93
94 /* 94 /*
95 * Verify that the values we were supposed to write in 95 * Verify that the values we were supposed to write in
96 * the PBI are actually there. Also, the lower 15 96 * the PBI are actually there. Also, the lower 15
97 * bits of res4[3] should be the same as the upper 15 97 * bits of res4[3] should be the same as the upper 15
98 * bits of res4[1]. 98 * bits of res4[1].
99 */ 99 */
100 if ((in_be32(&srds_lane->ttlcr0) != 0x1b000001) || 100 if ((in_be32(&srds_lane->ttlcr0) != 0x1b000001) ||
101 (in_be32(&srds_lane->res4[1]) != 0x880000) || 101 (in_be32(&srds_lane->res4[1]) != 0x880000) ||
102 (in_be32(&srds_lane->res4[3]) != 0x40000044)) { 102 (in_be32(&srds_lane->res4[3]) != 0x40000044)) {
103 printf("Work-around for Erratum A004580 is " 103 printf("Work-around for Erratum A004580 is "
104 "not enabled\n"); 104 "not enabled\n");
105 return; 105 return;
106 } 106 }
107 } 107 }
108 } 108 }
109 109
110 /* Everything matches, so the erratum work-around was applied */ 110 /* Everything matches, so the erratum work-around was applied */
111 111
112 printf("Work-around for Erratum A004580 enabled\n"); 112 printf("Work-around for Erratum A004580 enabled\n");
113 } 113 }
114 #endif 114 #endif
115 115
116 static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) 116 static int do_errata(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
117 { 117 {
118 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011 118 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011
119 extern int enable_cpu_a011_workaround; 119 extern int enable_cpu_a011_workaround;
120 #endif 120 #endif
121 __maybe_unused u32 svr = get_svr(); 121 __maybe_unused u32 svr = get_svr();
122 122
123 #if defined(CONFIG_FSL_SATA_V2) && defined(CONFIG_FSL_SATA_ERRATUM_A001) 123 #if defined(CONFIG_FSL_SATA_V2) && defined(CONFIG_FSL_SATA_ERRATUM_A001)
124 if (IS_SVR_REV(svr, 1, 0)) { 124 if (IS_SVR_REV(svr, 1, 0)) {
125 switch (SVR_SOC_VER(svr)) { 125 switch (SVR_SOC_VER(svr)) {
126 case SVR_P1013: 126 case SVR_P1013:
127 case SVR_P1022: 127 case SVR_P1022:
128 puts("Work-around for Erratum SATA A001 enabled\n"); 128 puts("Work-around for Erratum SATA A001 enabled\n");
129 } 129 }
130 } 130 }
131 #endif 131 #endif
132 132
133 #if defined(CONFIG_SYS_P4080_ERRATUM_SERDES8) 133 #if defined(CONFIG_SYS_P4080_ERRATUM_SERDES8)
134 puts("Work-around for Erratum SERDES8 enabled\n"); 134 puts("Work-around for Erratum SERDES8 enabled\n");
135 #endif 135 #endif
136 #if defined(CONFIG_SYS_P4080_ERRATUM_SERDES9) 136 #if defined(CONFIG_SYS_P4080_ERRATUM_SERDES9)
137 puts("Work-around for Erratum SERDES9 enabled\n"); 137 puts("Work-around for Erratum SERDES9 enabled\n");
138 #endif 138 #endif
139 #if defined(CONFIG_SYS_P4080_ERRATUM_SERDES_A005) 139 #if defined(CONFIG_SYS_P4080_ERRATUM_SERDES_A005)
140 puts("Work-around for Erratum SERDES-A005 enabled\n"); 140 puts("Work-around for Erratum SERDES-A005 enabled\n");
141 #endif 141 #endif
142 #if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) 142 #if defined(CONFIG_SYS_P4080_ERRATUM_CPU22)
143 if (SVR_MAJ(svr) < 3) 143 if (SVR_MAJ(svr) < 3)
144 puts("Work-around for Erratum CPU22 enabled\n"); 144 puts("Work-around for Erratum CPU22 enabled\n");
145 #endif 145 #endif
146 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011 146 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011
147 /* 147 /*
148 * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0 148 * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0
149 * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1 149 * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1
150 * The SVR has been checked by cpu_init_r(). 150 * The SVR has been checked by cpu_init_r().
151 */ 151 */
152 if (enable_cpu_a011_workaround) 152 if (enable_cpu_a011_workaround)
153 puts("Work-around for Erratum CPU-A011 enabled\n"); 153 puts("Work-around for Erratum CPU-A011 enabled\n");
154 #endif 154 #endif
155 #if defined(CONFIG_SYS_FSL_ERRATUM_CPU_A003999) 155 #if defined(CONFIG_SYS_FSL_ERRATUM_CPU_A003999)
156 puts("Work-around for Erratum CPU-A003999 enabled\n"); 156 puts("Work-around for Erratum CPU-A003999 enabled\n");
157 #endif 157 #endif
158 #if defined(CONFIG_SYS_FSL_ERRATUM_DDR_A003474) 158 #if defined(CONFIG_SYS_FSL_ERRATUM_DDR_A003474)
159 puts("Work-around for Erratum DDR-A003474 enabled\n"); 159 puts("Work-around for Erratum DDR-A003474 enabled\n");
160 #endif 160 #endif
161 #if defined(CONFIG_SYS_FSL_ERRATUM_DDR_MSYNC_IN) 161 #if defined(CONFIG_SYS_FSL_ERRATUM_DDR_MSYNC_IN)
162 puts("Work-around for DDR MSYNC_IN Erratum enabled\n"); 162 puts("Work-around for DDR MSYNC_IN Erratum enabled\n");
163 #endif 163 #endif
164 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC111) 164 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC111)
165 puts("Work-around for Erratum ESDHC111 enabled\n"); 165 puts("Work-around for Erratum ESDHC111 enabled\n");
166 #endif 166 #endif
167 #ifdef CONFIG_SYS_FSL_ERRATUM_A004468 167 #ifdef CONFIG_SYS_FSL_ERRATUM_A004468
168 puts("Work-around for Erratum A004468 enabled\n"); 168 puts("Work-around for Erratum A004468 enabled\n");
169 #endif 169 #endif
170 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC135) 170 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC135)
171 puts("Work-around for Erratum ESDHC135 enabled\n"); 171 puts("Work-around for Erratum ESDHC135 enabled\n");
172 #endif 172 #endif
173 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC13) 173 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC13)
174 if (SVR_MAJ(svr) < 3) 174 if (SVR_MAJ(svr) < 3)
175 puts("Work-around for Erratum ESDHC13 enabled\n"); 175 puts("Work-around for Erratum ESDHC13 enabled\n");
176 #endif 176 #endif
177 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC_A001) 177 #if defined(CONFIG_SYS_FSL_ERRATUM_ESDHC_A001)
178 puts("Work-around for Erratum ESDHC-A001 enabled\n"); 178 puts("Work-around for Erratum ESDHC-A001 enabled\n");
179 #endif 179 #endif
180 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A002 180 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A002
181 puts("Work-around for Erratum CPC-A002 enabled\n"); 181 puts("Work-around for Erratum CPC-A002 enabled\n");
182 #endif 182 #endif
183 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A003 183 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A003
184 puts("Work-around for Erratum CPC-A003 enabled\n"); 184 puts("Work-around for Erratum CPC-A003 enabled\n");
185 #endif 185 #endif
186 #ifdef CONFIG_SYS_FSL_ERRATUM_ELBC_A001 186 #ifdef CONFIG_SYS_FSL_ERRATUM_ELBC_A001
187 puts("Work-around for Erratum ELBC-A001 enabled\n"); 187 puts("Work-around for Erratum ELBC-A001 enabled\n");
188 #endif 188 #endif
189 #ifdef CONFIG_SYS_FSL_ERRATUM_DDR_A003 189 #ifdef CONFIG_SYS_FSL_ERRATUM_DDR_A003
190 puts("Work-around for Erratum DDR-A003 enabled\n"); 190 puts("Work-around for Erratum DDR-A003 enabled\n");
191 #endif 191 #endif
192 #ifdef CONFIG_SYS_FSL_ERRATUM_DDR_115 192 #ifdef CONFIG_SYS_FSL_ERRATUM_DDR_115
193 puts("Work-around for Erratum DDR115 enabled\n"); 193 puts("Work-around for Erratum DDR115 enabled\n");
194 #endif 194 #endif
195 #ifdef CONFIG_SYS_FSL_ERRATUM_DDR111_DDR134 195 #ifdef CONFIG_SYS_FSL_ERRATUM_DDR111_DDR134
196 puts("Work-around for Erratum DDR111 enabled\n"); 196 puts("Work-around for Erratum DDR111 enabled\n");
197 puts("Work-around for Erratum DDR134 enabled\n"); 197 puts("Work-around for Erratum DDR134 enabled\n");
198 #endif 198 #endif
199 #ifdef CONFIG_SYS_FSL_ERRATUM_IFC_A002769 199 #ifdef CONFIG_SYS_FSL_ERRATUM_IFC_A002769
200 puts("Work-around for Erratum IFC-A002769 enabled\n"); 200 puts("Work-around for Erratum IFC-A002769 enabled\n");
201 #endif 201 #endif
202 #ifdef CONFIG_SYS_FSL_ERRATUM_P1010_A003549 202 #ifdef CONFIG_SYS_FSL_ERRATUM_P1010_A003549
203 puts("Work-around for Erratum P1010-A003549 enabled\n"); 203 puts("Work-around for Erratum P1010-A003549 enabled\n");
204 #endif 204 #endif
205 #ifdef CONFIG_SYS_FSL_ERRATUM_IFC_A003399 205 #ifdef CONFIG_SYS_FSL_ERRATUM_IFC_A003399
206 puts("Work-around for Erratum IFC A-003399 enabled\n"); 206 puts("Work-around for Erratum IFC A-003399 enabled\n");
207 #endif 207 #endif
208 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_DDR120 208 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_DDR120
209 if ((SVR_MAJ(svr) == 1) || IS_SVR_REV(svr, 2, 0)) 209 if ((SVR_MAJ(svr) == 1) || IS_SVR_REV(svr, 2, 0))
210 puts("Work-around for Erratum NMG DDR120 enabled\n"); 210 puts("Work-around for Erratum NMG DDR120 enabled\n");
211 #endif 211 #endif
212 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_LBC103 212 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_LBC103
213 puts("Work-around for Erratum NMG_LBC103 enabled\n"); 213 puts("Work-around for Erratum NMG_LBC103 enabled\n");
214 #endif 214 #endif
215 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_ETSEC129 215 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_ETSEC129
216 if ((SVR_MAJ(svr) == 1) || IS_SVR_REV(svr, 2, 0)) 216 if ((SVR_MAJ(svr) == 1) || IS_SVR_REV(svr, 2, 0))
217 puts("Work-around for Erratum NMG ETSEC129 enabled\n"); 217 puts("Work-around for Erratum NMG ETSEC129 enabled\n");
218 #endif 218 #endif
219 #ifdef CONFIG_SYS_FSL_ERRATUM_A004510 219 #ifdef CONFIG_SYS_FSL_ERRATUM_A004510
220 puts("Work-around for Erratum A004510 enabled\n"); 220 puts("Work-around for Erratum A004510 enabled\n");
221 #endif 221 #endif
222 #ifdef CONFIG_SYS_FSL_ERRATUM_SRIO_A004034 222 #ifdef CONFIG_SYS_FSL_ERRATUM_SRIO_A004034
223 puts("Work-around for Erratum SRIO-A004034 enabled\n"); 223 puts("Work-around for Erratum SRIO-A004034 enabled\n");
224 #endif 224 #endif
225 #ifdef CONFIG_SYS_FSL_ERRATUM_A_004934 225 #ifdef CONFIG_SYS_FSL_ERRATUM_A_004934
226 puts("Work-around for Erratum A004934 enabled\n"); 226 puts("Work-around for Erratum A004934 enabled\n");
227 #endif 227 #endif
228 #ifdef CONFIG_SYS_FSL_ERRATUM_A005871 228 #ifdef CONFIG_SYS_FSL_ERRATUM_A005871
229 if (IS_SVR_REV(svr, 1, 0)) 229 if (IS_SVR_REV(svr, 1, 0))
230 puts("Work-around for Erratum A005871 enabled\n"); 230 puts("Work-around for Erratum A005871 enabled\n");
231 #endif 231 #endif
232 #ifdef CONFIG_SYS_FSL_ERRATUM_A006475 232 #ifdef CONFIG_SYS_FSL_ERRATUM_A006475
233 if (SVR_MAJ(get_svr()) == 1) 233 if (SVR_MAJ(get_svr()) == 1)
234 puts("Work-around for Erratum A006475 enabled\n"); 234 puts("Work-around for Erratum A006475 enabled\n");
235 #endif 235 #endif
236 #ifdef CONFIG_SYS_FSL_ERRATUM_A006384 236 #ifdef CONFIG_SYS_FSL_ERRATUM_A006384
237 if (SVR_MAJ(get_svr()) == 1) 237 if (SVR_MAJ(get_svr()) == 1)
238 puts("Work-around for Erratum A006384 enabled\n"); 238 puts("Work-around for Erratum A006384 enabled\n");
239 #endif 239 #endif
240 #ifdef CONFIG_SYS_FSL_ERRATUM_A004849 240 #ifdef CONFIG_SYS_FSL_ERRATUM_A004849
241 /* This work-around is implemented in PBI, so just check for it */ 241 /* This work-around is implemented in PBI, so just check for it */
242 check_erratum_a4849(svr); 242 check_erratum_a4849(svr);
243 #endif 243 #endif
244 #ifdef CONFIG_SYS_FSL_ERRATUM_A004580 244 #ifdef CONFIG_SYS_FSL_ERRATUM_A004580
245 /* This work-around is implemented in PBI, so just check for it */ 245 /* This work-around is implemented in PBI, so just check for it */
246 check_erratum_a4580(svr); 246 check_erratum_a4580(svr);
247 #endif 247 #endif
248 #ifdef CONFIG_SYS_P4080_ERRATUM_PCIE_A003 248 #ifdef CONFIG_SYS_P4080_ERRATUM_PCIE_A003
249 puts("Work-around for Erratum PCIe-A003 enabled\n"); 249 puts("Work-around for Erratum PCIe-A003 enabled\n");
250 #endif 250 #endif
251 #ifdef CONFIG_SYS_FSL_ERRATUM_USB14 251 #ifdef CONFIG_SYS_FSL_ERRATUM_USB14
252 puts("Work-around for Erratum USB14 enabled\n"); 252 puts("Work-around for Erratum USB14 enabled\n");
253 #endif 253 #endif
254 #ifdef CONFIG_SYS_FSL_ERRATUM_A006593 254 #ifdef CONFIG_SYS_FSL_ERRATUM_A006593
255 puts("Work-around for Erratum A006593 enabled\n"); 255 puts("Work-around for Erratum A006593 enabled\n");
256 #endif 256 #endif
257 #ifdef CONFIG_SYS_FSL_ERRATUM_A006379 257 #ifdef CONFIG_SYS_FSL_ERRATUM_A006379
258 if (has_erratum_a006379()) 258 if (has_erratum_a006379())
259 puts("Work-around for Erratum A006379 enabled\n"); 259 puts("Work-around for Erratum A006379 enabled\n");
260 #endif 260 #endif
261 #ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571 261 #ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
262 if (IS_SVR_REV(svr, 1, 0)) 262 if (IS_SVR_REV(svr, 1, 0))
263 puts("Work-around for Erratum A003571 enabled\n"); 263 puts("Work-around for Erratum A003571 enabled\n");
264 #endif 264 #endif
265 #ifdef CONFIG_SYS_FSL_ERRATUM_A005812 265 #ifdef CONFIG_SYS_FSL_ERRATUM_A005812
266 puts("Work-around for Erratum A-005812 enabled\n"); 266 puts("Work-around for Erratum A-005812 enabled\n");
267 #endif 267 #endif
268 #ifdef CONFIG_SYS_FSL_ERRATUM_A005125 268 #ifdef CONFIG_SYS_FSL_ERRATUM_A005125
269 puts("Work-around for Erratum A005125 enabled\n"); 269 puts("Work-around for Erratum A005125 enabled\n");
270 #endif 270 #endif
271 #ifdef CONFIG_SYS_FSL_ERRATUM_I2C_A004447 271 #ifdef CONFIG_SYS_FSL_ERRATUM_I2C_A004447
272 if ((SVR_SOC_VER(svr) == SVR_8548 && IS_SVR_REV(svr, 3, 1)) || 272 if ((SVR_SOC_VER(svr) == SVR_8548 && IS_SVR_REV(svr, 3, 1)) ||
273 (SVR_REV(svr) <= CONFIG_SYS_FSL_A004447_SVR_REV)) 273 (SVR_REV(svr) <= CONFIG_SYS_FSL_A004447_SVR_REV))
274 puts("Work-around for Erratum I2C-A004447 enabled\n"); 274 puts("Work-around for Erratum I2C-A004447 enabled\n");
275 #endif 275 #endif
276 #ifdef CONFIG_SYS_FSL_ERRATUM_A006261
277 if (has_erratum_a006261())
278 puts("Work-around for Erratum A006261 enabled\n");
279 #endif
276 return 0; 280 return 0;
277 } 281 }
278 282
279 U_BOOT_CMD( 283 U_BOOT_CMD(
280 errata, 1, 0, do_errata, 284 errata, 1, 0, do_errata,
281 "Report errata workarounds", 285 "Report errata workarounds",
282 "" 286 ""
283 ); 287 );
284 288
arch/powerpc/cpu/mpc85xx/cpu_init.c
1 /* 1 /*
2 * Copyright 2007-2011 Freescale Semiconductor, Inc. 2 * Copyright 2007-2011 Freescale Semiconductor, Inc.
3 * 3 *
4 * (C) Copyright 2003 Motorola Inc. 4 * (C) Copyright 2003 Motorola Inc.
5 * Modified by Xianghua Xiao, X.Xiao@motorola.com 5 * Modified by Xianghua Xiao, X.Xiao@motorola.com
6 * 6 *
7 * (C) Copyright 2000 7 * (C) Copyright 2000
8 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 8 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
9 * 9 *
10 * SPDX-License-Identifier: GPL-2.0+ 10 * SPDX-License-Identifier: GPL-2.0+
11 */ 11 */
12 12
13 #include <common.h> 13 #include <common.h>
14 #include <watchdog.h> 14 #include <watchdog.h>
15 #include <asm/processor.h> 15 #include <asm/processor.h>
16 #include <ioports.h> 16 #include <ioports.h>
17 #include <sata.h> 17 #include <sata.h>
18 #include <fm_eth.h> 18 #include <fm_eth.h>
19 #include <asm/io.h> 19 #include <asm/io.h>
20 #include <asm/cache.h> 20 #include <asm/cache.h>
21 #include <asm/mmu.h> 21 #include <asm/mmu.h>
22 #include <asm/fsl_errata.h> 22 #include <asm/fsl_errata.h>
23 #include <asm/fsl_law.h> 23 #include <asm/fsl_law.h>
24 #include <asm/fsl_serdes.h> 24 #include <asm/fsl_serdes.h>
25 #include <asm/fsl_srio.h> 25 #include <asm/fsl_srio.h>
26 #include <fsl_usb.h> 26 #include <fsl_usb.h>
27 #include <hwconfig.h> 27 #include <hwconfig.h>
28 #include <linux/compiler.h> 28 #include <linux/compiler.h>
29 #include "mp.h" 29 #include "mp.h"
30 #ifdef CONFIG_SYS_QE_FMAN_FW_IN_NAND 30 #ifdef CONFIG_SYS_QE_FMAN_FW_IN_NAND
31 #include <nand.h> 31 #include <nand.h>
32 #include <errno.h> 32 #include <errno.h>
33 #endif 33 #endif
34 34
35 #include "../../../../drivers/block/fsl_sata.h" 35 #include "../../../../drivers/block/fsl_sata.h"
36 36
37 DECLARE_GLOBAL_DATA_PTR; 37 DECLARE_GLOBAL_DATA_PTR;
38 38
39 #ifdef CONFIG_SYS_FSL_ERRATUM_A006261
40 void fsl_erratum_a006261_workaround(struct ccsr_usb_phy __iomem *usb_phy)
41 {
42 #ifdef CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
43 u32 xcvrprg = in_be32(&usb_phy->port1.xcvrprg);
44
45 /* Increase Disconnect Threshold by 50mV */
46 xcvrprg &= ~CONFIG_SYS_FSL_USB_XCVRPRG_HS_DCNT_PROG_MASK |
47 INC_DCNT_THRESHOLD_50MV;
48 /* Enable programming of USB High speed Disconnect threshold */
49 xcvrprg |= CONFIG_SYS_FSL_USB_XCVRPRG_HS_DCNT_PROG_EN;
50 out_be32(&usb_phy->port1.xcvrprg, xcvrprg);
51
52 xcvrprg = in_be32(&usb_phy->port2.xcvrprg);
53 /* Increase Disconnect Threshold by 50mV */
54 xcvrprg &= ~CONFIG_SYS_FSL_USB_XCVRPRG_HS_DCNT_PROG_MASK |
55 INC_DCNT_THRESHOLD_50MV;
56 /* Enable programming of USB High speed Disconnect threshold */
57 xcvrprg |= CONFIG_SYS_FSL_USB_XCVRPRG_HS_DCNT_PROG_EN;
58 out_be32(&usb_phy->port2.xcvrprg, xcvrprg);
59 #else
60
61 u32 temp = 0;
62 u32 status = in_be32(&usb_phy->status1);
63
64 u32 squelch_prog_rd_0_2 =
65 (status >> CONFIG_SYS_FSL_USB_SQUELCH_PROG_RD_0)
66 & CONFIG_SYS_FSL_USB_SQUELCH_PROG_MASK;
67
68 u32 squelch_prog_rd_3_5 =
69 (status >> CONFIG_SYS_FSL_USB_SQUELCH_PROG_RD_3)
70 & CONFIG_SYS_FSL_USB_SQUELCH_PROG_MASK;
71
72 setbits_be32(&usb_phy->config1,
73 CONFIG_SYS_FSL_USB_HS_DISCNCT_INC);
74 setbits_be32(&usb_phy->config2,
75 CONFIG_SYS_FSL_USB_RX_AUTO_CAL_RD_WR_SEL);
76
77 temp = squelch_prog_rd_0_2 << CONFIG_SYS_FSL_USB_SQUELCH_PROG_WR_0;
78 out_be32(&usb_phy->config2, in_be32(&usb_phy->config2) | temp);
79
80 temp = squelch_prog_rd_3_5 << CONFIG_SYS_FSL_USB_SQUELCH_PROG_WR_3;
81 out_be32(&usb_phy->config2, in_be32(&usb_phy->config2) | temp);
82 #endif
83 }
84 #endif
85
86
39 #ifdef CONFIG_QE 87 #ifdef CONFIG_QE
40 extern qe_iop_conf_t qe_iop_conf_tab[]; 88 extern qe_iop_conf_t qe_iop_conf_tab[];
41 extern void qe_config_iopin(u8 port, u8 pin, int dir, 89 extern void qe_config_iopin(u8 port, u8 pin, int dir,
42 int open_drain, int assign); 90 int open_drain, int assign);
43 extern void qe_init(uint qe_base); 91 extern void qe_init(uint qe_base);
44 extern void qe_reset(void); 92 extern void qe_reset(void);
45 93
46 static void config_qe_ioports(void) 94 static void config_qe_ioports(void)
47 { 95 {
48 u8 port, pin; 96 u8 port, pin;
49 int dir, open_drain, assign; 97 int dir, open_drain, assign;
50 int i; 98 int i;
51 99
52 for (i = 0; qe_iop_conf_tab[i].assign != QE_IOP_TAB_END; i++) { 100 for (i = 0; qe_iop_conf_tab[i].assign != QE_IOP_TAB_END; i++) {
53 port = qe_iop_conf_tab[i].port; 101 port = qe_iop_conf_tab[i].port;
54 pin = qe_iop_conf_tab[i].pin; 102 pin = qe_iop_conf_tab[i].pin;
55 dir = qe_iop_conf_tab[i].dir; 103 dir = qe_iop_conf_tab[i].dir;
56 open_drain = qe_iop_conf_tab[i].open_drain; 104 open_drain = qe_iop_conf_tab[i].open_drain;
57 assign = qe_iop_conf_tab[i].assign; 105 assign = qe_iop_conf_tab[i].assign;
58 qe_config_iopin(port, pin, dir, open_drain, assign); 106 qe_config_iopin(port, pin, dir, open_drain, assign);
59 } 107 }
60 } 108 }
61 #endif 109 #endif
62 110
63 #ifdef CONFIG_CPM2 111 #ifdef CONFIG_CPM2
64 void config_8560_ioports (volatile ccsr_cpm_t * cpm) 112 void config_8560_ioports (volatile ccsr_cpm_t * cpm)
65 { 113 {
66 int portnum; 114 int portnum;
67 115
68 for (portnum = 0; portnum < 4; portnum++) { 116 for (portnum = 0; portnum < 4; portnum++) {
69 uint pmsk = 0, 117 uint pmsk = 0,
70 ppar = 0, 118 ppar = 0,
71 psor = 0, 119 psor = 0,
72 pdir = 0, 120 pdir = 0,
73 podr = 0, 121 podr = 0,
74 pdat = 0; 122 pdat = 0;
75 iop_conf_t *iopc = (iop_conf_t *) & iop_conf_tab[portnum][0]; 123 iop_conf_t *iopc = (iop_conf_t *) & iop_conf_tab[portnum][0];
76 iop_conf_t *eiopc = iopc + 32; 124 iop_conf_t *eiopc = iopc + 32;
77 uint msk = 1; 125 uint msk = 1;
78 126
79 /* 127 /*
80 * NOTE: 128 * NOTE:
81 * index 0 refers to pin 31, 129 * index 0 refers to pin 31,
82 * index 31 refers to pin 0 130 * index 31 refers to pin 0
83 */ 131 */
84 while (iopc < eiopc) { 132 while (iopc < eiopc) {
85 if (iopc->conf) { 133 if (iopc->conf) {
86 pmsk |= msk; 134 pmsk |= msk;
87 if (iopc->ppar) 135 if (iopc->ppar)
88 ppar |= msk; 136 ppar |= msk;
89 if (iopc->psor) 137 if (iopc->psor)
90 psor |= msk; 138 psor |= msk;
91 if (iopc->pdir) 139 if (iopc->pdir)
92 pdir |= msk; 140 pdir |= msk;
93 if (iopc->podr) 141 if (iopc->podr)
94 podr |= msk; 142 podr |= msk;
95 if (iopc->pdat) 143 if (iopc->pdat)
96 pdat |= msk; 144 pdat |= msk;
97 } 145 }
98 146
99 msk <<= 1; 147 msk <<= 1;
100 iopc++; 148 iopc++;
101 } 149 }
102 150
103 if (pmsk != 0) { 151 if (pmsk != 0) {
104 volatile ioport_t *iop = ioport_addr (cpm, portnum); 152 volatile ioport_t *iop = ioport_addr (cpm, portnum);
105 uint tpmsk = ~pmsk; 153 uint tpmsk = ~pmsk;
106 154
107 /* 155 /*
108 * the (somewhat confused) paragraph at the 156 * the (somewhat confused) paragraph at the
109 * bottom of page 35-5 warns that there might 157 * bottom of page 35-5 warns that there might
110 * be "unknown behaviour" when programming 158 * be "unknown behaviour" when programming
111 * PSORx and PDIRx, if PPARx = 1, so I 159 * PSORx and PDIRx, if PPARx = 1, so I
112 * decided this meant I had to disable the 160 * decided this meant I had to disable the
113 * dedicated function first, and enable it 161 * dedicated function first, and enable it
114 * last. 162 * last.
115 */ 163 */
116 iop->ppar &= tpmsk; 164 iop->ppar &= tpmsk;
117 iop->psor = (iop->psor & tpmsk) | psor; 165 iop->psor = (iop->psor & tpmsk) | psor;
118 iop->podr = (iop->podr & tpmsk) | podr; 166 iop->podr = (iop->podr & tpmsk) | podr;
119 iop->pdat = (iop->pdat & tpmsk) | pdat; 167 iop->pdat = (iop->pdat & tpmsk) | pdat;
120 iop->pdir = (iop->pdir & tpmsk) | pdir; 168 iop->pdir = (iop->pdir & tpmsk) | pdir;
121 iop->ppar |= ppar; 169 iop->ppar |= ppar;
122 } 170 }
123 } 171 }
124 } 172 }
125 #endif 173 #endif
126 174
127 #ifdef CONFIG_SYS_FSL_CPC 175 #ifdef CONFIG_SYS_FSL_CPC
128 static void enable_cpc(void) 176 static void enable_cpc(void)
129 { 177 {
130 int i; 178 int i;
131 u32 size = 0; 179 u32 size = 0;
132 180
133 cpc_corenet_t *cpc = (cpc_corenet_t *)CONFIG_SYS_FSL_CPC_ADDR; 181 cpc_corenet_t *cpc = (cpc_corenet_t *)CONFIG_SYS_FSL_CPC_ADDR;
134 182
135 for (i = 0; i < CONFIG_SYS_NUM_CPC; i++, cpc++) { 183 for (i = 0; i < CONFIG_SYS_NUM_CPC; i++, cpc++) {
136 u32 cpccfg0 = in_be32(&cpc->cpccfg0); 184 u32 cpccfg0 = in_be32(&cpc->cpccfg0);
137 size += CPC_CFG0_SZ_K(cpccfg0); 185 size += CPC_CFG0_SZ_K(cpccfg0);
138 #ifdef CONFIG_RAMBOOT_PBL 186 #ifdef CONFIG_RAMBOOT_PBL
139 if (in_be32(&cpc->cpcsrcr0) & CPC_SRCR0_SRAMEN) { 187 if (in_be32(&cpc->cpcsrcr0) & CPC_SRCR0_SRAMEN) {
140 /* find and disable LAW of SRAM */ 188 /* find and disable LAW of SRAM */
141 struct law_entry law = find_law(CONFIG_SYS_INIT_L3_ADDR); 189 struct law_entry law = find_law(CONFIG_SYS_INIT_L3_ADDR);
142 190
143 if (law.index == -1) { 191 if (law.index == -1) {
144 printf("\nFatal error happened\n"); 192 printf("\nFatal error happened\n");
145 return; 193 return;
146 } 194 }
147 disable_law(law.index); 195 disable_law(law.index);
148 196
149 clrbits_be32(&cpc->cpchdbcr0, CPC_HDBCR0_CDQ_SPEC_DIS); 197 clrbits_be32(&cpc->cpchdbcr0, CPC_HDBCR0_CDQ_SPEC_DIS);
150 out_be32(&cpc->cpccsr0, 0); 198 out_be32(&cpc->cpccsr0, 0);
151 out_be32(&cpc->cpcsrcr0, 0); 199 out_be32(&cpc->cpcsrcr0, 0);
152 } 200 }
153 #endif 201 #endif
154 202
155 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A002 203 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A002
156 setbits_be32(&cpc->cpchdbcr0, CPC_HDBCR0_TAG_ECC_SCRUB_DIS); 204 setbits_be32(&cpc->cpchdbcr0, CPC_HDBCR0_TAG_ECC_SCRUB_DIS);
157 #endif 205 #endif
158 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A003 206 #ifdef CONFIG_SYS_FSL_ERRATUM_CPC_A003
159 setbits_be32(&cpc->cpchdbcr0, CPC_HDBCR0_DATA_ECC_SCRUB_DIS); 207 setbits_be32(&cpc->cpchdbcr0, CPC_HDBCR0_DATA_ECC_SCRUB_DIS);
160 #endif 208 #endif
161 #ifdef CONFIG_SYS_FSL_ERRATUM_A006593 209 #ifdef CONFIG_SYS_FSL_ERRATUM_A006593
162 setbits_be32(&cpc->cpchdbcr0, 1 << (31 - 21)); 210 setbits_be32(&cpc->cpchdbcr0, 1 << (31 - 21));
163 #endif 211 #endif
164 #ifdef CONFIG_SYS_FSL_ERRATUM_A006379 212 #ifdef CONFIG_SYS_FSL_ERRATUM_A006379
165 if (has_erratum_a006379()) { 213 if (has_erratum_a006379()) {
166 setbits_be32(&cpc->cpchdbcr0, 214 setbits_be32(&cpc->cpchdbcr0,
167 CPC_HDBCR0_SPLRU_LEVEL_EN); 215 CPC_HDBCR0_SPLRU_LEVEL_EN);
168 } 216 }
169 #endif 217 #endif
170 218
171 out_be32(&cpc->cpccsr0, CPC_CSR0_CE | CPC_CSR0_PE); 219 out_be32(&cpc->cpccsr0, CPC_CSR0_CE | CPC_CSR0_PE);
172 /* Read back to sync write */ 220 /* Read back to sync write */
173 in_be32(&cpc->cpccsr0); 221 in_be32(&cpc->cpccsr0);
174 222
175 } 223 }
176 224
177 puts("Corenet Platform Cache: "); 225 puts("Corenet Platform Cache: ");
178 print_size(size * 1024, " enabled\n"); 226 print_size(size * 1024, " enabled\n");
179 } 227 }
180 228
181 static void invalidate_cpc(void) 229 static void invalidate_cpc(void)
182 { 230 {
183 int i; 231 int i;
184 cpc_corenet_t *cpc = (cpc_corenet_t *)CONFIG_SYS_FSL_CPC_ADDR; 232 cpc_corenet_t *cpc = (cpc_corenet_t *)CONFIG_SYS_FSL_CPC_ADDR;
185 233
186 for (i = 0; i < CONFIG_SYS_NUM_CPC; i++, cpc++) { 234 for (i = 0; i < CONFIG_SYS_NUM_CPC; i++, cpc++) {
187 /* skip CPC when it used as all SRAM */ 235 /* skip CPC when it used as all SRAM */
188 if (in_be32(&cpc->cpcsrcr0) & CPC_SRCR0_SRAMEN) 236 if (in_be32(&cpc->cpcsrcr0) & CPC_SRCR0_SRAMEN)
189 continue; 237 continue;
190 /* Flash invalidate the CPC and clear all the locks */ 238 /* Flash invalidate the CPC and clear all the locks */
191 out_be32(&cpc->cpccsr0, CPC_CSR0_FI | CPC_CSR0_LFC); 239 out_be32(&cpc->cpccsr0, CPC_CSR0_FI | CPC_CSR0_LFC);
192 while (in_be32(&cpc->cpccsr0) & (CPC_CSR0_FI | CPC_CSR0_LFC)) 240 while (in_be32(&cpc->cpccsr0) & (CPC_CSR0_FI | CPC_CSR0_LFC))
193 ; 241 ;
194 } 242 }
195 } 243 }
196 #else 244 #else
197 #define enable_cpc() 245 #define enable_cpc()
198 #define invalidate_cpc() 246 #define invalidate_cpc()
199 #endif /* CONFIG_SYS_FSL_CPC */ 247 #endif /* CONFIG_SYS_FSL_CPC */
200 248
201 /* 249 /*
202 * Breathe some life into the CPU... 250 * Breathe some life into the CPU...
203 * 251 *
204 * Set up the memory map 252 * Set up the memory map
205 * initialize a bunch of registers 253 * initialize a bunch of registers
206 */ 254 */
207 255
208 #ifdef CONFIG_FSL_CORENET 256 #ifdef CONFIG_FSL_CORENET
209 static void corenet_tb_init(void) 257 static void corenet_tb_init(void)
210 { 258 {
211 volatile ccsr_rcpm_t *rcpm = 259 volatile ccsr_rcpm_t *rcpm =
212 (void *)(CONFIG_SYS_FSL_CORENET_RCPM_ADDR); 260 (void *)(CONFIG_SYS_FSL_CORENET_RCPM_ADDR);
213 volatile ccsr_pic_t *pic = 261 volatile ccsr_pic_t *pic =
214 (void *)(CONFIG_SYS_MPC8xxx_PIC_ADDR); 262 (void *)(CONFIG_SYS_MPC8xxx_PIC_ADDR);
215 u32 whoami = in_be32(&pic->whoami); 263 u32 whoami = in_be32(&pic->whoami);
216 264
217 /* Enable the timebase register for this core */ 265 /* Enable the timebase register for this core */
218 out_be32(&rcpm->ctbenrl, (1 << whoami)); 266 out_be32(&rcpm->ctbenrl, (1 << whoami));
219 } 267 }
220 #endif 268 #endif
221 269
222 void cpu_init_f (void) 270 void cpu_init_f (void)
223 { 271 {
224 extern void m8560_cpm_reset (void); 272 extern void m8560_cpm_reset (void);
225 #ifdef CONFIG_SYS_DCSRBAR_PHYS 273 #ifdef CONFIG_SYS_DCSRBAR_PHYS
226 ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); 274 ccsr_gur_t *gur = (void *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
227 #endif 275 #endif
228 #if defined(CONFIG_SECURE_BOOT) 276 #if defined(CONFIG_SECURE_BOOT)
229 struct law_entry law; 277 struct law_entry law;
230 #endif 278 #endif
231 #ifdef CONFIG_MPC8548 279 #ifdef CONFIG_MPC8548
232 ccsr_local_ecm_t *ecm = (void *)(CONFIG_SYS_MPC85xx_ECM_ADDR); 280 ccsr_local_ecm_t *ecm = (void *)(CONFIG_SYS_MPC85xx_ECM_ADDR);
233 uint svr = get_svr(); 281 uint svr = get_svr();
234 282
235 /* 283 /*
236 * CPU2 errata workaround: A core hang possible while executing 284 * CPU2 errata workaround: A core hang possible while executing
237 * a msync instruction and a snoopable transaction from an I/O 285 * a msync instruction and a snoopable transaction from an I/O
238 * master tagged to make quick forward progress is present. 286 * master tagged to make quick forward progress is present.
239 * Fixed in silicon rev 2.1. 287 * Fixed in silicon rev 2.1.
240 */ 288 */
241 if ((SVR_MAJ(svr) == 1) || ((SVR_MAJ(svr) == 2 && SVR_MIN(svr) == 0x0))) 289 if ((SVR_MAJ(svr) == 1) || ((SVR_MAJ(svr) == 2 && SVR_MIN(svr) == 0x0)))
242 out_be32(&ecm->eebpcr, in_be32(&ecm->eebpcr) | (1 << 16)); 290 out_be32(&ecm->eebpcr, in_be32(&ecm->eebpcr) | (1 << 16));
243 #endif 291 #endif
244 292
245 disable_tlb(14); 293 disable_tlb(14);
246 disable_tlb(15); 294 disable_tlb(15);
247 295
248 #if defined(CONFIG_SECURE_BOOT) 296 #if defined(CONFIG_SECURE_BOOT)
249 /* Disable the LAW created for NOR flash by the PBI commands */ 297 /* Disable the LAW created for NOR flash by the PBI commands */
250 law = find_law(CONFIG_SYS_PBI_FLASH_BASE); 298 law = find_law(CONFIG_SYS_PBI_FLASH_BASE);
251 if (law.index != -1) 299 if (law.index != -1)
252 disable_law(law.index); 300 disable_law(law.index);
253 #endif 301 #endif
254 302
255 #ifdef CONFIG_CPM2 303 #ifdef CONFIG_CPM2
256 config_8560_ioports((ccsr_cpm_t *)CONFIG_SYS_MPC85xx_CPM_ADDR); 304 config_8560_ioports((ccsr_cpm_t *)CONFIG_SYS_MPC85xx_CPM_ADDR);
257 #endif 305 #endif
258 306
259 init_early_memctl_regs(); 307 init_early_memctl_regs();
260 308
261 #if defined(CONFIG_CPM2) 309 #if defined(CONFIG_CPM2)
262 m8560_cpm_reset(); 310 m8560_cpm_reset();
263 #endif 311 #endif
264 #ifdef CONFIG_QE 312 #ifdef CONFIG_QE
265 /* Config QE ioports */ 313 /* Config QE ioports */
266 config_qe_ioports(); 314 config_qe_ioports();
267 #endif 315 #endif
268 #if defined(CONFIG_FSL_DMA) 316 #if defined(CONFIG_FSL_DMA)
269 dma_init(); 317 dma_init();
270 #endif 318 #endif
271 #ifdef CONFIG_FSL_CORENET 319 #ifdef CONFIG_FSL_CORENET
272 corenet_tb_init(); 320 corenet_tb_init();
273 #endif 321 #endif
274 init_used_tlb_cams(); 322 init_used_tlb_cams();
275 323
276 /* Invalidate the CPC before DDR gets enabled */ 324 /* Invalidate the CPC before DDR gets enabled */
277 invalidate_cpc(); 325 invalidate_cpc();
278 326
279 #ifdef CONFIG_SYS_DCSRBAR_PHYS 327 #ifdef CONFIG_SYS_DCSRBAR_PHYS
280 /* set DCSRCR so that DCSR space is 1G */ 328 /* set DCSRCR so that DCSR space is 1G */
281 setbits_be32(&gur->dcsrcr, FSL_CORENET_DCSR_SZ_1G); 329 setbits_be32(&gur->dcsrcr, FSL_CORENET_DCSR_SZ_1G);
282 in_be32(&gur->dcsrcr); 330 in_be32(&gur->dcsrcr);
283 #endif 331 #endif
284 332
285 } 333 }
286 334
287 /* Implement a dummy function for those platforms w/o SERDES */ 335 /* Implement a dummy function for those platforms w/o SERDES */
288 static void __fsl_serdes__init(void) 336 static void __fsl_serdes__init(void)
289 { 337 {
290 return ; 338 return ;
291 } 339 }
292 __attribute__((weak, alias("__fsl_serdes__init"))) void fsl_serdes_init(void); 340 __attribute__((weak, alias("__fsl_serdes__init"))) void fsl_serdes_init(void);
293 341
294 #if defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500) 342 #if defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500)
295 int enable_cluster_l2(void) 343 int enable_cluster_l2(void)
296 { 344 {
297 int i = 0; 345 int i = 0;
298 u32 cluster; 346 u32 cluster;
299 ccsr_gur_t *gur = (void __iomem *)(CONFIG_SYS_MPC85xx_GUTS_ADDR); 347 ccsr_gur_t *gur = (void __iomem *)(CONFIG_SYS_MPC85xx_GUTS_ADDR);
300 struct ccsr_cluster_l2 __iomem *l2cache; 348 struct ccsr_cluster_l2 __iomem *l2cache;
301 349
302 cluster = in_be32(&gur->tp_cluster[i].lower); 350 cluster = in_be32(&gur->tp_cluster[i].lower);
303 if (cluster & TP_CLUSTER_EOC) 351 if (cluster & TP_CLUSTER_EOC)
304 return 0; 352 return 0;
305 353
306 /* The first cache has already been set up, so skip it */ 354 /* The first cache has already been set up, so skip it */
307 i++; 355 i++;
308 356
309 /* Look through the remaining clusters, and set up their caches */ 357 /* Look through the remaining clusters, and set up their caches */
310 do { 358 do {
311 int j, cluster_valid = 0; 359 int j, cluster_valid = 0;
312 360
313 l2cache = (void __iomem *)(CONFIG_SYS_FSL_CLUSTER_1_L2 + i * 0x40000); 361 l2cache = (void __iomem *)(CONFIG_SYS_FSL_CLUSTER_1_L2 + i * 0x40000);
314 362
315 cluster = in_be32(&gur->tp_cluster[i].lower); 363 cluster = in_be32(&gur->tp_cluster[i].lower);
316 364
317 /* check that at least one core/accel is enabled in cluster */ 365 /* check that at least one core/accel is enabled in cluster */
318 for (j = 0; j < 4; j++) { 366 for (j = 0; j < 4; j++) {
319 u32 idx = (cluster >> (j*8)) & TP_CLUSTER_INIT_MASK; 367 u32 idx = (cluster >> (j*8)) & TP_CLUSTER_INIT_MASK;
320 u32 type = in_be32(&gur->tp_ityp[idx]); 368 u32 type = in_be32(&gur->tp_ityp[idx]);
321 369
322 if (type & TP_ITYP_AV) 370 if (type & TP_ITYP_AV)
323 cluster_valid = 1; 371 cluster_valid = 1;
324 } 372 }
325 373
326 if (cluster_valid) { 374 if (cluster_valid) {
327 /* set stash ID to (cluster) * 2 + 32 + 1 */ 375 /* set stash ID to (cluster) * 2 + 32 + 1 */
328 clrsetbits_be32(&l2cache->l2csr1, 0xff, 32 + i * 2 + 1); 376 clrsetbits_be32(&l2cache->l2csr1, 0xff, 32 + i * 2 + 1);
329 377
330 printf("enable l2 for cluster %d %p\n", i, l2cache); 378 printf("enable l2 for cluster %d %p\n", i, l2cache);
331 379
332 out_be32(&l2cache->l2csr0, L2CSR0_L2FI|L2CSR0_L2LFC); 380 out_be32(&l2cache->l2csr0, L2CSR0_L2FI|L2CSR0_L2LFC);
333 while ((in_be32(&l2cache->l2csr0) 381 while ((in_be32(&l2cache->l2csr0)
334 & (L2CSR0_L2FI|L2CSR0_L2LFC)) != 0) 382 & (L2CSR0_L2FI|L2CSR0_L2LFC)) != 0)
335 ; 383 ;
336 out_be32(&l2cache->l2csr0, L2CSR0_L2E|L2CSR0_L2PE|L2CSR0_L2REP_MODE); 384 out_be32(&l2cache->l2csr0, L2CSR0_L2E|L2CSR0_L2PE|L2CSR0_L2REP_MODE);
337 } 385 }
338 i++; 386 i++;
339 } while (!(cluster & TP_CLUSTER_EOC)); 387 } while (!(cluster & TP_CLUSTER_EOC));
340 388
341 return 0; 389 return 0;
342 } 390 }
343 #endif 391 #endif
344 392
345 /* 393 /*
346 * Initialize L2 as cache. 394 * Initialize L2 as cache.
347 * 395 *
348 * The newer 8548, etc, parts have twice as much cache, but 396 * The newer 8548, etc, parts have twice as much cache, but
349 * use the same bit-encoding as the older 8555, etc, parts. 397 * use the same bit-encoding as the older 8555, etc, parts.
350 * 398 *
351 */ 399 */
352 int cpu_init_r(void) 400 int cpu_init_r(void)
353 { 401 {
354 __maybe_unused u32 svr = get_svr(); 402 __maybe_unused u32 svr = get_svr();
355 #ifdef CONFIG_SYS_LBC_LCRR 403 #ifdef CONFIG_SYS_LBC_LCRR
356 fsl_lbc_t *lbc = (void __iomem *)LBC_BASE_ADDR; 404 fsl_lbc_t *lbc = (void __iomem *)LBC_BASE_ADDR;
357 #endif 405 #endif
358 #ifdef CONFIG_L2_CACHE 406 #ifdef CONFIG_L2_CACHE
359 ccsr_l2cache_t *l2cache = (void __iomem *)CONFIG_SYS_MPC85xx_L2_ADDR; 407 ccsr_l2cache_t *l2cache = (void __iomem *)CONFIG_SYS_MPC85xx_L2_ADDR;
360 #elif defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500) 408 #elif defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500)
361 struct ccsr_cluster_l2 * l2cache = (void __iomem *)CONFIG_SYS_FSL_CLUSTER_1_L2; 409 struct ccsr_cluster_l2 * l2cache = (void __iomem *)CONFIG_SYS_FSL_CLUSTER_1_L2;
362 #endif 410 #endif
363 #if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP) 411 #if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP)
364 extern int spin_table_compat; 412 extern int spin_table_compat;
365 const char *spin; 413 const char *spin;
366 #endif 414 #endif
367 #ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571 415 #ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
368 ccsr_sec_t __iomem *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR; 416 ccsr_sec_t __iomem *sec = (void *)CONFIG_SYS_FSL_SEC_ADDR;
369 #endif 417 #endif
370 #if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) || \ 418 #if defined(CONFIG_SYS_P4080_ERRATUM_CPU22) || \
371 defined(CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011) 419 defined(CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011)
372 /* 420 /*
373 * CPU22 and NMG_CPU_A011 share the same workaround. 421 * CPU22 and NMG_CPU_A011 share the same workaround.
374 * CPU22 applies to P4080 rev 1.0, 2.0, fixed in 3.0 422 * CPU22 applies to P4080 rev 1.0, 2.0, fixed in 3.0
375 * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0 423 * NMG_CPU_A011 applies to P4080 rev 1.0, 2.0, fixed in 3.0
376 * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1, both 424 * also applies to P3041 rev 1.0, 1.1, P2041 rev 1.0, 1.1, both
377 * fixed in 2.0. NMG_CPU_A011 is activated by default and can 425 * fixed in 2.0. NMG_CPU_A011 is activated by default and can
378 * be disabled by hwconfig with syntax: 426 * be disabled by hwconfig with syntax:
379 * 427 *
380 * fsl_cpu_a011:disable 428 * fsl_cpu_a011:disable
381 */ 429 */
382 extern int enable_cpu_a011_workaround; 430 extern int enable_cpu_a011_workaround;
383 #ifdef CONFIG_SYS_P4080_ERRATUM_CPU22 431 #ifdef CONFIG_SYS_P4080_ERRATUM_CPU22
384 enable_cpu_a011_workaround = (SVR_MAJ(svr) < 3); 432 enable_cpu_a011_workaround = (SVR_MAJ(svr) < 3);
385 #else 433 #else
386 char buffer[HWCONFIG_BUFFER_SIZE]; 434 char buffer[HWCONFIG_BUFFER_SIZE];
387 char *buf = NULL; 435 char *buf = NULL;
388 int n, res; 436 int n, res;
389 437
390 n = getenv_f("hwconfig", buffer, sizeof(buffer)); 438 n = getenv_f("hwconfig", buffer, sizeof(buffer));
391 if (n > 0) 439 if (n > 0)
392 buf = buffer; 440 buf = buffer;
393 441
394 res = hwconfig_arg_cmp_f("fsl_cpu_a011", "disable", buf); 442 res = hwconfig_arg_cmp_f("fsl_cpu_a011", "disable", buf);
395 if (res > 0) 443 if (res > 0)
396 enable_cpu_a011_workaround = 0; 444 enable_cpu_a011_workaround = 0;
397 else { 445 else {
398 if (n >= HWCONFIG_BUFFER_SIZE) { 446 if (n >= HWCONFIG_BUFFER_SIZE) {
399 printf("fsl_cpu_a011 was not found. hwconfig variable " 447 printf("fsl_cpu_a011 was not found. hwconfig variable "
400 "may be too long\n"); 448 "may be too long\n");
401 } 449 }
402 enable_cpu_a011_workaround = 450 enable_cpu_a011_workaround =
403 (SVR_SOC_VER(svr) == SVR_P4080 && SVR_MAJ(svr) < 3) || 451 (SVR_SOC_VER(svr) == SVR_P4080 && SVR_MAJ(svr) < 3) ||
404 (SVR_SOC_VER(svr) != SVR_P4080 && SVR_MAJ(svr) < 2); 452 (SVR_SOC_VER(svr) != SVR_P4080 && SVR_MAJ(svr) < 2);
405 } 453 }
406 #endif 454 #endif
407 if (enable_cpu_a011_workaround) { 455 if (enable_cpu_a011_workaround) {
408 flush_dcache(); 456 flush_dcache();
409 mtspr(L1CSR2, (mfspr(L1CSR2) | L1CSR2_DCWS)); 457 mtspr(L1CSR2, (mfspr(L1CSR2) | L1CSR2_DCWS));
410 sync(); 458 sync();
411 } 459 }
412 #endif 460 #endif
413 #ifdef CONFIG_SYS_FSL_ERRATUM_A005812 461 #ifdef CONFIG_SYS_FSL_ERRATUM_A005812
414 /* 462 /*
415 * A-005812 workaround sets bit 32 of SPR 976 for SoCs running 463 * A-005812 workaround sets bit 32 of SPR 976 for SoCs running
416 * in write shadow mode. Checking DCWS before setting SPR 976. 464 * in write shadow mode. Checking DCWS before setting SPR 976.
417 */ 465 */
418 if (mfspr(L1CSR2) & L1CSR2_DCWS) 466 if (mfspr(L1CSR2) & L1CSR2_DCWS)
419 mtspr(SPRN_HDBCR0, (mfspr(SPRN_HDBCR0) | 0x80000000)); 467 mtspr(SPRN_HDBCR0, (mfspr(SPRN_HDBCR0) | 0x80000000));
420 #endif 468 #endif
421 469
422 #if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP) 470 #if defined(CONFIG_PPC_SPINTABLE_COMPATIBLE) && defined(CONFIG_MP)
423 spin = getenv("spin_table_compat"); 471 spin = getenv("spin_table_compat");
424 if (spin && (*spin == 'n')) 472 if (spin && (*spin == 'n'))
425 spin_table_compat = 0; 473 spin_table_compat = 0;
426 else 474 else
427 spin_table_compat = 1; 475 spin_table_compat = 1;
428 #endif 476 #endif
429 477
430 puts ("L2: "); 478 puts ("L2: ");
431 479
432 #if defined(CONFIG_L2_CACHE) 480 #if defined(CONFIG_L2_CACHE)
433 volatile uint cache_ctl; 481 volatile uint cache_ctl;
434 uint ver; 482 uint ver;
435 u32 l2siz_field; 483 u32 l2siz_field;
436 484
437 ver = SVR_SOC_VER(svr); 485 ver = SVR_SOC_VER(svr);
438 486
439 asm("msync;isync"); 487 asm("msync;isync");
440 cache_ctl = l2cache->l2ctl; 488 cache_ctl = l2cache->l2ctl;
441 489
442 #if defined(CONFIG_SYS_RAMBOOT) && defined(CONFIG_SYS_INIT_L2_ADDR) 490 #if defined(CONFIG_SYS_RAMBOOT) && defined(CONFIG_SYS_INIT_L2_ADDR)
443 if (cache_ctl & MPC85xx_L2CTL_L2E) { 491 if (cache_ctl & MPC85xx_L2CTL_L2E) {
444 /* Clear L2 SRAM memory-mapped base address */ 492 /* Clear L2 SRAM memory-mapped base address */
445 out_be32(&l2cache->l2srbar0, 0x0); 493 out_be32(&l2cache->l2srbar0, 0x0);
446 out_be32(&l2cache->l2srbar1, 0x0); 494 out_be32(&l2cache->l2srbar1, 0x0);
447 495
448 /* set MBECCDIS=0, SBECCDIS=0 */ 496 /* set MBECCDIS=0, SBECCDIS=0 */
449 clrbits_be32(&l2cache->l2errdis, 497 clrbits_be32(&l2cache->l2errdis,
450 (MPC85xx_L2ERRDIS_MBECC | 498 (MPC85xx_L2ERRDIS_MBECC |
451 MPC85xx_L2ERRDIS_SBECC)); 499 MPC85xx_L2ERRDIS_SBECC));
452 500
453 /* set L2E=0, L2SRAM=0 */ 501 /* set L2E=0, L2SRAM=0 */
454 clrbits_be32(&l2cache->l2ctl, 502 clrbits_be32(&l2cache->l2ctl,
455 (MPC85xx_L2CTL_L2E | 503 (MPC85xx_L2CTL_L2E |
456 MPC85xx_L2CTL_L2SRAM_ENTIRE)); 504 MPC85xx_L2CTL_L2SRAM_ENTIRE));
457 } 505 }
458 #endif 506 #endif
459 507
460 l2siz_field = (cache_ctl >> 28) & 0x3; 508 l2siz_field = (cache_ctl >> 28) & 0x3;
461 509
462 switch (l2siz_field) { 510 switch (l2siz_field) {
463 case 0x0: 511 case 0x0:
464 printf(" unknown size (0x%08x)\n", cache_ctl); 512 printf(" unknown size (0x%08x)\n", cache_ctl);
465 return -1; 513 return -1;
466 break; 514 break;
467 case 0x1: 515 case 0x1:
468 if (ver == SVR_8540 || ver == SVR_8560 || 516 if (ver == SVR_8540 || ver == SVR_8560 ||
469 ver == SVR_8541 || ver == SVR_8555) { 517 ver == SVR_8541 || ver == SVR_8555) {
470 puts("128 KiB "); 518 puts("128 KiB ");
471 /* set L2E=1, L2I=1, & L2BLKSZ=1 (128 KiBibyte) */ 519 /* set L2E=1, L2I=1, & L2BLKSZ=1 (128 KiBibyte) */
472 cache_ctl = 0xc4000000; 520 cache_ctl = 0xc4000000;
473 } else { 521 } else {
474 puts("256 KiB "); 522 puts("256 KiB ");
475 cache_ctl = 0xc0000000; /* set L2E=1, L2I=1, & L2SRAM=0 */ 523 cache_ctl = 0xc0000000; /* set L2E=1, L2I=1, & L2SRAM=0 */
476 } 524 }
477 break; 525 break;
478 case 0x2: 526 case 0x2:
479 if (ver == SVR_8540 || ver == SVR_8560 || 527 if (ver == SVR_8540 || ver == SVR_8560 ||
480 ver == SVR_8541 || ver == SVR_8555) { 528 ver == SVR_8541 || ver == SVR_8555) {
481 puts("256 KiB "); 529 puts("256 KiB ");
482 /* set L2E=1, L2I=1, & L2BLKSZ=2 (256 KiBibyte) */ 530 /* set L2E=1, L2I=1, & L2BLKSZ=2 (256 KiBibyte) */
483 cache_ctl = 0xc8000000; 531 cache_ctl = 0xc8000000;
484 } else { 532 } else {
485 puts("512 KiB "); 533 puts("512 KiB ");
486 /* set L2E=1, L2I=1, & L2SRAM=0 */ 534 /* set L2E=1, L2I=1, & L2SRAM=0 */
487 cache_ctl = 0xc0000000; 535 cache_ctl = 0xc0000000;
488 } 536 }
489 break; 537 break;
490 case 0x3: 538 case 0x3:
491 puts("1024 KiB "); 539 puts("1024 KiB ");
492 /* set L2E=1, L2I=1, & L2SRAM=0 */ 540 /* set L2E=1, L2I=1, & L2SRAM=0 */
493 cache_ctl = 0xc0000000; 541 cache_ctl = 0xc0000000;
494 break; 542 break;
495 } 543 }
496 544
497 if (l2cache->l2ctl & MPC85xx_L2CTL_L2E) { 545 if (l2cache->l2ctl & MPC85xx_L2CTL_L2E) {
498 puts("already enabled"); 546 puts("already enabled");
499 #if defined(CONFIG_SYS_INIT_L2_ADDR) && defined(CONFIG_SYS_FLASH_BASE) 547 #if defined(CONFIG_SYS_INIT_L2_ADDR) && defined(CONFIG_SYS_FLASH_BASE)
500 u32 l2srbar = l2cache->l2srbar0; 548 u32 l2srbar = l2cache->l2srbar0;
501 if (l2cache->l2ctl & MPC85xx_L2CTL_L2SRAM_ENTIRE 549 if (l2cache->l2ctl & MPC85xx_L2CTL_L2SRAM_ENTIRE
502 && l2srbar >= CONFIG_SYS_FLASH_BASE) { 550 && l2srbar >= CONFIG_SYS_FLASH_BASE) {
503 l2srbar = CONFIG_SYS_INIT_L2_ADDR; 551 l2srbar = CONFIG_SYS_INIT_L2_ADDR;
504 l2cache->l2srbar0 = l2srbar; 552 l2cache->l2srbar0 = l2srbar;
505 printf(", moving to 0x%08x", CONFIG_SYS_INIT_L2_ADDR); 553 printf(", moving to 0x%08x", CONFIG_SYS_INIT_L2_ADDR);
506 } 554 }
507 #endif /* CONFIG_SYS_INIT_L2_ADDR */ 555 #endif /* CONFIG_SYS_INIT_L2_ADDR */
508 puts("\n"); 556 puts("\n");
509 } else { 557 } else {
510 asm("msync;isync"); 558 asm("msync;isync");
511 l2cache->l2ctl = cache_ctl; /* invalidate & enable */ 559 l2cache->l2ctl = cache_ctl; /* invalidate & enable */
512 asm("msync;isync"); 560 asm("msync;isync");
513 puts("enabled\n"); 561 puts("enabled\n");
514 } 562 }
515 #elif defined(CONFIG_BACKSIDE_L2_CACHE) 563 #elif defined(CONFIG_BACKSIDE_L2_CACHE)
516 if (SVR_SOC_VER(svr) == SVR_P2040) { 564 if (SVR_SOC_VER(svr) == SVR_P2040) {
517 puts("N/A\n"); 565 puts("N/A\n");
518 goto skip_l2; 566 goto skip_l2;
519 } 567 }
520 568
521 u32 l2cfg0 = mfspr(SPRN_L2CFG0); 569 u32 l2cfg0 = mfspr(SPRN_L2CFG0);
522 570
523 /* invalidate the L2 cache */ 571 /* invalidate the L2 cache */
524 mtspr(SPRN_L2CSR0, (L2CSR0_L2FI|L2CSR0_L2LFC)); 572 mtspr(SPRN_L2CSR0, (L2CSR0_L2FI|L2CSR0_L2LFC));
525 while (mfspr(SPRN_L2CSR0) & (L2CSR0_L2FI|L2CSR0_L2LFC)) 573 while (mfspr(SPRN_L2CSR0) & (L2CSR0_L2FI|L2CSR0_L2LFC))
526 ; 574 ;
527 575
528 #ifdef CONFIG_SYS_CACHE_STASHING 576 #ifdef CONFIG_SYS_CACHE_STASHING
529 /* set stash id to (coreID) * 2 + 32 + L2 (1) */ 577 /* set stash id to (coreID) * 2 + 32 + L2 (1) */
530 mtspr(SPRN_L2CSR1, (32 + 1)); 578 mtspr(SPRN_L2CSR1, (32 + 1));
531 #endif 579 #endif
532 580
533 /* enable the cache */ 581 /* enable the cache */
534 mtspr(SPRN_L2CSR0, CONFIG_SYS_INIT_L2CSR0); 582 mtspr(SPRN_L2CSR0, CONFIG_SYS_INIT_L2CSR0);
535 583
536 if (CONFIG_SYS_INIT_L2CSR0 & L2CSR0_L2E) { 584 if (CONFIG_SYS_INIT_L2CSR0 & L2CSR0_L2E) {
537 while (!(mfspr(SPRN_L2CSR0) & L2CSR0_L2E)) 585 while (!(mfspr(SPRN_L2CSR0) & L2CSR0_L2E))
538 ; 586 ;
539 print_size((l2cfg0 & 0x3fff) * 64 * 1024, " enabled\n"); 587 print_size((l2cfg0 & 0x3fff) * 64 * 1024, " enabled\n");
540 } 588 }
541 589
542 skip_l2: 590 skip_l2:
543 #elif defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500) 591 #elif defined(CONFIG_SYS_FSL_QORIQ_CHASSIS2) && defined(CONFIG_E6500)
544 if (l2cache->l2csr0 & L2CSR0_L2E) 592 if (l2cache->l2csr0 & L2CSR0_L2E)
545 print_size((l2cache->l2cfg0 & 0x3fff) * 64 * 1024, 593 print_size((l2cache->l2cfg0 & 0x3fff) * 64 * 1024,
546 " enabled\n"); 594 " enabled\n");
547 595
548 enable_cluster_l2(); 596 enable_cluster_l2();
549 #else 597 #else
550 puts("disabled\n"); 598 puts("disabled\n");
551 #endif 599 #endif
552 600
553 enable_cpc(); 601 enable_cpc();
554 602
555 #ifndef CONFIG_SYS_FSL_NO_SERDES 603 #ifndef CONFIG_SYS_FSL_NO_SERDES
556 /* needs to be in ram since code uses global static vars */ 604 /* needs to be in ram since code uses global static vars */
557 fsl_serdes_init(); 605 fsl_serdes_init();
558 #endif 606 #endif
559 607
560 #ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571 608 #ifdef CONFIG_SYS_FSL_ERRATUM_SEC_A003571
561 #define MCFGR_AXIPIPE 0x000000f0 609 #define MCFGR_AXIPIPE 0x000000f0
562 if (IS_SVR_REV(svr, 1, 0)) 610 if (IS_SVR_REV(svr, 1, 0))
563 clrbits_be32(&sec->mcfgr, MCFGR_AXIPIPE); 611 clrbits_be32(&sec->mcfgr, MCFGR_AXIPIPE);
564 #endif 612 #endif
565 613
566 #ifdef CONFIG_SYS_FSL_ERRATUM_A005871 614 #ifdef CONFIG_SYS_FSL_ERRATUM_A005871
567 if (IS_SVR_REV(svr, 1, 0)) { 615 if (IS_SVR_REV(svr, 1, 0)) {
568 int i; 616 int i;
569 __be32 *p = (void __iomem *)CONFIG_SYS_DCSRBAR + 0xb004c; 617 __be32 *p = (void __iomem *)CONFIG_SYS_DCSRBAR + 0xb004c;
570 618
571 for (i = 0; i < 12; i++) { 619 for (i = 0; i < 12; i++) {
572 p += i + (i > 5 ? 11 : 0); 620 p += i + (i > 5 ? 11 : 0);
573 out_be32(p, 0x2); 621 out_be32(p, 0x2);
574 } 622 }
575 p = (void __iomem *)CONFIG_SYS_DCSRBAR + 0xb0108; 623 p = (void __iomem *)CONFIG_SYS_DCSRBAR + 0xb0108;
576 out_be32(p, 0x34); 624 out_be32(p, 0x34);
577 } 625 }
578 #endif 626 #endif
579 627
580 #ifdef CONFIG_SYS_SRIO 628 #ifdef CONFIG_SYS_SRIO
581 srio_init(); 629 srio_init();
582 #ifdef CONFIG_SRIO_PCIE_BOOT_MASTER 630 #ifdef CONFIG_SRIO_PCIE_BOOT_MASTER
583 char *s = getenv("bootmaster"); 631 char *s = getenv("bootmaster");
584 if (s) { 632 if (s) {
585 if (!strcmp(s, "SRIO1")) { 633 if (!strcmp(s, "SRIO1")) {
586 srio_boot_master(1); 634 srio_boot_master(1);
587 srio_boot_master_release_slave(1); 635 srio_boot_master_release_slave(1);
588 } 636 }
589 if (!strcmp(s, "SRIO2")) { 637 if (!strcmp(s, "SRIO2")) {
590 srio_boot_master(2); 638 srio_boot_master(2);
591 srio_boot_master_release_slave(2); 639 srio_boot_master_release_slave(2);
592 } 640 }
593 } 641 }
594 #endif 642 #endif
595 #endif 643 #endif
596 644
597 #if defined(CONFIG_MP) 645 #if defined(CONFIG_MP)
598 setup_mp(); 646 setup_mp();
599 #endif 647 #endif
600 648
601 #ifdef CONFIG_SYS_FSL_ERRATUM_ESDHC13 649 #ifdef CONFIG_SYS_FSL_ERRATUM_ESDHC13
602 { 650 {
603 if (SVR_MAJ(svr) < 3) { 651 if (SVR_MAJ(svr) < 3) {
604 void *p; 652 void *p;
605 p = (void *)CONFIG_SYS_DCSRBAR + 0x20520; 653 p = (void *)CONFIG_SYS_DCSRBAR + 0x20520;
606 setbits_be32(p, 1 << (31 - 14)); 654 setbits_be32(p, 1 << (31 - 14));
607 } 655 }
608 } 656 }
609 #endif 657 #endif
610 658
611 #ifdef CONFIG_SYS_LBC_LCRR 659 #ifdef CONFIG_SYS_LBC_LCRR
612 /* 660 /*
613 * Modify the CLKDIV field of LCRR register to improve the writing 661 * Modify the CLKDIV field of LCRR register to improve the writing
614 * speed for NOR flash. 662 * speed for NOR flash.
615 */ 663 */
616 clrsetbits_be32(&lbc->lcrr, LCRR_CLKDIV, CONFIG_SYS_LBC_LCRR); 664 clrsetbits_be32(&lbc->lcrr, LCRR_CLKDIV, CONFIG_SYS_LBC_LCRR);
617 __raw_readl(&lbc->lcrr); 665 __raw_readl(&lbc->lcrr);
618 isync(); 666 isync();
619 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_LBC103 667 #ifdef CONFIG_SYS_FSL_ERRATUM_NMG_LBC103
620 udelay(100); 668 udelay(100);
621 #endif 669 #endif
622 #endif 670 #endif
623 671
624 #ifdef CONFIG_SYS_FSL_USB1_PHY_ENABLE 672 #ifdef CONFIG_SYS_FSL_USB1_PHY_ENABLE
625 { 673 {
626 struct ccsr_usb_phy __iomem *usb_phy1 = 674 struct ccsr_usb_phy __iomem *usb_phy1 =
627 (void *)CONFIG_SYS_MPC85xx_USB1_PHY_ADDR; 675 (void *)CONFIG_SYS_MPC85xx_USB1_PHY_ADDR;
676 #ifdef CONFIG_SYS_FSL_ERRATUM_A006261
677 if (has_erratum_a006261())
678 fsl_erratum_a006261_workaround(usb_phy1);
679 #endif
628 out_be32(&usb_phy1->usb_enable_override, 680 out_be32(&usb_phy1->usb_enable_override,
629 CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE); 681 CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE);
630 } 682 }
631 #endif 683 #endif
632 #ifdef CONFIG_SYS_FSL_USB2_PHY_ENABLE 684 #ifdef CONFIG_SYS_FSL_USB2_PHY_ENABLE
633 { 685 {
634 struct ccsr_usb_phy __iomem *usb_phy2 = 686 struct ccsr_usb_phy __iomem *usb_phy2 =
635 (void *)CONFIG_SYS_MPC85xx_USB2_PHY_ADDR; 687 (void *)CONFIG_SYS_MPC85xx_USB2_PHY_ADDR;
688 #ifdef CONFIG_SYS_FSL_ERRATUM_A006261
689 if (has_erratum_a006261())
690 fsl_erratum_a006261_workaround(usb_phy2);
691 #endif
636 out_be32(&usb_phy2->usb_enable_override, 692 out_be32(&usb_phy2->usb_enable_override,
637 CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE); 693 CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE);
638 } 694 }
639 #endif 695 #endif
640 696
641 #ifdef CONFIG_SYS_FSL_ERRATUM_USB14 697 #ifdef CONFIG_SYS_FSL_ERRATUM_USB14
642 /* On P204x/P304x/P50x0 Rev1.0, USB transmit will result internal 698 /* On P204x/P304x/P50x0 Rev1.0, USB transmit will result internal
643 * multi-bit ECC errors which has impact on performance, so software 699 * multi-bit ECC errors which has impact on performance, so software
644 * should disable all ECC reporting from USB1 and USB2. 700 * should disable all ECC reporting from USB1 and USB2.
645 */ 701 */
646 if (IS_SVR_REV(get_svr(), 1, 0)) { 702 if (IS_SVR_REV(get_svr(), 1, 0)) {
647 struct dcsr_dcfg_regs *dcfg = (struct dcsr_dcfg_regs *) 703 struct dcsr_dcfg_regs *dcfg = (struct dcsr_dcfg_regs *)
648 (CONFIG_SYS_DCSRBAR + CONFIG_SYS_DCSR_DCFG_OFFSET); 704 (CONFIG_SYS_DCSRBAR + CONFIG_SYS_DCSR_DCFG_OFFSET);
649 setbits_be32(&dcfg->ecccr1, 705 setbits_be32(&dcfg->ecccr1,
650 (DCSR_DCFG_ECC_DISABLE_USB1 | 706 (DCSR_DCFG_ECC_DISABLE_USB1 |
651 DCSR_DCFG_ECC_DISABLE_USB2)); 707 DCSR_DCFG_ECC_DISABLE_USB2));
652 } 708 }
653 #endif 709 #endif
654 710
655 #if defined(CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE) 711 #if defined(CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE)
656 struct ccsr_usb_phy __iomem *usb_phy = 712 struct ccsr_usb_phy __iomem *usb_phy =
657 (void *)CONFIG_SYS_MPC85xx_USB1_PHY_ADDR; 713 (void *)CONFIG_SYS_MPC85xx_USB1_PHY_ADDR;
658 setbits_be32(&usb_phy->pllprg[1], 714 setbits_be32(&usb_phy->pllprg[1],
659 CONFIG_SYS_FSL_USB_PLLPRG2_PHY2_CLK_EN | 715 CONFIG_SYS_FSL_USB_PLLPRG2_PHY2_CLK_EN |
660 CONFIG_SYS_FSL_USB_PLLPRG2_PHY1_CLK_EN | 716 CONFIG_SYS_FSL_USB_PLLPRG2_PHY1_CLK_EN |
661 CONFIG_SYS_FSL_USB_PLLPRG2_MFI | 717 CONFIG_SYS_FSL_USB_PLLPRG2_MFI |
662 CONFIG_SYS_FSL_USB_PLLPRG2_PLL_EN); 718 CONFIG_SYS_FSL_USB_PLLPRG2_PLL_EN);
663 setbits_be32(&usb_phy->port1.ctrl, 719 setbits_be32(&usb_phy->port1.ctrl,
664 CONFIG_SYS_FSL_USB_CTRL_PHY_EN); 720 CONFIG_SYS_FSL_USB_CTRL_PHY_EN);
665 setbits_be32(&usb_phy->port1.drvvbuscfg, 721 setbits_be32(&usb_phy->port1.drvvbuscfg,
666 CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN); 722 CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN);
667 setbits_be32(&usb_phy->port1.pwrfltcfg, 723 setbits_be32(&usb_phy->port1.pwrfltcfg,
668 CONFIG_SYS_FSL_USB_PWRFLT_CR_EN); 724 CONFIG_SYS_FSL_USB_PWRFLT_CR_EN);
669 setbits_be32(&usb_phy->port2.ctrl, 725 setbits_be32(&usb_phy->port2.ctrl,
670 CONFIG_SYS_FSL_USB_CTRL_PHY_EN); 726 CONFIG_SYS_FSL_USB_CTRL_PHY_EN);
671 setbits_be32(&usb_phy->port2.drvvbuscfg, 727 setbits_be32(&usb_phy->port2.drvvbuscfg,
672 CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN); 728 CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN);
673 setbits_be32(&usb_phy->port2.pwrfltcfg, 729 setbits_be32(&usb_phy->port2.pwrfltcfg,
674 CONFIG_SYS_FSL_USB_PWRFLT_CR_EN); 730 CONFIG_SYS_FSL_USB_PWRFLT_CR_EN);
731
732 #ifdef CONFIG_SYS_FSL_ERRATUM_A006261
733 if (has_erratum_a006261())
734 fsl_erratum_a006261_workaround(usb_phy);
675 #endif 735 #endif
736
737 #endif /* CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE */
676 738
677 #ifdef CONFIG_FMAN_ENET 739 #ifdef CONFIG_FMAN_ENET
678 fman_enet_init(); 740 fman_enet_init();
679 #endif 741 #endif
680 742
681 #if defined(CONFIG_FSL_SATA_V2) && defined(CONFIG_FSL_SATA_ERRATUM_A001) 743 #if defined(CONFIG_FSL_SATA_V2) && defined(CONFIG_FSL_SATA_ERRATUM_A001)
682 /* 744 /*
683 * For P1022/1013 Rev1.0 silicon, after power on SATA host 745 * For P1022/1013 Rev1.0 silicon, after power on SATA host
684 * controller is configured in legacy mode instead of the 746 * controller is configured in legacy mode instead of the
685 * expected enterprise mode. Software needs to clear bit[28] 747 * expected enterprise mode. Software needs to clear bit[28]
686 * of HControl register to change to enterprise mode from 748 * of HControl register to change to enterprise mode from
687 * legacy mode. We assume that the controller is offline. 749 * legacy mode. We assume that the controller is offline.
688 */ 750 */
689 if (IS_SVR_REV(svr, 1, 0) && 751 if (IS_SVR_REV(svr, 1, 0) &&
690 ((SVR_SOC_VER(svr) == SVR_P1022) || 752 ((SVR_SOC_VER(svr) == SVR_P1022) ||
691 (SVR_SOC_VER(svr) == SVR_P1013))) { 753 (SVR_SOC_VER(svr) == SVR_P1013))) {
692 fsl_sata_reg_t *reg; 754 fsl_sata_reg_t *reg;
693 755
694 /* first SATA controller */ 756 /* first SATA controller */
695 reg = (void *)CONFIG_SYS_MPC85xx_SATA1_ADDR; 757 reg = (void *)CONFIG_SYS_MPC85xx_SATA1_ADDR;
696 clrbits_le32(&reg->hcontrol, HCONTROL_ENTERPRISE_EN); 758 clrbits_le32(&reg->hcontrol, HCONTROL_ENTERPRISE_EN);
697 759
698 /* second SATA controller */ 760 /* second SATA controller */
699 reg = (void *)CONFIG_SYS_MPC85xx_SATA2_ADDR; 761 reg = (void *)CONFIG_SYS_MPC85xx_SATA2_ADDR;
700 clrbits_le32(&reg->hcontrol, HCONTROL_ENTERPRISE_EN); 762 clrbits_le32(&reg->hcontrol, HCONTROL_ENTERPRISE_EN);
701 } 763 }
702 #endif 764 #endif
703 765
704 766
705 return 0; 767 return 0;
706 } 768 }
707 769
708 extern void setup_ivors(void); 770 extern void setup_ivors(void);
709 771
710 void arch_preboot_os(void) 772 void arch_preboot_os(void)
711 { 773 {
712 u32 msr; 774 u32 msr;
713 775
714 /* 776 /*
715 * We are changing interrupt offsets and are about to boot the OS so 777 * We are changing interrupt offsets and are about to boot the OS so
716 * we need to make sure we disable all async interrupts. EE is already 778 * we need to make sure we disable all async interrupts. EE is already
717 * disabled by the time we get called. 779 * disabled by the time we get called.
718 */ 780 */
719 msr = mfmsr(); 781 msr = mfmsr();
720 msr &= ~(MSR_ME|MSR_CE); 782 msr &= ~(MSR_ME|MSR_CE);
721 mtmsr(msr); 783 mtmsr(msr);
722 784
723 setup_ivors(); 785 setup_ivors();
724 } 786 }
725 787
726 #if defined(CONFIG_CMD_SATA) && defined(CONFIG_FSL_SATA) 788 #if defined(CONFIG_CMD_SATA) && defined(CONFIG_FSL_SATA)
727 int sata_initialize(void) 789 int sata_initialize(void)
728 { 790 {
729 if (is_serdes_configured(SATA1) || is_serdes_configured(SATA2)) 791 if (is_serdes_configured(SATA1) || is_serdes_configured(SATA2))
730 return __sata_initialize(); 792 return __sata_initialize();
731 793
732 return 1; 794 return 1;
733 } 795 }
734 #endif 796 #endif
735 797
736 void cpu_secondary_init_r(void) 798 void cpu_secondary_init_r(void)
737 { 799 {
738 #ifdef CONFIG_QE 800 #ifdef CONFIG_QE
739 uint qe_base = CONFIG_SYS_IMMR + 0x00080000; /* QE immr base */ 801 uint qe_base = CONFIG_SYS_IMMR + 0x00080000; /* QE immr base */
740 #ifdef CONFIG_SYS_QE_FMAN_FW_IN_NAND 802 #ifdef CONFIG_SYS_QE_FMAN_FW_IN_NAND
741 int ret; 803 int ret;
742 size_t fw_length = CONFIG_SYS_QE_FMAN_FW_LENGTH; 804 size_t fw_length = CONFIG_SYS_QE_FMAN_FW_LENGTH;
743 805
744 /* load QE firmware from NAND flash to DDR first */ 806 /* load QE firmware from NAND flash to DDR first */
745 ret = nand_read(&nand_info[0], (loff_t)CONFIG_SYS_QE_FMAN_FW_IN_NAND, 807 ret = nand_read(&nand_info[0], (loff_t)CONFIG_SYS_QE_FMAN_FW_IN_NAND,
746 &fw_length, (u_char *)CONFIG_SYS_QE_FMAN_FW_ADDR); 808 &fw_length, (u_char *)CONFIG_SYS_QE_FMAN_FW_ADDR);
747 809
748 if (ret && ret == -EUCLEAN) { 810 if (ret && ret == -EUCLEAN) {
749 printf ("NAND read for QE firmware at offset %x failed %d\n", 811 printf ("NAND read for QE firmware at offset %x failed %d\n",
750 CONFIG_SYS_QE_FMAN_FW_IN_NAND, ret); 812 CONFIG_SYS_QE_FMAN_FW_IN_NAND, ret);
751 } 813 }
752 #endif 814 #endif
753 qe_init(qe_base); 815 qe_init(qe_base);
754 qe_reset(); 816 qe_reset();
755 #endif 817 #endif
756 } 818 }
757 819
arch/powerpc/include/asm/config_mpc85xx.h
1 /* 1 /*
2 * Copyright 2011-2012 Freescale Semiconductor, Inc. 2 * Copyright 2011-2012 Freescale Semiconductor, Inc.
3 * 3 *
4 * SPDX-License-Identifier: GPL-2.0+ 4 * SPDX-License-Identifier: GPL-2.0+
5 */ 5 */
6 6
7 #ifndef _ASM_MPC85xx_CONFIG_H_ 7 #ifndef _ASM_MPC85xx_CONFIG_H_
8 #define _ASM_MPC85xx_CONFIG_H_ 8 #define _ASM_MPC85xx_CONFIG_H_
9 9
10 /* SoC specific defines for Freescale MPC85xx (PQ3) and QorIQ processors */ 10 /* SoC specific defines for Freescale MPC85xx (PQ3) and QorIQ processors */
11 11
12 #ifdef CONFIG_SYS_CCSRBAR_DEFAULT 12 #ifdef CONFIG_SYS_CCSRBAR_DEFAULT
13 #error "Do not define CONFIG_SYS_CCSRBAR_DEFAULT in the board header file." 13 #error "Do not define CONFIG_SYS_CCSRBAR_DEFAULT in the board header file."
14 #endif 14 #endif
15 15
16 /* 16 /*
17 * This macro should be removed when we no longer care about backwards 17 * This macro should be removed when we no longer care about backwards
18 * compatibility with older operating systems. 18 * compatibility with older operating systems.
19 */ 19 */
20 #define CONFIG_PPC_SPINTABLE_COMPATIBLE 20 #define CONFIG_PPC_SPINTABLE_COMPATIBLE
21 21
22 #define FSL_DDR_VER_4_7 47 22 #define FSL_DDR_VER_4_7 47
23 #define FSL_DDR_VER_5_0 50 23 #define FSL_DDR_VER_5_0 50
24 24
25 /* IP endianness */ 25 /* IP endianness */
26 #define CONFIG_SYS_FSL_IFC_BE 26 #define CONFIG_SYS_FSL_IFC_BE
27 27
28 /* Number of TLB CAM entries we have on FSL Book-E chips */ 28 /* Number of TLB CAM entries we have on FSL Book-E chips */
29 #if defined(CONFIG_E500MC) 29 #if defined(CONFIG_E500MC)
30 #define CONFIG_SYS_NUM_TLBCAMS 64 30 #define CONFIG_SYS_NUM_TLBCAMS 64
31 #elif defined(CONFIG_E500) 31 #elif defined(CONFIG_E500)
32 #define CONFIG_SYS_NUM_TLBCAMS 16 32 #define CONFIG_SYS_NUM_TLBCAMS 16
33 #endif 33 #endif
34 34
35 #if defined(CONFIG_MPC8536) 35 #if defined(CONFIG_MPC8536)
36 #define CONFIG_MAX_CPUS 1 36 #define CONFIG_MAX_CPUS 1
37 #define CONFIG_SYS_FSL_NUM_LAWS 12 37 #define CONFIG_SYS_FSL_NUM_LAWS 12
38 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 1 38 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 1
39 #define CONFIG_SYS_FSL_SEC_COMPAT 2 39 #define CONFIG_SYS_FSL_SEC_COMPAT 2
40 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 40 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
41 #define CONFIG_SYS_FSL_ERRATUM_A005125 41 #define CONFIG_SYS_FSL_ERRATUM_A005125
42 42
43 #elif defined(CONFIG_MPC8540) 43 #elif defined(CONFIG_MPC8540)
44 #define CONFIG_MAX_CPUS 1 44 #define CONFIG_MAX_CPUS 1
45 #define CONFIG_SYS_FSL_NUM_LAWS 8 45 #define CONFIG_SYS_FSL_NUM_LAWS 8
46 #define CONFIG_SYS_FSL_DDRC_GEN1 46 #define CONFIG_SYS_FSL_DDRC_GEN1
47 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 47 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
48 48
49 #elif defined(CONFIG_MPC8541) 49 #elif defined(CONFIG_MPC8541)
50 #define CONFIG_MAX_CPUS 1 50 #define CONFIG_MAX_CPUS 1
51 #define CONFIG_SYS_FSL_NUM_LAWS 8 51 #define CONFIG_SYS_FSL_NUM_LAWS 8
52 #define CONFIG_SYS_FSL_DDRC_GEN1 52 #define CONFIG_SYS_FSL_DDRC_GEN1
53 #define CONFIG_SYS_FSL_SEC_COMPAT 2 53 #define CONFIG_SYS_FSL_SEC_COMPAT 2
54 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 54 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
55 55
56 #elif defined(CONFIG_MPC8544) 56 #elif defined(CONFIG_MPC8544)
57 #define CONFIG_MAX_CPUS 1 57 #define CONFIG_MAX_CPUS 1
58 #define CONFIG_SYS_FSL_NUM_LAWS 10 58 #define CONFIG_SYS_FSL_NUM_LAWS 10
59 #define CONFIG_SYS_FSL_DDRC_GEN2 59 #define CONFIG_SYS_FSL_DDRC_GEN2
60 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 0 60 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 0
61 #define CONFIG_SYS_FSL_SEC_COMPAT 2 61 #define CONFIG_SYS_FSL_SEC_COMPAT 2
62 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 62 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
63 #define CONFIG_SYS_FSL_ERRATUM_A005125 63 #define CONFIG_SYS_FSL_ERRATUM_A005125
64 64
65 #elif defined(CONFIG_MPC8548) 65 #elif defined(CONFIG_MPC8548)
66 #define CONFIG_MAX_CPUS 1 66 #define CONFIG_MAX_CPUS 1
67 #define CONFIG_SYS_FSL_NUM_LAWS 10 67 #define CONFIG_SYS_FSL_NUM_LAWS 10
68 #define CONFIG_SYS_FSL_DDRC_GEN2 68 #define CONFIG_SYS_FSL_DDRC_GEN2
69 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 0 69 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 0
70 #define CONFIG_SYS_FSL_SEC_COMPAT 2 70 #define CONFIG_SYS_FSL_SEC_COMPAT 2
71 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 71 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
72 #define CONFIG_SYS_FSL_ERRATUM_NMG_DDR120 72 #define CONFIG_SYS_FSL_ERRATUM_NMG_DDR120
73 #define CONFIG_SYS_FSL_ERRATUM_NMG_LBC103 73 #define CONFIG_SYS_FSL_ERRATUM_NMG_LBC103
74 #define CONFIG_SYS_FSL_ERRATUM_NMG_ETSEC129 74 #define CONFIG_SYS_FSL_ERRATUM_NMG_ETSEC129
75 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 1 75 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 1
76 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 76 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
77 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 77 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
78 #define CONFIG_SYS_FSL_RMU 78 #define CONFIG_SYS_FSL_RMU
79 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2 79 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2
80 #define CONFIG_SYS_FSL_ERRATUM_A005125 80 #define CONFIG_SYS_FSL_ERRATUM_A005125
81 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 81 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
82 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x00 82 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x00
83 83
84 #elif defined(CONFIG_MPC8555) 84 #elif defined(CONFIG_MPC8555)
85 #define CONFIG_MAX_CPUS 1 85 #define CONFIG_MAX_CPUS 1
86 #define CONFIG_SYS_FSL_NUM_LAWS 8 86 #define CONFIG_SYS_FSL_NUM_LAWS 8
87 #define CONFIG_SYS_FSL_DDRC_GEN1 87 #define CONFIG_SYS_FSL_DDRC_GEN1
88 #define CONFIG_SYS_FSL_SEC_COMPAT 2 88 #define CONFIG_SYS_FSL_SEC_COMPAT 2
89 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 89 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
90 90
91 #elif defined(CONFIG_MPC8560) 91 #elif defined(CONFIG_MPC8560)
92 #define CONFIG_MAX_CPUS 1 92 #define CONFIG_MAX_CPUS 1
93 #define CONFIG_SYS_FSL_NUM_LAWS 8 93 #define CONFIG_SYS_FSL_NUM_LAWS 8
94 #define CONFIG_SYS_FSL_DDRC_GEN1 94 #define CONFIG_SYS_FSL_DDRC_GEN1
95 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 95 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
96 96
97 #elif defined(CONFIG_MPC8568) 97 #elif defined(CONFIG_MPC8568)
98 #define CONFIG_MAX_CPUS 1 98 #define CONFIG_MAX_CPUS 1
99 #define CONFIG_SYS_FSL_NUM_LAWS 10 99 #define CONFIG_SYS_FSL_NUM_LAWS 10
100 #define CONFIG_SYS_FSL_DDRC_GEN2 100 #define CONFIG_SYS_FSL_DDRC_GEN2
101 #define CONFIG_SYS_FSL_SEC_COMPAT 2 101 #define CONFIG_SYS_FSL_SEC_COMPAT 2
102 #define QE_MURAM_SIZE 0x10000UL 102 #define QE_MURAM_SIZE 0x10000UL
103 #define MAX_QE_RISC 2 103 #define MAX_QE_RISC 2
104 #define QE_NUM_OF_SNUM 28 104 #define QE_NUM_OF_SNUM 28
105 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 105 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
106 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 1 106 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 1
107 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 107 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
108 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 108 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
109 #define CONFIG_SYS_FSL_RMU 109 #define CONFIG_SYS_FSL_RMU
110 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2 110 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2
111 111
112 #elif defined(CONFIG_MPC8569) 112 #elif defined(CONFIG_MPC8569)
113 #define CONFIG_MAX_CPUS 1 113 #define CONFIG_MAX_CPUS 1
114 #define CONFIG_SYS_FSL_NUM_LAWS 10 114 #define CONFIG_SYS_FSL_NUM_LAWS 10
115 #define CONFIG_SYS_FSL_SEC_COMPAT 2 115 #define CONFIG_SYS_FSL_SEC_COMPAT 2
116 #define QE_MURAM_SIZE 0x20000UL 116 #define QE_MURAM_SIZE 0x20000UL
117 #define MAX_QE_RISC 4 117 #define MAX_QE_RISC 4
118 #define QE_NUM_OF_SNUM 46 118 #define QE_NUM_OF_SNUM 46
119 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 119 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
120 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 1 120 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 1
121 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 121 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
122 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 122 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
123 #define CONFIG_SYS_FSL_RMU 123 #define CONFIG_SYS_FSL_RMU
124 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2 124 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2
125 #define CONFIG_SYS_FSL_ERRATUM_A005125 125 #define CONFIG_SYS_FSL_ERRATUM_A005125
126 126
127 #elif defined(CONFIG_MPC8572) 127 #elif defined(CONFIG_MPC8572)
128 #define CONFIG_MAX_CPUS 2 128 #define CONFIG_MAX_CPUS 2
129 #define CONFIG_SYS_FSL_NUM_LAWS 12 129 #define CONFIG_SYS_FSL_NUM_LAWS 12
130 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 130 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
131 #define CONFIG_SYS_FSL_SEC_COMPAT 2 131 #define CONFIG_SYS_FSL_SEC_COMPAT 2
132 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 132 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
133 #define CONFIG_SYS_FSL_ERRATUM_DDR_115 133 #define CONFIG_SYS_FSL_ERRATUM_DDR_115
134 #define CONFIG_SYS_FSL_ERRATUM_DDR111_DDR134 134 #define CONFIG_SYS_FSL_ERRATUM_DDR111_DDR134
135 #define CONFIG_SYS_FSL_ERRATUM_A005125 135 #define CONFIG_SYS_FSL_ERRATUM_A005125
136 136
137 #elif defined(CONFIG_P1010) 137 #elif defined(CONFIG_P1010)
138 #define CONFIG_MAX_CPUS 1 138 #define CONFIG_MAX_CPUS 1
139 #define CONFIG_FSL_SDHC_V2_3 139 #define CONFIG_FSL_SDHC_V2_3
140 #define CONFIG_SYS_FSL_NUM_LAWS 12 140 #define CONFIG_SYS_FSL_NUM_LAWS 12
141 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3 141 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3
142 #define CONFIG_TSECV2 142 #define CONFIG_TSECV2
143 #define CONFIG_SYS_FSL_SEC_COMPAT 4 143 #define CONFIG_SYS_FSL_SEC_COMPAT 4
144 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 144 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
145 #define CONFIG_NUM_DDR_CONTROLLERS 1 145 #define CONFIG_NUM_DDR_CONTROLLERS 1
146 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 146 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
147 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 4 147 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 4
148 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 148 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
149 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2" 149 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
150 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 150 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
151 #define CONFIG_SYS_FSL_ERRATUM_IFC_A002769 151 #define CONFIG_SYS_FSL_ERRATUM_IFC_A002769
152 #define CONFIG_SYS_FSL_ERRATUM_P1010_A003549 152 #define CONFIG_SYS_FSL_ERRATUM_P1010_A003549
153 #define CONFIG_SYS_FSL_ERRATUM_SEC_A003571 153 #define CONFIG_SYS_FSL_ERRATUM_SEC_A003571
154 #define CONFIG_SYS_FSL_ERRATUM_IFC_A003399 154 #define CONFIG_SYS_FSL_ERRATUM_IFC_A003399
155 #define CONFIG_SYS_FSL_ERRATUM_A005125 155 #define CONFIG_SYS_FSL_ERRATUM_A005125
156 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 156 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
157 #define CONFIG_SYS_FSL_ERRATUM_A006261
157 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x10 158 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x10
158 #define CONFIG_ESDHC_HC_BLK_ADDR 159 #define CONFIG_ESDHC_HC_BLK_ADDR
159 160
160 /* P1011 is single core version of P1020 */ 161 /* P1011 is single core version of P1020 */
161 #elif defined(CONFIG_P1011) 162 #elif defined(CONFIG_P1011)
162 #define CONFIG_MAX_CPUS 1 163 #define CONFIG_MAX_CPUS 1
163 #define CONFIG_SYS_FSL_NUM_LAWS 12 164 #define CONFIG_SYS_FSL_NUM_LAWS 12
164 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 165 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
165 #define CONFIG_TSECV2 166 #define CONFIG_TSECV2
166 #define CONFIG_FSL_PCIE_DISABLE_ASPM 167 #define CONFIG_FSL_PCIE_DISABLE_ASPM
167 #define CONFIG_SYS_FSL_SEC_COMPAT 2 168 #define CONFIG_SYS_FSL_SEC_COMPAT 2
168 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 169 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
169 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 170 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
170 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 171 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
171 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 172 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
172 #define CONFIG_SYS_FSL_ERRATUM_A005125 173 #define CONFIG_SYS_FSL_ERRATUM_A005125
173 174
174 /* P1012 is single core version of P1021 */ 175 /* P1012 is single core version of P1021 */
175 #elif defined(CONFIG_P1012) 176 #elif defined(CONFIG_P1012)
176 #define CONFIG_MAX_CPUS 1 177 #define CONFIG_MAX_CPUS 1
177 #define CONFIG_SYS_FSL_NUM_LAWS 12 178 #define CONFIG_SYS_FSL_NUM_LAWS 12
178 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 179 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
179 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 180 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
180 #define CONFIG_TSECV2 181 #define CONFIG_TSECV2
181 #define CONFIG_FSL_PCIE_DISABLE_ASPM 182 #define CONFIG_FSL_PCIE_DISABLE_ASPM
182 #define CONFIG_SYS_FSL_SEC_COMPAT 2 183 #define CONFIG_SYS_FSL_SEC_COMPAT 2
183 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 184 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
184 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 185 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
185 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 186 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
186 #define QE_MURAM_SIZE 0x6000UL 187 #define QE_MURAM_SIZE 0x6000UL
187 #define MAX_QE_RISC 1 188 #define MAX_QE_RISC 1
188 #define QE_NUM_OF_SNUM 28 189 #define QE_NUM_OF_SNUM 28
189 #define CONFIG_SYS_FSL_ERRATUM_A005125 190 #define CONFIG_SYS_FSL_ERRATUM_A005125
190 191
191 /* P1013 is single core version of P1022 */ 192 /* P1013 is single core version of P1022 */
192 #elif defined(CONFIG_P1013) 193 #elif defined(CONFIG_P1013)
193 #define CONFIG_MAX_CPUS 1 194 #define CONFIG_MAX_CPUS 1
194 #define CONFIG_SYS_FSL_NUM_LAWS 12 195 #define CONFIG_SYS_FSL_NUM_LAWS 12
195 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 196 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
196 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 197 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
197 #define CONFIG_TSECV2 198 #define CONFIG_TSECV2
198 #define CONFIG_SYS_FSL_SEC_COMPAT 2 199 #define CONFIG_SYS_FSL_SEC_COMPAT 2
199 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 200 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
200 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 201 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
201 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 202 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
202 #define CONFIG_FSL_SATA_ERRATUM_A001 203 #define CONFIG_FSL_SATA_ERRATUM_A001
203 #define CONFIG_SYS_FSL_ERRATUM_A005125 204 #define CONFIG_SYS_FSL_ERRATUM_A005125
204 205
205 #elif defined(CONFIG_P1014) 206 #elif defined(CONFIG_P1014)
206 #define CONFIG_MAX_CPUS 1 207 #define CONFIG_MAX_CPUS 1
207 #define CONFIG_FSL_SDHC_V2_3 208 #define CONFIG_FSL_SDHC_V2_3
208 #define CONFIG_SYS_FSL_NUM_LAWS 12 209 #define CONFIG_SYS_FSL_NUM_LAWS 12
209 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3 210 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3
210 #define CONFIG_TSECV2 211 #define CONFIG_TSECV2
211 #define CONFIG_SYS_FSL_SEC_COMPAT 4 212 #define CONFIG_SYS_FSL_SEC_COMPAT 4
212 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 213 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
213 #define CONFIG_NUM_DDR_CONTROLLERS 1 214 #define CONFIG_NUM_DDR_CONTROLLERS 1
214 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 215 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
215 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 216 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
216 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 217 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
217 #define CONFIG_SYS_FSL_ERRATUM_IFC_A002769 218 #define CONFIG_SYS_FSL_ERRATUM_IFC_A002769
218 #define CONFIG_SYS_FSL_ERRATUM_P1010_A003549 219 #define CONFIG_SYS_FSL_ERRATUM_P1010_A003549
219 #define CONFIG_SYS_FSL_ERRATUM_IFC_A003399 220 #define CONFIG_SYS_FSL_ERRATUM_IFC_A003399
220 221
221 /* P1017 is single core version of P1023 */ 222 /* P1017 is single core version of P1023 */
222 #elif defined(CONFIG_P1017) 223 #elif defined(CONFIG_P1017)
223 #define CONFIG_MAX_CPUS 1 224 #define CONFIG_MAX_CPUS 1
224 #define CONFIG_SYS_FSL_NUM_LAWS 12 225 #define CONFIG_SYS_FSL_NUM_LAWS 12
225 #define CONFIG_SYS_FSL_SEC_COMPAT 4 226 #define CONFIG_SYS_FSL_SEC_COMPAT 4
226 #define CONFIG_SYS_NUM_FMAN 1 227 #define CONFIG_SYS_NUM_FMAN 1
227 #define CONFIG_SYS_NUM_FM1_DTSEC 2 228 #define CONFIG_SYS_NUM_FM1_DTSEC 2
228 #define CONFIG_NUM_DDR_CONTROLLERS 1 229 #define CONFIG_NUM_DDR_CONTROLLERS 1
229 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 230 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
230 #define CONFIG_SYS_QMAN_NUM_PORTALS 3 231 #define CONFIG_SYS_QMAN_NUM_PORTALS 3
231 #define CONFIG_SYS_BMAN_NUM_PORTALS 3 232 #define CONFIG_SYS_BMAN_NUM_PORTALS 3
232 #define CONFIG_SYS_FM_MURAM_SIZE 0x10000 233 #define CONFIG_SYS_FM_MURAM_SIZE 0x10000
233 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2" 234 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
234 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff600000 235 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff600000
235 #define CONFIG_SYS_FSL_ERRATUM_A005125 236 #define CONFIG_SYS_FSL_ERRATUM_A005125
236 237
237 #elif defined(CONFIG_P1020) 238 #elif defined(CONFIG_P1020)
238 #define CONFIG_MAX_CPUS 2 239 #define CONFIG_MAX_CPUS 2
239 #define CONFIG_SYS_FSL_NUM_LAWS 12 240 #define CONFIG_SYS_FSL_NUM_LAWS 12
240 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 241 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
241 #define CONFIG_TSECV2 242 #define CONFIG_TSECV2
242 #define CONFIG_FSL_PCIE_DISABLE_ASPM 243 #define CONFIG_FSL_PCIE_DISABLE_ASPM
243 #define CONFIG_SYS_FSL_SEC_COMPAT 2 244 #define CONFIG_SYS_FSL_SEC_COMPAT 2
244 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 245 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
245 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 246 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
246 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 247 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
247 #define CONFIG_SYS_FSL_ERRATUM_A005125 248 #define CONFIG_SYS_FSL_ERRATUM_A005125
248 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 249 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
249 250
250 #elif defined(CONFIG_P1021) 251 #elif defined(CONFIG_P1021)
251 #define CONFIG_MAX_CPUS 2 252 #define CONFIG_MAX_CPUS 2
252 #define CONFIG_SYS_FSL_NUM_LAWS 12 253 #define CONFIG_SYS_FSL_NUM_LAWS 12
253 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 254 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
254 #define CONFIG_TSECV2 255 #define CONFIG_TSECV2
255 #define CONFIG_FSL_PCIE_DISABLE_ASPM 256 #define CONFIG_FSL_PCIE_DISABLE_ASPM
256 #define CONFIG_SYS_FSL_SEC_COMPAT 2 257 #define CONFIG_SYS_FSL_SEC_COMPAT 2
257 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 258 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
258 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 259 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
259 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 260 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
260 #define QE_MURAM_SIZE 0x6000UL 261 #define QE_MURAM_SIZE 0x6000UL
261 #define MAX_QE_RISC 1 262 #define MAX_QE_RISC 1
262 #define QE_NUM_OF_SNUM 28 263 #define QE_NUM_OF_SNUM 28
263 #define CONFIG_SYS_FSL_ERRATUM_A005125 264 #define CONFIG_SYS_FSL_ERRATUM_A005125
264 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 265 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
265 266
266 #elif defined(CONFIG_P1022) 267 #elif defined(CONFIG_P1022)
267 #define CONFIG_MAX_CPUS 2 268 #define CONFIG_MAX_CPUS 2
268 #define CONFIG_SYS_FSL_NUM_LAWS 12 269 #define CONFIG_SYS_FSL_NUM_LAWS 12
269 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 270 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
270 #define CONFIG_TSECV2 271 #define CONFIG_TSECV2
271 #define CONFIG_SYS_FSL_SEC_COMPAT 2 272 #define CONFIG_SYS_FSL_SEC_COMPAT 2
272 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 273 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
273 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 274 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
274 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 275 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
275 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 276 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
276 #define CONFIG_FSL_SATA_ERRATUM_A001 277 #define CONFIG_FSL_SATA_ERRATUM_A001
277 #define CONFIG_SYS_FSL_ERRATUM_A005125 278 #define CONFIG_SYS_FSL_ERRATUM_A005125
278 279
279 #elif defined(CONFIG_P1023) 280 #elif defined(CONFIG_P1023)
280 #define CONFIG_MAX_CPUS 2 281 #define CONFIG_MAX_CPUS 2
281 #define CONFIG_SYS_FSL_NUM_LAWS 12 282 #define CONFIG_SYS_FSL_NUM_LAWS 12
282 #define CONFIG_SYS_FSL_SEC_COMPAT 4 283 #define CONFIG_SYS_FSL_SEC_COMPAT 4
283 #define CONFIG_SYS_NUM_FMAN 1 284 #define CONFIG_SYS_NUM_FMAN 1
284 #define CONFIG_SYS_NUM_FM1_DTSEC 2 285 #define CONFIG_SYS_NUM_FM1_DTSEC 2
285 #define CONFIG_NUM_DDR_CONTROLLERS 1 286 #define CONFIG_NUM_DDR_CONTROLLERS 1
286 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 287 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
287 #define CONFIG_SYS_QMAN_NUM_PORTALS 3 288 #define CONFIG_SYS_QMAN_NUM_PORTALS 3
288 #define CONFIG_SYS_BMAN_NUM_PORTALS 3 289 #define CONFIG_SYS_BMAN_NUM_PORTALS 3
289 #define CONFIG_SYS_FM_MURAM_SIZE 0x10000 290 #define CONFIG_SYS_FM_MURAM_SIZE 0x10000
290 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2" 291 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
291 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff600000 292 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff600000
292 #define CONFIG_SYS_FSL_ERRATUM_A005125 293 #define CONFIG_SYS_FSL_ERRATUM_A005125
293 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 294 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
294 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x11 295 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x11
295 296
296 /* P1024 is lower end variant of P1020 */ 297 /* P1024 is lower end variant of P1020 */
297 #elif defined(CONFIG_P1024) 298 #elif defined(CONFIG_P1024)
298 #define CONFIG_MAX_CPUS 2 299 #define CONFIG_MAX_CPUS 2
299 #define CONFIG_SYS_FSL_NUM_LAWS 12 300 #define CONFIG_SYS_FSL_NUM_LAWS 12
300 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 301 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
301 #define CONFIG_TSECV2 302 #define CONFIG_TSECV2
302 #define CONFIG_FSL_PCIE_DISABLE_ASPM 303 #define CONFIG_FSL_PCIE_DISABLE_ASPM
303 #define CONFIG_SYS_FSL_SEC_COMPAT 2 304 #define CONFIG_SYS_FSL_SEC_COMPAT 2
304 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 305 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
305 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 306 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
306 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 307 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
307 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 308 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
308 #define CONFIG_SYS_FSL_ERRATUM_A005125 309 #define CONFIG_SYS_FSL_ERRATUM_A005125
309 310
310 /* P1025 is lower end variant of P1021 */ 311 /* P1025 is lower end variant of P1021 */
311 #elif defined(CONFIG_P1025) 312 #elif defined(CONFIG_P1025)
312 #define CONFIG_MAX_CPUS 2 313 #define CONFIG_MAX_CPUS 2
313 #define CONFIG_SYS_FSL_NUM_LAWS 12 314 #define CONFIG_SYS_FSL_NUM_LAWS 12
314 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 315 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
315 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 316 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
316 #define CONFIG_TSECV2 317 #define CONFIG_TSECV2
317 #define CONFIG_FSL_PCIE_DISABLE_ASPM 318 #define CONFIG_FSL_PCIE_DISABLE_ASPM
318 #define CONFIG_SYS_FSL_SEC_COMPAT 2 319 #define CONFIG_SYS_FSL_SEC_COMPAT 2
319 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 320 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
320 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 321 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
321 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 322 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
322 #define QE_MURAM_SIZE 0x6000UL 323 #define QE_MURAM_SIZE 0x6000UL
323 #define MAX_QE_RISC 1 324 #define MAX_QE_RISC 1
324 #define QE_NUM_OF_SNUM 28 325 #define QE_NUM_OF_SNUM 28
325 #define CONFIG_SYS_FSL_ERRATUM_A005125 326 #define CONFIG_SYS_FSL_ERRATUM_A005125
326 327
327 /* P2010 is single core version of P2020 */ 328 /* P2010 is single core version of P2020 */
328 #elif defined(CONFIG_P2010) 329 #elif defined(CONFIG_P2010)
329 #define CONFIG_MAX_CPUS 1 330 #define CONFIG_MAX_CPUS 1
330 #define CONFIG_SYS_FSL_NUM_LAWS 12 331 #define CONFIG_SYS_FSL_NUM_LAWS 12
331 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 332 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
332 #define CONFIG_SYS_FSL_SEC_COMPAT 2 333 #define CONFIG_SYS_FSL_SEC_COMPAT 2
333 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 334 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
334 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 335 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
335 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 336 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
336 #define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001 337 #define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001
337 #define CONFIG_SYS_FSL_ERRATUM_A005125 338 #define CONFIG_SYS_FSL_ERRATUM_A005125
338 339
339 #elif defined(CONFIG_P2020) 340 #elif defined(CONFIG_P2020)
340 #define CONFIG_MAX_CPUS 2 341 #define CONFIG_MAX_CPUS 2
341 #define CONFIG_SYS_FSL_NUM_LAWS 12 342 #define CONFIG_SYS_FSL_NUM_LAWS 12
342 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2 343 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 2
343 #define CONFIG_SYS_FSL_SEC_COMPAT 2 344 #define CONFIG_SYS_FSL_SEC_COMPAT 2
344 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 345 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
345 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 346 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
346 #define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001 347 #define CONFIG_SYS_FSL_ERRATUM_ESDHC_A001
347 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 348 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
348 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 349 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
349 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 350 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
350 #define CONFIG_SYS_FSL_RMU 351 #define CONFIG_SYS_FSL_RMU
351 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2 352 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2
352 #define CONFIG_SYS_FSL_ERRATUM_A005125 353 #define CONFIG_SYS_FSL_ERRATUM_A005125
353 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 354 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
354 #elif defined(CONFIG_PPC_P2041) /* also supports P2040 */ 355 #elif defined(CONFIG_PPC_P2041) /* also supports P2040 */
355 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1 356 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1
356 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 357 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
357 #define CONFIG_MAX_CPUS 4 358 #define CONFIG_MAX_CPUS 4
358 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2 359 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2
359 #define CONFIG_SYS_FSL_NUM_LAWS 32 360 #define CONFIG_SYS_FSL_NUM_LAWS 32
360 #define CONFIG_SYS_FSL_SEC_COMPAT 4 361 #define CONFIG_SYS_FSL_SEC_COMPAT 4
361 #define CONFIG_SYS_NUM_FMAN 1 362 #define CONFIG_SYS_NUM_FMAN 1
362 #define CONFIG_SYS_NUM_FM1_DTSEC 5 363 #define CONFIG_SYS_NUM_FM1_DTSEC 5
363 #define CONFIG_SYS_NUM_FM1_10GEC 1 364 #define CONFIG_SYS_NUM_FM1_10GEC 1
364 #define CONFIG_NUM_DDR_CONTROLLERS 1 365 #define CONFIG_NUM_DDR_CONTROLLERS 1
365 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 366 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
366 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000 367 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000
367 #define CONFIG_SYS_FSL_TBCLK_DIV 32 368 #define CONFIG_SYS_FSL_TBCLK_DIV 32
368 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2" 369 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
369 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 370 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
370 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE 371 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE
371 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE 372 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE
372 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 373 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
373 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 374 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
374 #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011 375 #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011
375 #define CONFIG_SYS_FSL_ERRATUM_USB14 376 #define CONFIG_SYS_FSL_ERRATUM_USB14
376 #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999 377 #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999
377 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003 378 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003
378 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474 379 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474
379 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 380 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
380 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 381 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
381 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 382 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
382 #define CONFIG_SYS_FSL_ERRATUM_A004510 383 #define CONFIG_SYS_FSL_ERRATUM_A004510
383 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10 384 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10
384 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV2 0x11 385 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV2 0x11
385 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xf0000000 386 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xf0000000
386 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034 387 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034
387 #define CONFIG_SYS_FSL_ERRATUM_A004849 388 #define CONFIG_SYS_FSL_ERRATUM_A004849
388 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 389 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
390 #define CONFIG_SYS_FSL_ERRATUM_A006261
389 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x11 391 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x11
390 392
391 #elif defined(CONFIG_PPC_P3041) 393 #elif defined(CONFIG_PPC_P3041)
392 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1 394 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1
393 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 395 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
394 #define CONFIG_MAX_CPUS 4 396 #define CONFIG_MAX_CPUS 4
395 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2 397 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2
396 #define CONFIG_SYS_FSL_NUM_LAWS 32 398 #define CONFIG_SYS_FSL_NUM_LAWS 32
397 #define CONFIG_SYS_FSL_SEC_COMPAT 4 399 #define CONFIG_SYS_FSL_SEC_COMPAT 4
398 #define CONFIG_SYS_NUM_FMAN 1 400 #define CONFIG_SYS_NUM_FMAN 1
399 #define CONFIG_SYS_NUM_FM1_DTSEC 5 401 #define CONFIG_SYS_NUM_FM1_DTSEC 5
400 #define CONFIG_SYS_NUM_FM1_10GEC 1 402 #define CONFIG_SYS_NUM_FM1_10GEC 1
401 #define CONFIG_NUM_DDR_CONTROLLERS 1 403 #define CONFIG_NUM_DDR_CONTROLLERS 1
402 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000 404 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000
403 #define CONFIG_SYS_FSL_TBCLK_DIV 32 405 #define CONFIG_SYS_FSL_TBCLK_DIV 32
404 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2" 406 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
405 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 407 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
406 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE 408 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE
407 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE 409 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE
408 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 410 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
409 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 411 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
410 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 412 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
411 #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011 413 #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011
412 #define CONFIG_SYS_FSL_ERRATUM_USB14 414 #define CONFIG_SYS_FSL_ERRATUM_USB14
413 #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999 415 #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999
414 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003 416 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003
415 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474 417 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474
416 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 418 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
417 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 419 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
418 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 420 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
419 #define CONFIG_SYS_FSL_ERRATUM_A004510 421 #define CONFIG_SYS_FSL_ERRATUM_A004510
420 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10 422 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10
421 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV2 0x11 423 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV2 0x11
422 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xf0000000 424 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xf0000000
423 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034 425 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034
424 #define CONFIG_SYS_FSL_ERRATUM_A004849 426 #define CONFIG_SYS_FSL_ERRATUM_A004849
425 #define CONFIG_SYS_FSL_ERRATUM_A005812 427 #define CONFIG_SYS_FSL_ERRATUM_A005812
426 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 428 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
429 #define CONFIG_SYS_FSL_ERRATUM_A006261
427 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x20 430 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x20
428 431
429 #elif defined(CONFIG_PPC_P4080) /* also supports P4040 */ 432 #elif defined(CONFIG_PPC_P4080) /* also supports P4040 */
430 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1 433 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1
431 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 434 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
432 #define CONFIG_MAX_CPUS 8 435 #define CONFIG_MAX_CPUS 8
433 #define CONFIG_SYS_FSL_NUM_CC_PLLS 4 436 #define CONFIG_SYS_FSL_NUM_CC_PLLS 4
434 #define CONFIG_SYS_FSL_NUM_LAWS 32 437 #define CONFIG_SYS_FSL_NUM_LAWS 32
435 #define CONFIG_SYS_FSL_SEC_COMPAT 4 438 #define CONFIG_SYS_FSL_SEC_COMPAT 4
436 #define CONFIG_SYS_NUM_FMAN 2 439 #define CONFIG_SYS_NUM_FMAN 2
437 #define CONFIG_SYS_NUM_FM1_DTSEC 4 440 #define CONFIG_SYS_NUM_FM1_DTSEC 4
438 #define CONFIG_SYS_NUM_FM2_DTSEC 4 441 #define CONFIG_SYS_NUM_FM2_DTSEC 4
439 #define CONFIG_SYS_NUM_FM1_10GEC 1 442 #define CONFIG_SYS_NUM_FM1_10GEC 1
440 #define CONFIG_SYS_NUM_FM2_10GEC 1 443 #define CONFIG_SYS_NUM_FM2_10GEC 1
441 #define CONFIG_NUM_DDR_CONTROLLERS 2 444 #define CONFIG_NUM_DDR_CONTROLLERS 2
442 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 445 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
443 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000 446 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000
444 #define CONFIG_SYS_FSL_TBCLK_DIV 16 447 #define CONFIG_SYS_FSL_TBCLK_DIV 16
445 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,p4080-pcie" 448 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,p4080-pcie"
446 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 449 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
447 #define CONFIG_SYS_FSL_ERRATUM_CPC_A002 450 #define CONFIG_SYS_FSL_ERRATUM_CPC_A002
448 #define CONFIG_SYS_FSL_ERRATUM_CPC_A003 451 #define CONFIG_SYS_FSL_ERRATUM_CPC_A003
449 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003 452 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003
450 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001 453 #define CONFIG_SYS_FSL_ERRATUM_ELBC_A001
451 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 454 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
452 #define CONFIG_SYS_FSL_ERRATUM_ESDHC135 455 #define CONFIG_SYS_FSL_ERRATUM_ESDHC135
453 #define CONFIG_SYS_FSL_ERRATUM_ESDHC13 456 #define CONFIG_SYS_FSL_ERRATUM_ESDHC13
454 #define CONFIG_SYS_P4080_ERRATUM_CPU22 457 #define CONFIG_SYS_P4080_ERRATUM_CPU22
455 #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011 458 #define CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011
456 #define CONFIG_SYS_P4080_ERRATUM_SERDES8 459 #define CONFIG_SYS_P4080_ERRATUM_SERDES8
457 #define CONFIG_SYS_P4080_ERRATUM_SERDES9 460 #define CONFIG_SYS_P4080_ERRATUM_SERDES9
458 #define CONFIG_SYS_P4080_ERRATUM_SERDES_A001 461 #define CONFIG_SYS_P4080_ERRATUM_SERDES_A001
459 #define CONFIG_SYS_P4080_ERRATUM_SERDES_A005 462 #define CONFIG_SYS_P4080_ERRATUM_SERDES_A005
460 #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999 463 #define CONFIG_SYS_FSL_ERRATUM_CPU_A003999
461 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474 464 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474
462 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 465 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
463 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 466 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
464 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 467 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
465 #define CONFIG_SYS_FSL_RMU 468 #define CONFIG_SYS_FSL_RMU
466 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2 469 #define CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM 2
467 #define CONFIG_SYS_FSL_ERRATUM_A004510 470 #define CONFIG_SYS_FSL_ERRATUM_A004510
468 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x20 471 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x20
469 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xff000000 472 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xff000000
470 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034 473 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034
471 #define CONFIG_SYS_FSL_ERRATUM_A004849 474 #define CONFIG_SYS_FSL_ERRATUM_A004849
472 #define CONFIG_SYS_FSL_ERRATUM_A004580 475 #define CONFIG_SYS_FSL_ERRATUM_A004580
473 #define CONFIG_SYS_P4080_ERRATUM_PCIE_A003 476 #define CONFIG_SYS_P4080_ERRATUM_PCIE_A003
474 #define CONFIG_SYS_FSL_ERRATUM_A005812 477 #define CONFIG_SYS_FSL_ERRATUM_A005812
475 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 478 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
476 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x20 479 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x20
477 480
478 #elif defined(CONFIG_PPC_P5020) /* also supports P5010 */ 481 #elif defined(CONFIG_PPC_P5020) /* also supports P5010 */
479 #define CONFIG_SYS_PPC64 /* 64-bit core */ 482 #define CONFIG_SYS_PPC64 /* 64-bit core */
480 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1 483 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1
481 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 484 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
482 #define CONFIG_MAX_CPUS 2 485 #define CONFIG_MAX_CPUS 2
483 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2 486 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2
484 #define CONFIG_SYS_FSL_NUM_LAWS 32 487 #define CONFIG_SYS_FSL_NUM_LAWS 32
485 #define CONFIG_SYS_FSL_SEC_COMPAT 4 488 #define CONFIG_SYS_FSL_SEC_COMPAT 4
486 #define CONFIG_SYS_NUM_FMAN 1 489 #define CONFIG_SYS_NUM_FMAN 1
487 #define CONFIG_SYS_NUM_FM1_DTSEC 5 490 #define CONFIG_SYS_NUM_FM1_DTSEC 5
488 #define CONFIG_SYS_NUM_FM1_10GEC 1 491 #define CONFIG_SYS_NUM_FM1_10GEC 1
489 #define CONFIG_NUM_DDR_CONTROLLERS 2 492 #define CONFIG_NUM_DDR_CONTROLLERS 2
490 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 493 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
491 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000 494 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000
492 #define CONFIG_SYS_FSL_TBCLK_DIV 32 495 #define CONFIG_SYS_FSL_TBCLK_DIV 32
493 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2" 496 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
494 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 497 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
495 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE 498 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE
496 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE 499 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE
497 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 500 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
498 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 501 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
499 #define CONFIG_SYS_FSL_ERRATUM_USB14 502 #define CONFIG_SYS_FSL_ERRATUM_USB14
500 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003 503 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003
501 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474 504 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474
502 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 505 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
503 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 506 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
504 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 507 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
505 #define CONFIG_SYS_FSL_ERRATUM_A004510 508 #define CONFIG_SYS_FSL_ERRATUM_A004510
506 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10 509 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10
507 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xc0000000 510 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xc0000000
508 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034 511 #define CONFIG_SYS_FSL_ERRATUM_SRIO_A004034
509 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 512 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
513 #define CONFIG_SYS_FSL_ERRATUM_A006261
510 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x20 514 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x20
511 515
512 #elif defined(CONFIG_PPC_P5040) 516 #elif defined(CONFIG_PPC_P5040)
513 #define CONFIG_SYS_PPC64 517 #define CONFIG_SYS_PPC64
514 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1 518 #define CONFIG_SYS_FSL_QORIQ_CHASSIS1
515 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 519 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
516 #define CONFIG_MAX_CPUS 4 520 #define CONFIG_MAX_CPUS 4
517 #define CONFIG_SYS_FSL_NUM_CC_PLLS 3 521 #define CONFIG_SYS_FSL_NUM_CC_PLLS 3
518 #define CONFIG_SYS_FSL_NUM_LAWS 32 522 #define CONFIG_SYS_FSL_NUM_LAWS 32
519 #define CONFIG_SYS_FSL_SEC_COMPAT 4 523 #define CONFIG_SYS_FSL_SEC_COMPAT 4
520 #define CONFIG_SYS_NUM_FMAN 2 524 #define CONFIG_SYS_NUM_FMAN 2
521 #define CONFIG_SYS_NUM_FM1_DTSEC 5 525 #define CONFIG_SYS_NUM_FM1_DTSEC 5
522 #define CONFIG_SYS_NUM_FM1_10GEC 1 526 #define CONFIG_SYS_NUM_FM1_10GEC 1
523 #define CONFIG_SYS_NUM_FM2_DTSEC 5 527 #define CONFIG_SYS_NUM_FM2_DTSEC 5
524 #define CONFIG_SYS_NUM_FM2_10GEC 1 528 #define CONFIG_SYS_NUM_FM2_10GEC 1
525 #define CONFIG_NUM_DDR_CONTROLLERS 2 529 #define CONFIG_NUM_DDR_CONTROLLERS 2
526 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 530 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
527 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000 531 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000
528 #define CONFIG_SYS_FSL_TBCLK_DIV 16 532 #define CONFIG_SYS_FSL_TBCLK_DIV 16
529 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.4" 533 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.4"
530 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 534 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
531 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE 535 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE
532 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE 536 #define CONFIG_SYS_FSL_USB2_PHY_ENABLE
533 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 537 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
534 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 538 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
535 #define CONFIG_SYS_FSL_ERRATUM_USB14 539 #define CONFIG_SYS_FSL_ERRATUM_USB14
536 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003 540 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003
537 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474 541 #define CONFIG_SYS_FSL_ERRATUM_DDR_A003474
538 #define CONFIG_SYS_FSL_ERRATUM_A004699 542 #define CONFIG_SYS_FSL_ERRATUM_A004699
539 #define CONFIG_SYS_FSL_ERRATUM_A004510 543 #define CONFIG_SYS_FSL_ERRATUM_A004510
540 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10 544 #define CONFIG_SYS_FSL_ERRATUM_A004510_SVR_REV 0x10
545 #define CONFIG_SYS_FSL_ERRATUM_A006261
541 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xf0000000 546 #define CONFIG_SYS_FSL_CORENET_SNOOPVEC_COREONLY 0xf0000000
542 #define CONFIG_SYS_FSL_ERRATUM_A005812 547 #define CONFIG_SYS_FSL_ERRATUM_A005812
543 548
544 #elif defined(CONFIG_BSC9131) 549 #elif defined(CONFIG_BSC9131)
545 #define CONFIG_MAX_CPUS 1 550 #define CONFIG_MAX_CPUS 1
546 #define CONFIG_FSL_SDHC_V2_3 551 #define CONFIG_FSL_SDHC_V2_3
547 #define CONFIG_SYS_FSL_NUM_LAWS 12 552 #define CONFIG_SYS_FSL_NUM_LAWS 12
548 #define CONFIG_TSECV2 553 #define CONFIG_TSECV2
549 #define CONFIG_SYS_FSL_SEC_COMPAT 4 554 #define CONFIG_SYS_FSL_SEC_COMPAT 4
550 #define CONFIG_NUM_DDR_CONTROLLERS 1 555 #define CONFIG_NUM_DDR_CONTROLLERS 1
551 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 556 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
552 #define CONFIG_SYS_FSL_DSP_M2_RAM_ADDR 0xb0000000 557 #define CONFIG_SYS_FSL_DSP_M2_RAM_ADDR 0xb0000000
553 #define CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT 0xff600000 558 #define CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT 0xff600000
554 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 3 559 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 3
555 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 560 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
556 #define CONFIG_NAND_FSL_IFC 561 #define CONFIG_NAND_FSL_IFC
557 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 562 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
558 #define CONFIG_SYS_FSL_ERRATUM_A005125 563 #define CONFIG_SYS_FSL_ERRATUM_A005125
559 #define CONFIG_ESDHC_HC_BLK_ADDR 564 #define CONFIG_ESDHC_HC_BLK_ADDR
560 565
561 #elif defined(CONFIG_BSC9132) 566 #elif defined(CONFIG_BSC9132)
562 #define CONFIG_MAX_CPUS 2 567 #define CONFIG_MAX_CPUS 2
563 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3 568 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3
564 #define CONFIG_FSL_SDHC_V2_3 569 #define CONFIG_FSL_SDHC_V2_3
565 #define CONFIG_SYS_FSL_NUM_LAWS 12 570 #define CONFIG_SYS_FSL_NUM_LAWS 12
566 #define CONFIG_TSECV2 571 #define CONFIG_TSECV2
567 #define CONFIG_SYS_FSL_SEC_COMPAT 4 572 #define CONFIG_SYS_FSL_SEC_COMPAT 4
568 #define CONFIG_NUM_DDR_CONTROLLERS 2 573 #define CONFIG_NUM_DDR_CONTROLLERS 2
569 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 574 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
570 #define CONFIG_SYS_FSL_DSP_DDR_ADDR 0x40000000 575 #define CONFIG_SYS_FSL_DSP_DDR_ADDR 0x40000000
571 #define CONFIG_SYS_FSL_DSP_M2_RAM_ADDR 0xb0000000 576 #define CONFIG_SYS_FSL_DSP_M2_RAM_ADDR 0xb0000000
572 #define CONFIG_SYS_FSL_DSP_M3_RAM_ADDR 0xc0000000 577 #define CONFIG_SYS_FSL_DSP_M3_RAM_ADDR 0xc0000000
573 #define CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT 0xff600000 578 #define CONFIG_SYS_FSL_DSP_CCSRBAR_DEFAULT 0xff600000
574 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 3 579 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 3
575 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 580 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
576 #define CONFIG_NAND_FSL_IFC 581 #define CONFIG_NAND_FSL_IFC
577 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 582 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
578 #define CONFIG_SYS_FSL_ESDHC_P1010_BROKEN_SDCLK 583 #define CONFIG_SYS_FSL_ESDHC_P1010_BROKEN_SDCLK
579 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2" 584 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.2"
580 #define CONFIG_SYS_FSL_ERRATUM_A005125 585 #define CONFIG_SYS_FSL_ERRATUM_A005125
581 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447 586 #define CONFIG_SYS_FSL_ERRATUM_I2C_A004447
582 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x11 587 #define CONFIG_SYS_FSL_A004447_SVR_REV 0x11
583 #define CONFIG_ESDHC_HC_BLK_ADDR 588 #define CONFIG_ESDHC_HC_BLK_ADDR
584 589
585 #elif defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160) 590 #elif defined(CONFIG_PPC_T4240) || defined(CONFIG_PPC_T4160)
586 #define CONFIG_E6500 591 #define CONFIG_E6500
587 #define CONFIG_SYS_PPC64 /* 64-bit core */ 592 #define CONFIG_SYS_PPC64 /* 64-bit core */
588 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 593 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
589 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */ 594 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */
590 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4 595 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4
591 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */ 596 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */
592 #ifdef CONFIG_PPC_T4240 597 #ifdef CONFIG_PPC_T4240
593 #define CONFIG_MAX_CPUS 12 598 #define CONFIG_MAX_CPUS 12
594 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 4 } 599 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 4 }
595 #define CONFIG_SYS_NUM_FM1_DTSEC 8 600 #define CONFIG_SYS_NUM_FM1_DTSEC 8
596 #define CONFIG_SYS_NUM_FM1_10GEC 2 601 #define CONFIG_SYS_NUM_FM1_10GEC 2
597 #define CONFIG_SYS_NUM_FM2_DTSEC 8 602 #define CONFIG_SYS_NUM_FM2_DTSEC 8
598 #define CONFIG_SYS_NUM_FM2_10GEC 2 603 #define CONFIG_SYS_NUM_FM2_10GEC 2
599 #define CONFIG_NUM_DDR_CONTROLLERS 3 604 #define CONFIG_NUM_DDR_CONTROLLERS 3
600 #else 605 #else
601 #define CONFIG_MAX_CPUS 8 606 #define CONFIG_MAX_CPUS 8
602 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1 } 607 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1 }
603 #define CONFIG_SYS_NUM_FM1_DTSEC 7 608 #define CONFIG_SYS_NUM_FM1_DTSEC 7
604 #define CONFIG_SYS_NUM_FM1_10GEC 1 609 #define CONFIG_SYS_NUM_FM1_10GEC 1
605 #define CONFIG_SYS_NUM_FM2_DTSEC 7 610 #define CONFIG_SYS_NUM_FM2_DTSEC 7
606 #define CONFIG_SYS_NUM_FM2_10GEC 1 611 #define CONFIG_SYS_NUM_FM2_10GEC 1
607 #define CONFIG_NUM_DDR_CONTROLLERS 2 612 #define CONFIG_NUM_DDR_CONTROLLERS 2
608 #endif 613 #endif
609 #define CONFIG_SYS_FSL_NUM_CC_PLLS 5 614 #define CONFIG_SYS_FSL_NUM_CC_PLLS 5
610 #define CONFIG_SYS_FSL_NUM_LAWS 32 615 #define CONFIG_SYS_FSL_NUM_LAWS 32
611 #define CONFIG_SYS_FSL_SRDS_1 616 #define CONFIG_SYS_FSL_SRDS_1
612 #define CONFIG_SYS_FSL_SRDS_2 617 #define CONFIG_SYS_FSL_SRDS_2
613 #define CONFIG_SYS_FSL_SRDS_3 618 #define CONFIG_SYS_FSL_SRDS_3
614 #define CONFIG_SYS_FSL_SRDS_4 619 #define CONFIG_SYS_FSL_SRDS_4
615 #define CONFIG_SYS_FSL_SEC_COMPAT 4 620 #define CONFIG_SYS_FSL_SEC_COMPAT 4
616 #define CONFIG_SYS_NUM_FMAN 2 621 #define CONFIG_SYS_NUM_FMAN 2
617 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 622 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
618 #define CONFIG_SYS_PME_CLK 0 623 #define CONFIG_SYS_PME_CLK 0
619 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_4_7 624 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_4_7
620 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8 625 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8
621 #define CONFIG_SYS_FMAN_V3 626 #define CONFIG_SYS_FMAN_V3
622 #define CONFIG_SYS_FM1_CLK 3 627 #define CONFIG_SYS_FM1_CLK 3
623 #define CONFIG_SYS_FM2_CLK 3 628 #define CONFIG_SYS_FM2_CLK 3
624 #define CONFIG_SYS_FM_MURAM_SIZE 0x60000 629 #define CONFIG_SYS_FM_MURAM_SIZE 0x60000
625 #define CONFIG_SYS_FSL_TBCLK_DIV 16 630 #define CONFIG_SYS_FSL_TBCLK_DIV 16
626 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v3.0" 631 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v3.0"
627 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 632 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
628 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 633 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
629 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 634 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
630 #define CONFIG_SYS_FSL_SRIO_LIODN 635 #define CONFIG_SYS_FSL_SRIO_LIODN
631 #define CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE 636 #define CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
632 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 637 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
633 #define CONFIG_SYS_FSL_ERRATUM_A004468 638 #define CONFIG_SYS_FSL_ERRATUM_A004468
634 #define CONFIG_SYS_FSL_ERRATUM_A_004934 639 #define CONFIG_SYS_FSL_ERRATUM_A_004934
635 #define CONFIG_SYS_FSL_ERRATUM_A005871 640 #define CONFIG_SYS_FSL_ERRATUM_A005871
641 #define CONFIG_SYS_FSL_ERRATUM_A006261
636 #define CONFIG_SYS_FSL_ERRATUM_A006379 642 #define CONFIG_SYS_FSL_ERRATUM_A006379
637 #define CONFIG_SYS_FSL_ERRATUM_A006593 643 #define CONFIG_SYS_FSL_ERRATUM_A006593
638 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 644 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
639 #define CONFIG_SYS_FSL_PCI_VER_3_X 645 #define CONFIG_SYS_FSL_PCI_VER_3_X
640 646
641 #elif defined(CONFIG_PPC_B4860) || defined(CONFIG_PPC_B4420) 647 #elif defined(CONFIG_PPC_B4860) || defined(CONFIG_PPC_B4420)
642 #define CONFIG_E6500 648 #define CONFIG_E6500
643 #define CONFIG_SYS_PPC64 /* 64-bit core */ 649 #define CONFIG_SYS_PPC64 /* 64-bit core */
644 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 650 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
645 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */ 651 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */
646 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */ 652 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */
647 #define CONFIG_SYS_FSL_NUM_LAWS 32 653 #define CONFIG_SYS_FSL_NUM_LAWS 32
648 #define CONFIG_SYS_FSL_SRDS_1 654 #define CONFIG_SYS_FSL_SRDS_1
649 #define CONFIG_SYS_FSL_SRDS_2 655 #define CONFIG_SYS_FSL_SRDS_2
650 #define CONFIG_SYS_FSL_SEC_COMPAT 4 656 #define CONFIG_SYS_FSL_SEC_COMPAT 4
651 #define CONFIG_SYS_NUM_FMAN 1 657 #define CONFIG_SYS_NUM_FMAN 1
652 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 658 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
653 #define CONFIG_SYS_FM1_CLK 0 659 #define CONFIG_SYS_FM1_CLK 0
654 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_4_7 660 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_4_7
655 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 4 661 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 4
656 #define CONFIG_SYS_FMAN_V3 662 #define CONFIG_SYS_FMAN_V3
657 #define CONFIG_SYS_FM_MURAM_SIZE 0x60000 663 #define CONFIG_SYS_FM_MURAM_SIZE 0x60000
658 #define CONFIG_SYS_FSL_TBCLK_DIV 16 664 #define CONFIG_SYS_FSL_TBCLK_DIV 16
659 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.4" 665 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.4"
660 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE 666 #define CONFIG_SYS_FSL_USB1_PHY_ENABLE
661 #define CONFIG_SYS_FSL_ERRATUM_A_004934 667 #define CONFIG_SYS_FSL_ERRATUM_A_004934
662 #define CONFIG_SYS_FSL_ERRATUM_A005871 668 #define CONFIG_SYS_FSL_ERRATUM_A005871
663 #define CONFIG_SYS_FSL_ERRATUM_A006379 669 #define CONFIG_SYS_FSL_ERRATUM_A006379
664 #define CONFIG_SYS_FSL_ERRATUM_A006593 670 #define CONFIG_SYS_FSL_ERRATUM_A006593
665 #define CONFIG_SYS_FSL_ERRATUM_A006475 671 #define CONFIG_SYS_FSL_ERRATUM_A006475
666 #define CONFIG_SYS_FSL_ERRATUM_A006384 672 #define CONFIG_SYS_FSL_ERRATUM_A006384
667 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 673 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
668 674
669 #ifdef CONFIG_PPC_B4860 675 #ifdef CONFIG_PPC_B4860
670 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4 676 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4
671 #define CONFIG_MAX_CPUS 4 677 #define CONFIG_MAX_CPUS 4
672 #define CONFIG_SYS_FSL_SRDS_NUM_PLLS 2 678 #define CONFIG_SYS_FSL_SRDS_NUM_PLLS 2
673 #define CONFIG_SYS_FSL_NUM_CC_PLLS 4 679 #define CONFIG_SYS_FSL_NUM_CC_PLLS 4
674 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 4, 4, 4 } 680 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 4, 4, 4 }
675 #define CONFIG_SYS_NUM_FM1_DTSEC 6 681 #define CONFIG_SYS_NUM_FM1_DTSEC 6
676 #define CONFIG_SYS_NUM_FM1_10GEC 2 682 #define CONFIG_SYS_NUM_FM1_10GEC 2
677 #define CONFIG_NUM_DDR_CONTROLLERS 2 683 #define CONFIG_NUM_DDR_CONTROLLERS 2
678 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1 684 #define CONFIG_USB_MAX_CONTROLLER_COUNT 1
679 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 685 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
680 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 686 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
681 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 687 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
682 #define CONFIG_SYS_FSL_SRIO_LIODN 688 #define CONFIG_SYS_FSL_SRIO_LIODN
683 #else 689 #else
684 #define CONFIG_MAX_CPUS 2 690 #define CONFIG_MAX_CPUS 2
685 #define CONFIG_SYS_FSL_SRDS_NUM_PLLS 1 691 #define CONFIG_SYS_FSL_SRDS_NUM_PLLS 1
686 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 2 692 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 2
687 #define CONFIG_SYS_FSL_NUM_CC_PLLS 4 693 #define CONFIG_SYS_FSL_NUM_CC_PLLS 4
688 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 4 } 694 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 4 }
689 #define CONFIG_SYS_NUM_FM1_DTSEC 4 695 #define CONFIG_SYS_NUM_FM1_DTSEC 4
690 #define CONFIG_SYS_NUM_FM1_10GEC 0 696 #define CONFIG_SYS_NUM_FM1_10GEC 0
691 #define CONFIG_NUM_DDR_CONTROLLERS 1 697 #define CONFIG_NUM_DDR_CONTROLLERS 1
692 #endif 698 #endif
693 699
694 #elif defined(CONFIG_PPC_T1040) || defined(CONFIG_PPC_T1042) ||\ 700 #elif defined(CONFIG_PPC_T1040) || defined(CONFIG_PPC_T1042) ||\
695 defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022) 701 defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022)
696 #define CONFIG_E5500 702 #define CONFIG_E5500
697 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 703 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
698 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */ 704 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */
699 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 1 705 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 1
700 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */ 706 #define CONFIG_SYS_FSL_QMAN_V3 /* QMAN version 3 */
701 #if defined(CONFIG_PPC_T1040) || defined(CONFIG_PPC_T1042) 707 #if defined(CONFIG_PPC_T1040) || defined(CONFIG_PPC_T1042)
702 #define CONFIG_MAX_CPUS 4 708 #define CONFIG_MAX_CPUS 4
703 #elif defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022) 709 #elif defined(CONFIG_PPC_T1020) || defined(CONFIG_PPC_T1022)
704 #define CONFIG_MAX_CPUS 2 710 #define CONFIG_MAX_CPUS 2
705 #endif 711 #endif
706 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2 712 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2
707 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 1, 1 } 713 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 1, 1, 1 }
708 #define CONFIG_SYS_SDHC_CLOCK 0 714 #define CONFIG_SYS_SDHC_CLOCK 0
709 #define CONFIG_SYS_FSL_NUM_LAWS 16 715 #define CONFIG_SYS_FSL_NUM_LAWS 16
710 #define CONFIG_SYS_FSL_SRDS_1 716 #define CONFIG_SYS_FSL_SRDS_1
711 #define CONFIG_SYS_FSL_SEC_COMPAT 5 717 #define CONFIG_SYS_FSL_SEC_COMPAT 5
712 #define CONFIG_SYS_NUM_FMAN 1 718 #define CONFIG_SYS_NUM_FMAN 1
713 #define CONFIG_SYS_NUM_FM1_DTSEC 5 719 #define CONFIG_SYS_NUM_FM1_DTSEC 5
714 #define CONFIG_NUM_DDR_CONTROLLERS 1 720 #define CONFIG_NUM_DDR_CONTROLLERS 1
715 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 721 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
716 #define CONFIG_PME_PLAT_CLK_DIV 2 722 #define CONFIG_PME_PLAT_CLK_DIV 2
717 #define CONFIG_SYS_PME_CLK CONFIG_PME_PLAT_CLK_DIV 723 #define CONFIG_SYS_PME_CLK CONFIG_PME_PLAT_CLK_DIV
718 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_5_0 724 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_5_0
719 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8 725 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8
720 #define CONFIG_SYS_FMAN_V3 726 #define CONFIG_SYS_FMAN_V3
721 #define CONFIG_FM_PLAT_CLK_DIV 1 727 #define CONFIG_FM_PLAT_CLK_DIV 1
722 #define CONFIG_SYS_FM1_CLK CONFIG_FM_PLAT_CLK_DIV 728 #define CONFIG_SYS_FM1_CLK CONFIG_FM_PLAT_CLK_DIV
723 #define CONFIG_SYS_FM_MURAM_SIZE 0x30000 729 #define CONFIG_SYS_FM_MURAM_SIZE 0x30000
724 #define CONFIG_SYS_FSL_SINGLE_SOURCE_CLK 730 #define CONFIG_SYS_FSL_SINGLE_SOURCE_CLK
725 #define CONFIG_SYS_FSL_TBCLK_DIV 16 731 #define CONFIG_SYS_FSL_TBCLK_DIV 16
726 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.4" 732 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v2.4"
727 #define CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE 733 #define CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
728 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 734 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
735 #define CONFIG_SYS_FSL_ERRATUM_A006261
729 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 736 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
730 737
731 #elif defined(CONFIG_PPC_T2080) || defined(CONFIG_PPC_T2081) 738 #elif defined(CONFIG_PPC_T2080) || defined(CONFIG_PPC_T2081)
732 #define CONFIG_E6500 739 #define CONFIG_E6500
733 #define CONFIG_SYS_PPC64 /* 64-bit core */ 740 #define CONFIG_SYS_PPC64 /* 64-bit core */
734 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */ 741 #define CONFIG_FSL_CORENET /* Freescale CoreNet platform */
735 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */ 742 #define CONFIG_SYS_FSL_QORIQ_CHASSIS2 /* Freescale Chassis generation 2 */
736 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4 743 #define CONFIG_SYS_FSL_CORES_PER_CLUSTER 4
737 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2 744 #define CONFIG_SYS_FSL_NUM_CC_PLLS 2
738 #define CONFIG_SYS_FSL_QMAN_V3 745 #define CONFIG_SYS_FSL_QMAN_V3
739 #define CONFIG_MAX_CPUS 4 746 #define CONFIG_MAX_CPUS 4
740 #define CONFIG_SYS_FSL_NUM_LAWS 32 747 #define CONFIG_SYS_FSL_NUM_LAWS 32
741 #define CONFIG_SYS_FSL_SEC_COMPAT 4 748 #define CONFIG_SYS_FSL_SEC_COMPAT 4
742 #define CONFIG_SYS_NUM_FMAN 1 749 #define CONFIG_SYS_NUM_FMAN 1
743 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 4, 4, 4 } 750 #define CONFIG_SYS_FSL_CLUSTER_CLOCKS { 1, 4, 4, 4 }
744 #define CONFIG_SYS_FSL_SRDS_1 751 #define CONFIG_SYS_FSL_SRDS_1
745 #define CONFIG_SYS_FSL_PCI_VER_3_X 752 #define CONFIG_SYS_FSL_PCI_VER_3_X
746 #if defined(CONFIG_PPC_T2080) 753 #if defined(CONFIG_PPC_T2080)
747 #define CONFIG_SYS_NUM_FM1_DTSEC 8 754 #define CONFIG_SYS_NUM_FM1_DTSEC 8
748 #define CONFIG_SYS_NUM_FM1_10GEC 4 755 #define CONFIG_SYS_NUM_FM1_10GEC 4
749 #define CONFIG_SYS_FSL_SRDS_2 756 #define CONFIG_SYS_FSL_SRDS_2
750 #define CONFIG_SYS_FSL_SRIO_LIODN 757 #define CONFIG_SYS_FSL_SRIO_LIODN
751 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2 758 #define CONFIG_SYS_FSL_SRIO_MAX_PORTS 2
752 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9 759 #define CONFIG_SYS_FSL_SRIO_OB_WIN_NUM 9
753 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5 760 #define CONFIG_SYS_FSL_SRIO_IB_WIN_NUM 5
754 #elif defined(CONFIG_PPC_T2081) 761 #elif defined(CONFIG_PPC_T2081)
755 #define CONFIG_SYS_NUM_FM1_DTSEC 6 762 #define CONFIG_SYS_NUM_FM1_DTSEC 6
756 #define CONFIG_SYS_NUM_FM1_10GEC 2 763 #define CONFIG_SYS_NUM_FM1_10GEC 2
757 #endif 764 #endif
758 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2 765 #define CONFIG_USB_MAX_CONTROLLER_COUNT 2
759 #define CONFIG_NUM_DDR_CONTROLLERS 1 766 #define CONFIG_NUM_DDR_CONTROLLERS 1
760 #define CONFIG_PME_PLAT_CLK_DIV 1 767 #define CONFIG_PME_PLAT_CLK_DIV 1
761 #define CONFIG_SYS_PME_CLK CONFIG_PME_PLAT_CLK_DIV 768 #define CONFIG_SYS_PME_CLK CONFIG_PME_PLAT_CLK_DIV
762 #define CONFIG_SYS_FM1_CLK 0 769 #define CONFIG_SYS_FM1_CLK 0
763 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_4_7 770 #define CONFIG_SYS_FSL_DDR_VER FSL_DDR_VER_4_7
764 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8 771 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8
765 #define CONFIG_SYS_FMAN_V3 772 #define CONFIG_SYS_FMAN_V3
766 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000 773 #define CONFIG_SYS_FM_MURAM_SIZE 0x28000
767 #define CONFIG_SYS_FSL_TBCLK_DIV 16 774 #define CONFIG_SYS_FSL_TBCLK_DIV 16
768 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v3.0" 775 #define CONFIG_SYS_FSL_PCIE_COMPAT "fsl,qoriq-pcie-v3.0"
769 #define CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE 776 #define CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
770 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY 777 #define CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY
771 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000 778 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xfe000000
772 #define CONFIG_SYS_FSL_SFP_VER_3_0 779 #define CONFIG_SYS_FSL_SFP_VER_3_0
773 #define CONFIG_SYS_FSL_ISBC_VER 2 780 #define CONFIG_SYS_FSL_ISBC_VER 2
774 781
775 #elif defined(CONFIG_PPC_C29X) 782 #elif defined(CONFIG_PPC_C29X)
776 #define CONFIG_MAX_CPUS 1 783 #define CONFIG_MAX_CPUS 1
777 #define CONFIG_FSL_SDHC_V2_3 784 #define CONFIG_FSL_SDHC_V2_3
778 #define CONFIG_SYS_FSL_NUM_LAWS 12 785 #define CONFIG_SYS_FSL_NUM_LAWS 12
779 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3 786 #define CONFIG_SYS_PPC_E500_DEBUG_TLB 3
780 #define CONFIG_TSECV2_1 787 #define CONFIG_TSECV2_1
781 #define CONFIG_SYS_FSL_SEC_COMPAT 6 788 #define CONFIG_SYS_FSL_SEC_COMPAT 6
782 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111 789 #define CONFIG_SYS_FSL_ERRATUM_ESDHC111
783 #define CONFIG_NUM_DDR_CONTROLLERS 1 790 #define CONFIG_NUM_DDR_CONTROLLERS 1
784 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8 791 #define CONFIG_SYS_FSL_IFC_BANK_COUNT 8
785 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000 792 #define CONFIG_SYS_CCSRBAR_DEFAULT 0xff700000
786 #define CONFIG_SYS_FSL_ERRATUM_A005125 793 #define CONFIG_SYS_FSL_ERRATUM_A005125
787 794
788 #else 795 #else
789 #error Processor type not defined for this platform 796 #error Processor type not defined for this platform
790 #endif 797 #endif
791 798
792 #ifndef CONFIG_SYS_CCSRBAR_DEFAULT 799 #ifndef CONFIG_SYS_CCSRBAR_DEFAULT
793 #error "CONFIG_SYS_CCSRBAR_DEFAULT is not defined for this platform." 800 #error "CONFIG_SYS_CCSRBAR_DEFAULT is not defined for this platform."
794 #endif 801 #endif
795 802
796 #ifdef CONFIG_E6500 803 #ifdef CONFIG_E6500
797 #define CONFIG_SYS_FSL_THREADS_PER_CORE 2 804 #define CONFIG_SYS_FSL_THREADS_PER_CORE 2
798 #else 805 #else
799 #define CONFIG_SYS_FSL_THREADS_PER_CORE 1 806 #define CONFIG_SYS_FSL_THREADS_PER_CORE 1
800 #endif 807 #endif
801 808
802 #if !defined(CONFIG_SYS_FSL_DDRC_GEN1) && \ 809 #if !defined(CONFIG_SYS_FSL_DDRC_GEN1) && \
803 !defined(CONFIG_SYS_FSL_DDRC_GEN2) && \ 810 !defined(CONFIG_SYS_FSL_DDRC_GEN2) && \
804 !defined(CONFIG_SYS_FSL_DDRC_GEN3) 811 !defined(CONFIG_SYS_FSL_DDRC_GEN3)
805 #define CONFIG_SYS_FSL_DDRC_GEN3 812 #define CONFIG_SYS_FSL_DDRC_GEN3
806 #endif 813 #endif
807 814
808 #endif /* _ASM_MPC85xx_CONFIG_H_ */ 815 #endif /* _ASM_MPC85xx_CONFIG_H_ */
809 816
arch/powerpc/include/asm/fsl_errata.h
1 /* 1 /*
2 * Copyright 2013 Freescale Semiconductor, Inc. 2 * Copyright 2013 Freescale Semiconductor, Inc.
3 * 3 *
4 * SPDX-License-Identifier: GPL-2.0+ 4 * SPDX-License-Identifier: GPL-2.0+
5 */ 5 */
6 6
7 #ifndef _ASM_FSL_ERRATA_H 7 #ifndef _ASM_FSL_ERRATA_H
8 #define _ASM_FSL_ERRATA_H 8 #define _ASM_FSL_ERRATA_H
9 9
10 #include <common.h> 10 #include <common.h>
11 #include <asm/processor.h> 11 #include <asm/processor.h>
12 12
13 #ifdef CONFIG_SYS_FSL_ERRATUM_A006379 13 #ifdef CONFIG_SYS_FSL_ERRATUM_A006379
14 static inline bool has_erratum_a006379(void) 14 static inline bool has_erratum_a006379(void)
15 { 15 {
16 u32 svr = get_svr(); 16 u32 svr = get_svr();
17 if (((SVR_SOC_VER(svr) == SVR_T4240) && SVR_MAJ(svr) <= 1) || 17 if (((SVR_SOC_VER(svr) == SVR_T4240) && SVR_MAJ(svr) <= 1) ||
18 ((SVR_SOC_VER(svr) == SVR_T4160) && SVR_MAJ(svr) <= 1) || 18 ((SVR_SOC_VER(svr) == SVR_T4160) && SVR_MAJ(svr) <= 1) ||
19 ((SVR_SOC_VER(svr) == SVR_B4860) && SVR_MAJ(svr) <= 2) || 19 ((SVR_SOC_VER(svr) == SVR_B4860) && SVR_MAJ(svr) <= 2) ||
20 ((SVR_SOC_VER(svr) == SVR_B4420) && SVR_MAJ(svr) <= 2) || 20 ((SVR_SOC_VER(svr) == SVR_B4420) && SVR_MAJ(svr) <= 2) ||
21 ((SVR_SOC_VER(svr) == SVR_T2080) && SVR_MAJ(svr) <= 1) || 21 ((SVR_SOC_VER(svr) == SVR_T2080) && SVR_MAJ(svr) <= 1) ||
22 ((SVR_SOC_VER(svr) == SVR_T2081) && SVR_MAJ(svr) <= 1)) 22 ((SVR_SOC_VER(svr) == SVR_T2081) && SVR_MAJ(svr) <= 1))
23 return true; 23 return true;
24 24
25 return false; 25 return false;
26 } 26 }
27 #endif 27 #endif
28 28
29 #ifdef CONFIG_SYS_FSL_ERRATUM_A006261
30 static inline bool has_erratum_a006261(void)
31 {
32 u32 svr = get_svr();
33 u32 soc = SVR_SOC_VER(svr);
34
35 switch (soc) {
36 case SVR_P1010:
37 return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
38 case SVR_P2041:
39 case SVR_P2040:
40 return IS_SVR_REV(svr, 1, 0) ||
41 IS_SVR_REV(svr, 1, 1) || IS_SVR_REV(svr, 2, 1);
42 case SVR_P3041:
43 return IS_SVR_REV(svr, 1, 0) ||
44 IS_SVR_REV(svr, 1, 1) ||
45 IS_SVR_REV(svr, 2, 0) || IS_SVR_REV(svr, 2, 1);
46 case SVR_P5010:
47 case SVR_P5020:
48 case SVR_P5021:
49 return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
50 case SVR_T4240:
51 case SVR_T4160:
52 return IS_SVR_REV(svr, 1, 0) || IS_SVR_REV(svr, 2, 0);
53 case SVR_T1040:
54 return IS_SVR_REV(svr, 1, 0);
55 case SVR_P5040:
56 return IS_SVR_REV(svr, 1, 0);
57 }
58
59 return false;
60 }
61 #endif
62
29 #endif 63 #endif
30 64
1 /* 1 /*
2 * Freescale USB Controller 2 * Freescale USB Controller
3 * 3 *
4 * Copyright 2013 Freescale Semiconductor, Inc. 4 * Copyright 2013 Freescale Semiconductor, Inc.
5 * 5 *
6 * SPDX-License-Identifier: GPL-2.0+ 6 * SPDX-License-Identifier: GPL-2.0+
7 */ 7 */
8 8
9 #ifndef _ASM_FSL_USB_H_ 9 #ifndef _ASM_FSL_USB_H_
10 #define _ASM_FSL_USB_H_ 10 #define _ASM_FSL_USB_H_
11 11
12 #ifdef CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE 12 #ifdef CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE
13 struct ccsr_usb_port_ctrl { 13 struct ccsr_usb_port_ctrl {
14 u32 ctrl; 14 u32 ctrl;
15 u32 drvvbuscfg; 15 u32 drvvbuscfg;
16 u32 pwrfltcfg; 16 u32 pwrfltcfg;
17 u32 sts; 17 u32 sts;
18 u8 res_14[0xc]; 18 u8 res_14[0xc];
19 u32 bistcfg; 19 u32 bistcfg;
20 u32 biststs; 20 u32 biststs;
21 u32 abistcfg; 21 u32 abistcfg;
22 u32 abiststs; 22 u32 abiststs;
23 u8 res_30[0x10]; 23 u8 res_30[0x10];
24 u32 xcvrprg; 24 u32 xcvrprg;
25 u32 anaprg; 25 u32 anaprg;
26 u32 anadrv; 26 u32 anadrv;
27 u32 anasts; 27 u32 anasts;
28 }; 28 };
29 29
30 struct ccsr_usb_phy { 30 struct ccsr_usb_phy {
31 u32 id; 31 u32 id;
32 struct ccsr_usb_port_ctrl port1; 32 struct ccsr_usb_port_ctrl port1;
33 u8 res_50[0xc]; 33 u8 res_50[0xc];
34 u32 tvr; 34 u32 tvr;
35 u32 pllprg[4]; 35 u32 pllprg[4];
36 u8 res_70[0x4]; 36 u8 res_70[0x4];
37 u32 anaccfg; 37 u32 anaccfg;
38 u32 dbg; 38 u32 dbg;
39 u8 res_7c[0x4]; 39 u8 res_7c[0x4];
40 struct ccsr_usb_port_ctrl port2; 40 struct ccsr_usb_port_ctrl port2;
41 u8 res_dc[0x334]; 41 u8 res_dc[0x334];
42 }; 42 };
43 43
44 #define CONFIG_SYS_FSL_USB_CTRL_PHY_EN (1 << 0) 44 #define CONFIG_SYS_FSL_USB_CTRL_PHY_EN (1 << 0)
45 #define CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN (1 << 1) 45 #define CONFIG_SYS_FSL_USB_DRVVBUS_CR_EN (1 << 1)
46 #define CONFIG_SYS_FSL_USB_PWRFLT_CR_EN (1 << 1) 46 #define CONFIG_SYS_FSL_USB_PWRFLT_CR_EN (1 << 1)
47 #define CONFIG_SYS_FSL_USB_PLLPRG1_PHY_DIV (1 << 0) 47 #define CONFIG_SYS_FSL_USB_PLLPRG1_PHY_DIV (1 << 0)
48 #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY2_CLK_EN (1 << 0) 48 #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY2_CLK_EN (1 << 0)
49 #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY1_CLK_EN (1 << 1) 49 #define CONFIG_SYS_FSL_USB_PLLPRG2_PHY1_CLK_EN (1 << 1)
50 #define CONFIG_SYS_FSL_USB_PLLPRG2_FRAC_LPF_EN (1 << 13) 50 #define CONFIG_SYS_FSL_USB_PLLPRG2_FRAC_LPF_EN (1 << 13)
51 #define CONFIG_SYS_FSL_USB_PLLPRG2_REF_DIV (1 << 4) 51 #define CONFIG_SYS_FSL_USB_PLLPRG2_REF_DIV (1 << 4)
52 #define CONFIG_SYS_FSL_USB_PLLPRG2_MFI (5 << 16) 52 #define CONFIG_SYS_FSL_USB_PLLPRG2_MFI (5 << 16)
53 #define CONFIG_SYS_FSL_USB_PLLPRG2_PLL_EN (1 << 21) 53 #define CONFIG_SYS_FSL_USB_PLLPRG2_PLL_EN (1 << 21)
54 #define CONFIG_SYS_FSL_USB_SYS_CLK_VALID (1 << 0) 54 #define CONFIG_SYS_FSL_USB_SYS_CLK_VALID (1 << 0)
55 #define CONFIG_SYS_FSL_USB_XCVRPRG_HS_DCNT_PROG_EN (1 << 7)
56 #define CONFIG_SYS_FSL_USB_XCVRPRG_HS_DCNT_PROG_MASK (3 << 4)
57
58 #define INC_DCNT_THRESHOLD_25MV (0 << 4)
59 #define INC_DCNT_THRESHOLD_50MV (1 << 4)
60 #define DEC_DCNT_THRESHOLD_25MV (2 << 4)
61 #define DEC_DCNT_THRESHOLD_50MV (3 << 4)
55 #else 62 #else
56 struct ccsr_usb_phy { 63 struct ccsr_usb_phy {
57 u8 res0[0x18]; 64 u32 config1;
65 u32 config2;
66 u32 config3;
67 u32 config4;
68 u32 config5;
69 u32 status1;
58 u32 usb_enable_override; 70 u32 usb_enable_override;
59 u8 res[0xe4]; 71 u8 res[0xe4];
60 }; 72 };
61 #define CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE 1 73 #define CONFIG_SYS_FSL_USB_HS_DISCNCT_INC (3 << 22)
74 #define CONFIG_SYS_FSL_USB_RX_AUTO_CAL_RD_WR_SEL (1 << 20)
75 #define CONFIG_SYS_FSL_USB_SQUELCH_PROG_WR_0 13
76 #define CONFIG_SYS_FSL_USB_SQUELCH_PROG_WR_3 16
77 #define CONFIG_SYS_FSL_USB_SQUELCH_PROG_RD_0 0
78 #define CONFIG_SYS_FSL_USB_SQUELCH_PROG_RD_3 3
79 #define CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE 1
80 #define CONFIG_SYS_FSL_USB_SQUELCH_PROG_MASK 0x07
62 #endif 81 #endif
63 82
64 #endif /*_ASM_FSL_USB_H_ */ 83 #endif /*_ASM_FSL_USB_H_ */
65 84