fsl_ifc.c 12 KB

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