1 // SPDX-License-Identifier: GPL-2.0+
2 /*
3  * Copyright 2010-2011 Freescale Semiconductor, Inc.
4  * Author: Dipen Dudhat <dipen.dudhat@freescale.com>
5  */
6 
7 #include <common.h>
8 #include <fsl_ifc.h>
9 #include <part.h>
10 
11 #ifdef CONFIG_TFABOOT
12 struct ifc_regs ifc_cfg_default_boot[CONFIG_SYS_FSL_IFC_BANK_COUNT] = {
13 	{
14 		"cs0",
15 #if defined(CONFIG_SYS_CSPR0) && defined(CONFIG_SYS_CSOR0)
16 		CONFIG_SYS_CSPR0,
17 #ifdef CONFIG_SYS_CSPR0_EXT
18 		CONFIG_SYS_CSPR0_EXT,
19 #else
20 		0,
21 #endif
22 #ifdef CONFIG_SYS_AMASK0
23 		CONFIG_SYS_AMASK0,
24 #else
25 		0,
26 #endif
27 		CONFIG_SYS_CSOR0,
28 		{
29 			CONFIG_SYS_CS0_FTIM0,
30 			CONFIG_SYS_CS0_FTIM1,
31 			CONFIG_SYS_CS0_FTIM2,
32 			CONFIG_SYS_CS0_FTIM3,
33 		},
34 #ifdef CONFIG_SYS_CSOR0_EXT
35 		CONFIG_SYS_CSOR0_EXT,
36 #else
37 		0,
38 #endif
39 #ifdef CONFIG_SYS_CSPR0_FINAL
40 		CONFIG_SYS_CSPR0_FINAL,
41 #else
42 		0,
43 #endif
44 #ifdef CONFIG_SYS_AMASK0_FINAL
45 		CONFIG_SYS_AMASK0_FINAL,
46 #else
47 		0,
48 #endif
49 #endif
50 	},
51 
52 #if CONFIG_SYS_FSL_IFC_BANK_COUNT >= 2
53 	{
54 		"cs1",
55 #if defined(CONFIG_SYS_CSPR1) && defined(CONFIG_SYS_CSOR1)
56 		CONFIG_SYS_CSPR1,
57 #ifdef CONFIG_SYS_CSPR1_EXT
58 		CONFIG_SYS_CSPR1_EXT,
59 #else
60 		0,
61 #endif
62 #ifdef CONFIG_SYS_AMASK1
63 		CONFIG_SYS_AMASK1,
64 #else
65 		0,
66 #endif
67 		CONFIG_SYS_CSOR1,
68 		{
69 			CONFIG_SYS_CS1_FTIM0,
70 			CONFIG_SYS_CS1_FTIM1,
71 			CONFIG_SYS_CS1_FTIM2,
72 			CONFIG_SYS_CS1_FTIM3,
73 		},
74 #ifdef CONFIG_SYS_CSOR1_EXT
75 		CONFIG_SYS_CSOR1_EXT,
76 #else
77 		0,
78 #endif
79 #ifdef CONFIG_SYS_CSPR1_FINAL
80 		CONFIG_SYS_CSPR1_FINAL,
81 #else
82 		0,
83 #endif
84 #ifdef CONFIG_SYS_AMASK1_FINAL
85 		CONFIG_SYS_AMASK1_FINAL,
86 #else
87 		0,
88 #endif
89 #endif
90 	},
91 #endif
92 
93 #if CONFIG_SYS_FSL_IFC_BANK_COUNT >= 3
94 	{
95 		"cs2",
96 #if defined(CONFIG_SYS_CSPR2) && defined(CONFIG_SYS_CSOR2)
97 		CONFIG_SYS_CSPR2,
98 #ifdef CONFIG_SYS_CSPR2_EXT
99 		CONFIG_SYS_CSPR2_EXT,
100 #else
101 		0,
102 #endif
103 #ifdef CONFIG_SYS_AMASK2
104 		CONFIG_SYS_AMASK2,
105 #else
106 		0,
107 #endif
108 		CONFIG_SYS_CSOR2,
109 		{
110 			CONFIG_SYS_CS2_FTIM0,
111 			CONFIG_SYS_CS2_FTIM1,
112 			CONFIG_SYS_CS2_FTIM2,
113 			CONFIG_SYS_CS2_FTIM3,
114 		},
115 #ifdef CONFIG_SYS_CSOR2_EXT
116 		CONFIG_SYS_CSOR2_EXT,
117 #else
118 		0,
119 #endif
120 #ifdef CONFIG_SYS_CSPR2_FINAL
121 		CONFIG_SYS_CSPR2_FINAL,
122 #else
123 		0,
124 #endif
125 #ifdef CONFIG_SYS_AMASK2_FINAL
126 		CONFIG_SYS_AMASK2_FINAL,
127 #else
128 		0,
129 #endif
130 #endif
131 	},
132 #endif
133 
134 #if CONFIG_SYS_FSL_IFC_BANK_COUNT >= 4
135 	{
136 		"cs3",
137 #if defined(CONFIG_SYS_CSPR3) && defined(CONFIG_SYS_CSOR3)
138 		CONFIG_SYS_CSPR3,
139 #ifdef CONFIG_SYS_CSPR3_EXT
140 		CONFIG_SYS_CSPR3_EXT,
141 #else
142 		0,
143 #endif
144 #ifdef CONFIG_SYS_AMASK3
145 		CONFIG_SYS_AMASK3,
146 #else
147 		0,
148 #endif
149 		CONFIG_SYS_CSOR3,
150 		{
151 			CONFIG_SYS_CS3_FTIM0,
152 			CONFIG_SYS_CS3_FTIM1,
153 			CONFIG_SYS_CS3_FTIM2,
154 			CONFIG_SYS_CS3_FTIM3,
155 		},
156 #ifdef CONFIG_SYS_CSOR3_EXT
157 		CONFIG_SYS_CSOR3_EXT,
158 #else
159 		0,
160 #endif
161 #ifdef CONFIG_SYS_CSPR3_FINAL
162 		CONFIG_SYS_CSPR3_FINAL,
163 #else
164 		0,
165 #endif
166 #ifdef CONFIG_SYS_AMASK3_FINAL
167 		CONFIG_SYS_AMASK3_FINAL,
168 #else
169 		0,
170 #endif
171 #endif
172 	},
173 #endif
174 
175 #if CONFIG_SYS_FSL_IFC_BANK_COUNT >= 5
176 	{
177 		"cs4",
178 #if defined(CONFIG_SYS_CSPR4) && defined(CONFIG_SYS_CSOR4)
179 		CONFIG_SYS_CSPR4,
180 #ifdef CONFIG_SYS_CSPR4_EXT
181 		CONFIG_SYS_CSPR4_EXT,
182 #else
183 		0,
184 #endif
185 #ifdef CONFIG_SYS_AMASK4
186 		CONFIG_SYS_AMASK4,
187 #else
188 		0,
189 #endif
190 		CONFIG_SYS_CSOR4,
191 		{
192 			CONFIG_SYS_CS4_FTIM0,
193 			CONFIG_SYS_CS4_FTIM1,
194 			CONFIG_SYS_CS4_FTIM2,
195 			CONFIG_SYS_CS4_FTIM3,
196 		},
197 #ifdef CONFIG_SYS_CSOR4_EXT
198 		CONFIG_SYS_CSOR4_EXT,
199 #else
200 		0,
201 #endif
202 #ifdef CONFIG_SYS_CSPR4_FINAL
203 		CONFIG_SYS_CSPR4_FINAL,
204 #else
205 		0,
206 #endif
207 #ifdef CONFIG_SYS_AMASK4_FINAL
208 		CONFIG_SYS_AMASK4_FINAL,
209 #else
210 		0,
211 #endif
212 #endif
213 	},
214 #endif
215 
216 #if CONFIG_SYS_FSL_IFC_BANK_COUNT >= 6
217 	{
218 		"cs5",
219 #if defined(CONFIG_SYS_CSPR5) && defined(CONFIG_SYS_CSOR5)
220 		CONFIG_SYS_CSPR5,
221 #ifdef CONFIG_SYS_CSPR5_EXT
222 		CONFIG_SYS_CSPR5_EXT,
223 #else
224 		0,
225 #endif
226 #ifdef CONFIG_SYS_AMASK5
227 		CONFIG_SYS_AMASK5,
228 #else
229 		0,
230 #endif
231 		CONFIG_SYS_CSOR5,
232 		{
233 			CONFIG_SYS_CS5_FTIM0,
234 			CONFIG_SYS_CS5_FTIM1,
235 			CONFIG_SYS_CS5_FTIM2,
236 			CONFIG_SYS_CS5_FTIM3,
237 		},
238 #ifdef CONFIG_SYS_CSOR5_EXT
239 		CONFIG_SYS_CSOR5_EXT,
240 #else
241 		0,
242 #endif
243 #ifdef CONFIG_SYS_CSPR5_FINAL
244 		CONFIG_SYS_CSPR5_FINAL,
245 #else
246 		0,
247 #endif
248 #ifdef CONFIG_SYS_AMASK5_FINAL
249 		CONFIG_SYS_AMASK5_FINAL,
250 #else
251 		0,
252 #endif
253 #endif
254 	},
255 #endif
256 
257 #if CONFIG_SYS_FSL_IFC_BANK_COUNT >= 7
258 	{
259 		"cs6",
260 #if defined(CONFIG_SYS_CSPR6) && defined(CONFIG_SYS_CSOR6)
261 		CONFIG_SYS_CSPR6,
262 #ifdef CONFIG_SYS_CSPR6_EXT
263 		CONFIG_SYS_CSPR6_EXT,
264 #else
265 		0,
266 #endif
267 #ifdef CONFIG_SYS_AMASK6
268 		CONFIG_SYS_AMASK6,
269 #else
270 		0,
271 #endif
272 		CONFIG_SYS_CSOR6,
273 		{
274 			CONFIG_SYS_CS6_FTIM0,
275 			CONFIG_SYS_CS6_FTIM1,
276 			CONFIG_SYS_CS6_FTIM2,
277 			CONFIG_SYS_CS6_FTIM3,
278 		},
279 #ifdef CONFIG_SYS_CSOR6_EXT
280 		CONFIG_SYS_CSOR6_EXT,
281 #else
282 		0,
283 #endif
284 #ifdef CONFIG_SYS_CSPR6_FINAL
285 		CONFIG_SYS_CSPR6_FINAL,
286 #else
287 		0,
288 #endif
289 #ifdef CONFIG_SYS_AMASK6_FINAL
290 		CONFIG_SYS_AMASK6_FINAL,
291 #else
292 		0,
293 #endif
294 #endif
295 	},
296 #endif
297 
298 #if CONFIG_SYS_FSL_IFC_BANK_COUNT >= 8
299 	{
300 		"cs7",
301 #if defined(CONFIG_SYS_CSPR7) && defined(CONFIG_SYS_CSOR7)
302 		CONFIG_SYS_CSPR7,
303 #ifdef CONFIG_SYS_CSPR7_EXT
304 		CONFIG_SYS_CSPR7_EXT,
305 #else
306 		0,
307 #endif
308 #ifdef CONFIG_SYS_AMASK7
309 		CONFIG_SYS_AMASK7,
310 #else
311 		0,
312 #endif
313 		CONFIG_SYS_CSOR7,
314 #ifdef CONFIG_SYS_CSOR7_EXT
315 		CONFIG_SYS_CSOR7_EXT,
316 #else
317 		0,
318 #endif
319 		{
320 			CONFIG_SYS_CS7_FTIM0,
321 			CONFIG_SYS_CS7_FTIM1,
322 			CONFIG_SYS_CS7_FTIM2,
323 			CONFIG_SYS_CS7_FTIM3,
324 		},
325 #ifdef CONFIG_SYS_CSPR7_FINAL
326 		CONFIG_SYS_CSPR7_FINAL,
327 #else
328 		0,
329 #endif
330 #ifdef CONFIG_SYS_AMASK7_FINAL
331 		CONFIG_SYS_AMASK7_FINAL,
332 #else
333 		0,
334 #endif
335 #endif
336 	},
337 #endif
338 };
339 
ifc_cfg_boot_info(struct ifc_regs_info * regs_info)340 __weak void ifc_cfg_boot_info(struct ifc_regs_info *regs_info)
341 {
342 	regs_info->regs = ifc_cfg_default_boot;
343 	regs_info->cs_size = CONFIG_SYS_FSL_IFC_BANK_COUNT;
344 }
345 #endif
346 
print_ifc_regs(void)347 void print_ifc_regs(void)
348 {
349 	int i, j;
350 
351 	printf("IFC Controller Registers\n");
352 	for (i = 0; i < CONFIG_SYS_FSL_IFC_BANK_COUNT; i++) {
353 		printf("CSPR%d:0x%08X\tAMASK%d:0x%08X\tCSOR%d:0x%08X\n",
354 		       i, get_ifc_cspr(i), i, get_ifc_amask(i),
355 		       i, get_ifc_csor(i));
356 		for (j = 0; j < 4; j++)
357 			printf("IFC_FTIM%d:0x%08X\n", j, get_ifc_ftim(i, j));
358 	}
359 }
360 
361 #ifdef CONFIG_TFABOOT
init_early_memctl_regs(void)362 void init_early_memctl_regs(void)
363 {
364 	int i, j;
365 	struct ifc_regs *regs;
366 	struct ifc_regs_info regs_info = {0};
367 
368 	ifc_cfg_boot_info(&regs_info);
369 	regs = regs_info.regs;
370 
371 	for (i = 0 ; i < regs_info.cs_size; i++) {
372 		if (regs[i].pr && (regs[i].pr & CSPR_V)) {
373 			/* skip setting cspr/csor_ext in below condition */
374 			if (!(CONFIG_IS_ENABLED(A003399_NOR_WORKAROUND) &&
375 			      i == 0 &&
376 			      ((regs[0].pr & CSPR_MSEL) == CSPR_MSEL_NOR))) {
377 				if (regs[i].pr_ext)
378 					set_ifc_cspr_ext(i, regs[i].pr_ext);
379 				if (regs[i].or_ext)
380 					set_ifc_csor_ext(i, regs[i].or_ext);
381 			}
382 
383 			for (j = 0; j < ARRAY_SIZE(regs->ftim); j++)
384 				set_ifc_ftim(i, j, regs[i].ftim[j]);
385 
386 			set_ifc_csor(i, regs[i].or);
387 			set_ifc_amask(i, regs[i].amask);
388 			set_ifc_cspr(i, regs[i].pr);
389 		}
390 	}
391 }
392 
init_final_memctl_regs(void)393 void init_final_memctl_regs(void)
394 {
395 	int i;
396 	struct ifc_regs *regs;
397 	struct ifc_regs_info regs_info;
398 
399 	ifc_cfg_boot_info(&regs_info);
400 	regs = regs_info.regs;
401 
402 	for (i = 0 ; i < regs_info.cs_size && i < ARRAY_SIZE(regs->ftim); i++) {
403 		if (!(regs[i].pr_final & CSPR_V))
404 			continue;
405 		if (regs[i].pr_final)
406 			set_ifc_cspr(i, regs[i].pr_final);
407 		if (regs[i].amask_final)
408 			set_ifc_amask(i, (i == 1) ? regs[i].amask_final :
409 								regs[i].amask);
410 	}
411 }
412 #else
init_early_memctl_regs(void)413 void init_early_memctl_regs(void)
414 {
415 #if defined(CONFIG_SYS_CSPR0) && defined(CONFIG_SYS_CSOR0)
416 	set_ifc_ftim(IFC_CS0, IFC_FTIM0, CONFIG_SYS_CS0_FTIM0);
417 	set_ifc_ftim(IFC_CS0, IFC_FTIM1, CONFIG_SYS_CS0_FTIM1);
418 	set_ifc_ftim(IFC_CS0, IFC_FTIM2, CONFIG_SYS_CS0_FTIM2);
419 	set_ifc_ftim(IFC_CS0, IFC_FTIM3, CONFIG_SYS_CS0_FTIM3);
420 
421 #ifndef CONFIG_A003399_NOR_WORKAROUND
422 #ifdef CONFIG_SYS_CSPR0_EXT
423 	set_ifc_cspr_ext(IFC_CS0, CONFIG_SYS_CSPR0_EXT);
424 #endif
425 #ifdef CONFIG_SYS_CSOR0_EXT
426 	set_ifc_csor_ext(IFC_CS0, CONFIG_SYS_CSOR0_EXT);
427 #endif
428 	set_ifc_cspr(IFC_CS0, CONFIG_SYS_CSPR0);
429 	set_ifc_amask(IFC_CS0, CONFIG_SYS_AMASK0);
430 	set_ifc_csor(IFC_CS0, CONFIG_SYS_CSOR0);
431 #endif
432 #endif
433 
434 #ifdef CONFIG_SYS_CSPR1_EXT
435 	set_ifc_cspr_ext(IFC_CS1, CONFIG_SYS_CSPR1_EXT);
436 #endif
437 #ifdef CONFIG_SYS_CSOR1_EXT
438 	set_ifc_csor_ext(IFC_CS1, CONFIG_SYS_CSOR1_EXT);
439 #endif
440 #if defined(CONFIG_SYS_CSPR1) && defined(CONFIG_SYS_CSOR1)
441 	set_ifc_ftim(IFC_CS1, IFC_FTIM0, CONFIG_SYS_CS1_FTIM0);
442 	set_ifc_ftim(IFC_CS1, IFC_FTIM1, CONFIG_SYS_CS1_FTIM1);
443 	set_ifc_ftim(IFC_CS1, IFC_FTIM2, CONFIG_SYS_CS1_FTIM2);
444 	set_ifc_ftim(IFC_CS1, IFC_FTIM3, CONFIG_SYS_CS1_FTIM3);
445 
446 	set_ifc_csor(IFC_CS1, CONFIG_SYS_CSOR1);
447 	set_ifc_amask(IFC_CS1, CONFIG_SYS_AMASK1);
448 	set_ifc_cspr(IFC_CS1, CONFIG_SYS_CSPR1);
449 #endif
450 
451 #ifdef CONFIG_SYS_CSPR2_EXT
452 	set_ifc_cspr_ext(IFC_CS2, CONFIG_SYS_CSPR2_EXT);
453 #endif
454 #ifdef CONFIG_SYS_CSOR2_EXT
455 	set_ifc_csor_ext(IFC_CS2, CONFIG_SYS_CSOR2_EXT);
456 #endif
457 #if defined(CONFIG_SYS_CSPR2) && defined(CONFIG_SYS_CSOR2)
458 	set_ifc_ftim(IFC_CS2, IFC_FTIM0, CONFIG_SYS_CS2_FTIM0);
459 	set_ifc_ftim(IFC_CS2, IFC_FTIM1, CONFIG_SYS_CS2_FTIM1);
460 	set_ifc_ftim(IFC_CS2, IFC_FTIM2, CONFIG_SYS_CS2_FTIM2);
461 	set_ifc_ftim(IFC_CS2, IFC_FTIM3, CONFIG_SYS_CS2_FTIM3);
462 
463 	set_ifc_csor(IFC_CS2, CONFIG_SYS_CSOR2);
464 	set_ifc_amask(IFC_CS2, CONFIG_SYS_AMASK2);
465 	set_ifc_cspr(IFC_CS2, CONFIG_SYS_CSPR2);
466 #endif
467 
468 #ifdef CONFIG_SYS_CSPR3_EXT
469 	set_ifc_cspr_ext(IFC_CS3, CONFIG_SYS_CSPR3_EXT);
470 #endif
471 #ifdef CONFIG_SYS_CSOR3_EXT
472 	set_ifc_csor_ext(IFC_CS3, CONFIG_SYS_CSOR3_EXT);
473 #endif
474 #if defined(CONFIG_SYS_CSPR3) && defined(CONFIG_SYS_CSOR3)
475 	set_ifc_ftim(IFC_CS3, IFC_FTIM0, CONFIG_SYS_CS3_FTIM0);
476 	set_ifc_ftim(IFC_CS3, IFC_FTIM1, CONFIG_SYS_CS3_FTIM1);
477 	set_ifc_ftim(IFC_CS3, IFC_FTIM2, CONFIG_SYS_CS3_FTIM2);
478 	set_ifc_ftim(IFC_CS3, IFC_FTIM3, CONFIG_SYS_CS3_FTIM3);
479 
480 	set_ifc_cspr(IFC_CS3, CONFIG_SYS_CSPR3);
481 	set_ifc_amask(IFC_CS3, CONFIG_SYS_AMASK3);
482 	set_ifc_csor(IFC_CS3, CONFIG_SYS_CSOR3);
483 #endif
484 
485 #ifdef CONFIG_SYS_CSPR4_EXT
486 	set_ifc_cspr_ext(IFC_CS4, CONFIG_SYS_CSPR4_EXT);
487 #endif
488 #ifdef CONFIG_SYS_CSOR4_EXT
489 	set_ifc_csor_ext(IFC_CS4, CONFIG_SYS_CSOR4_EXT);
490 #endif
491 #if defined(CONFIG_SYS_CSPR4) && defined(CONFIG_SYS_CSOR4)
492 	set_ifc_ftim(IFC_CS4, IFC_FTIM0, CONFIG_SYS_CS4_FTIM0);
493 	set_ifc_ftim(IFC_CS4, IFC_FTIM1, CONFIG_SYS_CS4_FTIM1);
494 	set_ifc_ftim(IFC_CS4, IFC_FTIM2, CONFIG_SYS_CS4_FTIM2);
495 	set_ifc_ftim(IFC_CS4, IFC_FTIM3, CONFIG_SYS_CS4_FTIM3);
496 
497 	set_ifc_cspr(IFC_CS4, CONFIG_SYS_CSPR4);
498 	set_ifc_amask(IFC_CS4, CONFIG_SYS_AMASK4);
499 	set_ifc_csor(IFC_CS4, CONFIG_SYS_CSOR4);
500 #endif
501 
502 #ifdef CONFIG_SYS_CSPR5_EXT
503 	set_ifc_cspr_ext(IFC_CS5, CONFIG_SYS_CSPR5_EXT);
504 #endif
505 #ifdef CONFIG_SYS_CSOR5_EXT
506 	set_ifc_csor_ext(IFC_CS5, CONFIG_SYS_CSOR5_EXT);
507 #endif
508 #if defined(CONFIG_SYS_CSPR5) && defined(CONFIG_SYS_CSOR5)
509 	set_ifc_ftim(IFC_CS5, IFC_FTIM0, CONFIG_SYS_CS5_FTIM0);
510 	set_ifc_ftim(IFC_CS5, IFC_FTIM1, CONFIG_SYS_CS5_FTIM1);
511 	set_ifc_ftim(IFC_CS5, IFC_FTIM2, CONFIG_SYS_CS5_FTIM2);
512 	set_ifc_ftim(IFC_CS5, IFC_FTIM3, CONFIG_SYS_CS5_FTIM3);
513 
514 	set_ifc_cspr(IFC_CS5, CONFIG_SYS_CSPR5);
515 	set_ifc_amask(IFC_CS5, CONFIG_SYS_AMASK5);
516 	set_ifc_csor(IFC_CS5, CONFIG_SYS_CSOR5);
517 #endif
518 
519 #ifdef CONFIG_SYS_CSPR6_EXT
520 	set_ifc_cspr_ext(IFC_CS6, CONFIG_SYS_CSPR6_EXT);
521 #endif
522 #ifdef CONFIG_SYS_CSOR6_EXT
523 	set_ifc_csor_ext(IFC_CS6, CONFIG_SYS_CSOR6_EXT);
524 #endif
525 #if defined(CONFIG_SYS_CSPR6) && defined(CONFIG_SYS_CSOR6)
526 	set_ifc_ftim(IFC_CS6, IFC_FTIM0, CONFIG_SYS_CS6_FTIM0);
527 	set_ifc_ftim(IFC_CS6, IFC_FTIM1, CONFIG_SYS_CS6_FTIM1);
528 	set_ifc_ftim(IFC_CS6, IFC_FTIM2, CONFIG_SYS_CS6_FTIM2);
529 	set_ifc_ftim(IFC_CS6, IFC_FTIM3, CONFIG_SYS_CS6_FTIM3);
530 
531 	set_ifc_cspr(IFC_CS6, CONFIG_SYS_CSPR6);
532 	set_ifc_amask(IFC_CS6, CONFIG_SYS_AMASK6);
533 	set_ifc_csor(IFC_CS6, CONFIG_SYS_CSOR6);
534 #endif
535 
536 #ifdef CONFIG_SYS_CSPR7_EXT
537 	set_ifc_cspr_ext(IFC_CS7, CONFIG_SYS_CSPR7_EXT);
538 #endif
539 #ifdef CONFIG_SYS_CSOR7_EXT
540 	set_ifc_csor_ext(IFC_CS7, CONFIG_SYS_CSOR7_EXT);
541 #endif
542 #if defined(CONFIG_SYS_CSPR7) && defined(CONFIG_SYS_CSOR7)
543 	set_ifc_ftim(IFC_CS7, IFC_FTIM0, CONFIG_SYS_CS7_FTIM0);
544 	set_ifc_ftim(IFC_CS7, IFC_FTIM1, CONFIG_SYS_CS7_FTIM1);
545 	set_ifc_ftim(IFC_CS7, IFC_FTIM2, CONFIG_SYS_CS7_FTIM2);
546 	set_ifc_ftim(IFC_CS7, IFC_FTIM3, CONFIG_SYS_CS7_FTIM3);
547 
548 	set_ifc_cspr(IFC_CS7, CONFIG_SYS_CSPR7);
549 	set_ifc_amask(IFC_CS7, CONFIG_SYS_AMASK7);
550 	set_ifc_csor(IFC_CS7, CONFIG_SYS_CSOR7);
551 #endif
552 }
553 
init_final_memctl_regs(void)554 void init_final_memctl_regs(void)
555 {
556 #ifdef CONFIG_SYS_CSPR0_FINAL
557 	set_ifc_cspr(IFC_CS0, CONFIG_SYS_CSPR0_FINAL);
558 #endif
559 #ifdef CONFIG_SYS_AMASK0_FINAL
560 	set_ifc_amask(IFC_CS0, CONFIG_SYS_AMASK0);
561 #endif
562 #ifdef CONFIG_SYS_CSPR1_FINAL
563 	set_ifc_cspr(IFC_CS1, CONFIG_SYS_CSPR1_FINAL);
564 #endif
565 #ifdef CONFIG_SYS_AMASK1_FINAL
566 	set_ifc_amask(IFC_CS1, CONFIG_SYS_AMASK1_FINAL);
567 #endif
568 #ifdef CONFIG_SYS_CSPR2_FINAL
569 	set_ifc_cspr(IFC_CS2, CONFIG_SYS_CSPR2_FINAL);
570 #endif
571 #ifdef CONFIG_SYS_AMASK2_FINAL
572 	set_ifc_amask(IFC_CS2, CONFIG_SYS_AMASK2);
573 #endif
574 #ifdef CONFIG_SYS_CSPR3_FINAL
575 	set_ifc_cspr(IFC_CS3, CONFIG_SYS_CSPR3_FINAL);
576 #endif
577 #ifdef CONFIG_SYS_AMASK3_FINAL
578 	set_ifc_amask(IFC_CS3, CONFIG_SYS_AMASK3);
579 #endif
580 }
581 #endif
582