fsp.icf 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970
  1. /* generated memory regions file - do not edit */
  2. define symbol RAM_START = 0x22000000;
  3. define symbol RAM_LENGTH = 0x174000;
  4. define symbol FLASH_START = 0x02000000;
  5. define symbol FLASH_LENGTH = 0x00100000;
  6. define symbol DATA_FLASH_START = 0x27000000;
  7. define symbol DATA_FLASH_LENGTH = 0x00000000;
  8. define symbol SDRAM_START = 0x68000000;
  9. define symbol SDRAM_LENGTH = 0x08000000;
  10. define symbol OSPI0_CS0_START = 0x80000000;
  11. define symbol OSPI0_CS0_LENGTH = 0x10000000;
  12. define symbol OSPI0_CS1_START = 0x90000000;
  13. define symbol OSPI0_CS1_LENGTH = 0x10000000;
  14. define symbol OSPI1_CS0_START = 0x70000000;
  15. define symbol OSPI1_CS0_LENGTH = 0x08000000;
  16. define symbol OSPI1_CS1_START = 0x78000000;
  17. define symbol OSPI1_CS1_LENGTH = 0x08000000;
  18. define symbol OPTION_SETTING_OFS0_START = 0x02c9f040;
  19. define symbol OPTION_SETTING_OFS0_LENGTH = 0x00000004;
  20. define symbol OPTION_SETTING_OFS2_START = 0x02c9f044;
  21. define symbol OPTION_SETTING_OFS2_LENGTH = 0x00000004;
  22. define symbol OPTION_SETTING_SAS_START = 0x02c9f074;
  23. define symbol OPTION_SETTING_SAS_LENGTH = 0x00000004;
  24. define symbol OPTION_SETTING_OFS1_START = 0x12c9f4c0;
  25. define symbol OPTION_SETTING_OFS1_LENGTH = 0x00000004;
  26. define symbol OPTION_SETTING_OFS1_SEC_START = 0x02c9f0c0;
  27. define symbol OPTION_SETTING_OFS1_SEC_LENGTH = 0x00000004;
  28. define symbol OPTION_SETTING_OFS1_SEL_START = 0x02c9f120;
  29. define symbol OPTION_SETTING_OFS1_SEL_LENGTH = 0x00000004;
  30. define symbol OPTION_SETTING_OFS3_START = 0x12c9f4c4;
  31. define symbol OPTION_SETTING_OFS3_LENGTH = 0x00000004;
  32. define symbol OPTION_SETTING_OFS3_SEC_START = 0x02c9f0c4;
  33. define symbol OPTION_SETTING_OFS3_SEC_LENGTH = 0x00000004;
  34. define symbol OPTION_SETTING_OFS3_SEL_START = 0x02c9f124;
  35. define symbol OPTION_SETTING_OFS3_SEL_LENGTH = 0x00000004;
  36. define symbol OPTION_SETTING_BPS_START = 0x12c9f600;
  37. define symbol OPTION_SETTING_BPS_LENGTH = 0x00000080;
  38. define symbol OPTION_SETTING_BPS_SEC_START = 0x02c9f200;
  39. define symbol OPTION_SETTING_BPS_SEC_LENGTH = 0x00000080;
  40. define symbol OPTION_SETTING_OTP_PBPS_SEC_START = 0x02e07700;
  41. define symbol OPTION_SETTING_OTP_PBPS_SEC_LENGTH = 0x00000080;
  42. define symbol OPTION_SETTING_OTP_PBPS_START = 0x12e07780;
  43. define symbol OPTION_SETTING_OTP_PBPS_LENGTH = 0x00000080;
  44. define symbol ITCM_START = 0x00000000;
  45. define symbol ITCM_LENGTH = 0x00020000;
  46. define symbol DTCM_START = 0x20000000;
  47. define symbol DTCM_LENGTH = 0x00020000;
  48. define region RAM = mem:[from RAM_START size RAM_LENGTH];
  49. define region FLASH = mem:[from FLASH_START size FLASH_LENGTH];
  50. define region DATA_FLASH = mem:[from DATA_FLASH_START size DATA_FLASH_LENGTH];
  51. define region SDRAM = mem:[from SDRAM_START size SDRAM_LENGTH];
  52. define region OSPI0_CS0 = mem:[from OSPI0_CS0_START size OSPI0_CS0_LENGTH];
  53. define region OSPI0_CS1 = mem:[from OSPI0_CS1_START size OSPI0_CS1_LENGTH];
  54. define region OSPI1_CS0 = mem:[from OSPI1_CS0_START size OSPI1_CS0_LENGTH];
  55. define region OSPI1_CS1 = mem:[from OSPI1_CS1_START size OSPI1_CS1_LENGTH];
  56. define region OPTION_SETTING_OFS0 = mem:[from OPTION_SETTING_OFS0_START size OPTION_SETTING_OFS0_LENGTH];
  57. define region OPTION_SETTING_OFS2 = mem:[from OPTION_SETTING_OFS2_START size OPTION_SETTING_OFS2_LENGTH];
  58. define region OPTION_SETTING_SAS = mem:[from OPTION_SETTING_SAS_START size OPTION_SETTING_SAS_LENGTH];
  59. define region OPTION_SETTING_OFS1 = mem:[from OPTION_SETTING_OFS1_START size OPTION_SETTING_OFS1_LENGTH];
  60. define region OPTION_SETTING_OFS1_SEC = mem:[from OPTION_SETTING_OFS1_SEC_START size OPTION_SETTING_OFS1_SEC_LENGTH];
  61. define region OPTION_SETTING_OFS1_SEL = mem:[from OPTION_SETTING_OFS1_SEL_START size OPTION_SETTING_OFS1_SEL_LENGTH];
  62. define region OPTION_SETTING_OFS3 = mem:[from OPTION_SETTING_OFS3_START size OPTION_SETTING_OFS3_LENGTH];
  63. define region OPTION_SETTING_OFS3_SEC = mem:[from OPTION_SETTING_OFS3_SEC_START size OPTION_SETTING_OFS3_SEC_LENGTH];
  64. define region OPTION_SETTING_OFS3_SEL = mem:[from OPTION_SETTING_OFS3_SEL_START size OPTION_SETTING_OFS3_SEL_LENGTH];
  65. define region OPTION_SETTING_BPS = mem:[from OPTION_SETTING_BPS_START size OPTION_SETTING_BPS_LENGTH];
  66. define region OPTION_SETTING_BPS_SEC = mem:[from OPTION_SETTING_BPS_SEC_START size OPTION_SETTING_BPS_SEC_LENGTH];
  67. define region OPTION_SETTING_OTP_PBPS_SEC = mem:[from OPTION_SETTING_OTP_PBPS_SEC_START size OPTION_SETTING_OTP_PBPS_SEC_LENGTH];
  68. define region OPTION_SETTING_OTP_PBPS = mem:[from OPTION_SETTING_OTP_PBPS_START size OPTION_SETTING_OTP_PBPS_LENGTH];
  69. define region ITCM = mem:[from ITCM_START size ITCM_LENGTH];
  70. define region DTCM = mem:[from DTCM_START size DTCM_LENGTH];
  71. /***** OSPI0_CS1 memory section allocations ******/
  72. define section __ddsc_OSPI0_CS1_START {public __ddsc_OSPI0_CS1_START:};
  73. keep {section __ddsc_OSPI0_CS1_START};
  74. define section __ddsc_OSPI0_CS1_END {public __ddsc_OSPI0_CS1_END:};
  75. keep {section __ddsc_OSPI0_CS1_END};
  76. define block ospi0_cs1_BLOCK with fixed order {
  77. block .ospi0_cs1.startof with fixed order {
  78. block __ddsc_OSPI0_CS1_START {section __ddsc_OSPI0_CS1_START},},
  79. /* sdram initialized from ospi0_cs1 */
  80. block __ospi0_cs1_init_sdram_from_ospi0_cs1 with fixed order {
  81. /* section.sdram.from_ospi0_cs1 */
  82. section .sdram_from_ospi0_cs1_init,
  83. /* section.sdram.code_from_ospi0_cs1 */
  84. section .sdram_code_from_ospi0_cs1_init},
  85. /* ospi0_cs0 initialized from ospi0_cs1 */
  86. block __ospi0_cs1_init_ospi0_cs0_from_ospi0_cs1 with fixed order {
  87. /* section.ospi0_cs0.from_ospi0_cs1 */
  88. section .ospi0_cs0_from_ospi0_cs1_init,
  89. /* section.ospi0_cs0.code_from_ospi0_cs1 */
  90. section .ospi0_cs0_code_from_ospi0_cs1_init},
  91. /* ospi1_cs0 initialized from ospi0_cs1 */
  92. block __ospi0_cs1_init_ospi1_cs0_from_ospi0_cs1 with fixed order {
  93. /* section.ospi1_cs0.from_ospi0_cs1 */
  94. section .ospi1_cs0_from_ospi0_cs1_init,
  95. /* section.ospi1_cs0.code_from_ospi0_cs1 */
  96. section .ospi1_cs0_code_from_ospi0_cs1_init},
  97. /* itcm initialized from ospi0_cs1 */
  98. block __ospi0_cs1_init_itcm_from_ospi0_cs1 with fixed order {
  99. /* section.itcm.from_ospi0_cs1 */
  100. section .itcm_from_ospi0_cs1_init,
  101. /* section.itcm.code_from_ospi0_cs1 */
  102. section .itcm_code_from_ospi0_cs1_init},
  103. /* dtcm initialized from ospi0_cs1 */
  104. block __ospi0_cs1_init_dtcm_from_ospi0_cs1 with fixed order {
  105. /* section.dtcm.from_ospi0_cs1 */
  106. section .dtcm_from_ospi0_cs1_init,
  107. /* section.dtcm.code_from_ospi0_cs1 */
  108. section .dtcm_code_from_ospi0_cs1_init},
  109. /* ram initialized from ospi0_cs1 */
  110. block __ospi0_cs1_init_ram_from_ospi0_cs1 with fixed order {
  111. /* section.ram.from_ospi0_cs1 */
  112. section .ram_from_ospi0_cs1_init,
  113. /* section.ram.code_from_ospi0_cs1 */
  114. section .ram_code_from_ospi0_cs1_init},
  115. block __ospi0_cs1_readonly with fixed order {
  116. /* section.ospi0_cs1.readonly */
  117. section .ospi0_cs1,
  118. /* section.ospi0_cs1.code */
  119. section .ospi0_cs1_code},
  120. block __ospi0_cs1_noinit with fixed order {
  121. /* section.ospi0_cs1.noinit */
  122. section .ospi0_cs1_noinit},
  123. block .ospi0_cs1.endof with alignment = 512, fixed order {
  124. block __ddsc_OSPI0_CS1_END {section __ddsc_OSPI0_CS1_END},},
  125. };
  126. place in OSPI0_CS1 { block ospi0_cs1_BLOCK };
  127. /***** OSPI1_CS1 memory section allocations ******/
  128. define section __ddsc_OSPI1_CS1_START {public __ddsc_OSPI1_CS1_START:};
  129. keep {section __ddsc_OSPI1_CS1_START};
  130. define section __ddsc_OSPI1_CS1_END {public __ddsc_OSPI1_CS1_END:};
  131. keep {section __ddsc_OSPI1_CS1_END};
  132. define block ospi1_cs1_BLOCK with fixed order {
  133. block .ospi1_cs1.startof with fixed order {
  134. block __ddsc_OSPI1_CS1_START {section __ddsc_OSPI1_CS1_START},},
  135. /* sdram initialized from ospi1_cs1 */
  136. block __ospi1_cs1_init_sdram_from_ospi1_cs1 with fixed order {
  137. /* section.sdram.from_ospi1_cs1 */
  138. section .sdram_from_ospi1_cs1_init,
  139. /* section.sdram.code_from_ospi1_cs1 */
  140. section .sdram_code_from_ospi1_cs1_init},
  141. /* ospi0_cs0 initialized from ospi1_cs1 */
  142. block __ospi1_cs1_init_ospi0_cs0_from_ospi1_cs1 with fixed order {
  143. /* section.ospi0_cs0.from_ospi1_cs1 */
  144. section .ospi0_cs0_from_ospi1_cs1_init,
  145. /* section.ospi0_cs0.code_from_ospi1_cs1 */
  146. section .ospi0_cs0_code_from_ospi1_cs1_init},
  147. /* ospi1_cs0 initialized from ospi1_cs1 */
  148. block __ospi1_cs1_init_ospi1_cs0_from_ospi1_cs1 with fixed order {
  149. /* section.ospi1_cs0.from_ospi1_cs1 */
  150. section .ospi1_cs0_from_ospi1_cs1_init,
  151. /* section.ospi1_cs0.code_from_ospi1_cs1 */
  152. section .ospi1_cs0_code_from_ospi1_cs1_init},
  153. /* itcm initialized from ospi1_cs1 */
  154. block __ospi1_cs1_init_itcm_from_ospi1_cs1 with fixed order {
  155. /* section.itcm.from_ospi1_cs1 */
  156. section .itcm_from_ospi1_cs1_init,
  157. /* section.itcm.code_from_ospi1_cs1 */
  158. section .itcm_code_from_ospi1_cs1_init},
  159. /* dtcm initialized from ospi1_cs1 */
  160. block __ospi1_cs1_init_dtcm_from_ospi1_cs1 with fixed order {
  161. /* section.dtcm.from_ospi1_cs1 */
  162. section .dtcm_from_ospi1_cs1_init,
  163. /* section.dtcm.code_from_ospi1_cs1 */
  164. section .dtcm_code_from_ospi1_cs1_init},
  165. /* ram initialized from ospi1_cs1 */
  166. block __ospi1_cs1_init_ram_from_ospi1_cs1 with fixed order {
  167. /* section.ram.from_ospi1_cs1 */
  168. section .ram_from_ospi1_cs1_init,
  169. /* section.ram.code_from_ospi1_cs1 */
  170. section .ram_code_from_ospi1_cs1_init},
  171. block __ospi1_cs1_readonly with fixed order {
  172. /* section.ospi1_cs1.readonly */
  173. section .ospi1_cs1,
  174. /* section.ospi1_cs1.code */
  175. section .ospi1_cs1_code},
  176. block __ospi1_cs1_noinit with fixed order {
  177. /* section.ospi1_cs1.noinit */
  178. section .ospi1_cs1_noinit},
  179. block .ospi1_cs1.endof with alignment = 512, fixed order {
  180. block __ddsc_OSPI1_CS1_END {section __ddsc_OSPI1_CS1_END},},
  181. };
  182. place in OSPI1_CS1 { block ospi1_cs1_BLOCK };
  183. /***** SDRAM memory section allocations ******/
  184. define section __ddsc_SDRAM_START {public __ddsc_SDRAM_START:};
  185. keep {section __ddsc_SDRAM_START};
  186. define section __ddsc_SDRAM_END {public __ddsc_SDRAM_END:};
  187. keep {section __ddsc_SDRAM_END};
  188. define block sdram_BLOCK with fixed order {
  189. block .sdram.startof with fixed order {
  190. block __ddsc_SDRAM_START {section __ddsc_SDRAM_START},},
  191. /* sdram initialized from ospi0_cs1 */
  192. block __sdram_from_ospi0_cs1 with fixed order {
  193. /* section.sdram.from_ospi0_cs1 */
  194. section .sdram_from_ospi0_cs1,
  195. /* section.sdram.code_from_ospi0_cs1 */
  196. section .sdram_code_from_ospi0_cs1},
  197. /* sdram initialized from ospi1_cs1 */
  198. block __sdram_from_ospi1_cs1 with fixed order {
  199. /* section.sdram.from_ospi1_cs1 */
  200. section .sdram_from_ospi1_cs1,
  201. /* section.sdram.code_from_ospi1_cs1 */
  202. section .sdram_code_from_ospi1_cs1},
  203. /* sdram initialized from data_flash */
  204. block __sdram_from_data_flash with fixed order {
  205. /* section.sdram.from_data_flash */
  206. section .sdram_from_data_flash,
  207. /* section.sdram.code_from_data_flash */
  208. section .sdram_code_from_data_flash},
  209. /* sdram initialized from flash */
  210. block __sdram_from_flash with fixed order {
  211. /* section.sdram.from_flash */
  212. section .sdram_from_flash,
  213. /* section.sdram.code_from_flash */
  214. section .sdram_code_from_flash},
  215. /* Non-initialized, non-cached sdram */
  216. block __sdram_noinit_nocache with alignment = 32, fixed order {
  217. /* section.sdram.noinit_nocache */
  218. section .sdram_noinit_nocache},
  219. /* Zeroed, non-cached sdram */
  220. block __sdram_zero_nocache with end alignment = 32, fixed order {
  221. /* section.sdram.zero_nocache */
  222. section .sdram_nocache},
  223. /* Non-initialized sdram */
  224. block __sdram_noinit with fixed order {
  225. /* section.sdram.noinit */
  226. section .sdram_noinit},
  227. /* Zeroed sdram */
  228. block __sdram_zero with fixed order {
  229. /* section.sdram.zero */
  230. section .sdram},
  231. block .sdram.endof with alignment = 512, fixed order {
  232. block __ddsc_SDRAM_END {section __ddsc_SDRAM_END},},
  233. };
  234. place in SDRAM { block sdram_BLOCK };
  235. /***** OSPI0_CS0 memory section allocations ******/
  236. define section __ddsc_OSPI0_CS0_START {public __ddsc_OSPI0_CS0_START:};
  237. keep {section __ddsc_OSPI0_CS0_START};
  238. define section __ddsc_OSPI0_CS0_END {public __ddsc_OSPI0_CS0_END:};
  239. keep {section __ddsc_OSPI0_CS0_END};
  240. define block ospi0_cs0_BLOCK with fixed order {
  241. block .ospi0_cs0.startof with fixed order {
  242. block __ddsc_OSPI0_CS0_START {section __ddsc_OSPI0_CS0_START},},
  243. /* ospi0_cs0 initialized from ospi0_cs1 */
  244. block __ospi0_cs0_from_ospi0_cs1 with fixed order {
  245. /* section.ospi0_cs0.from_ospi0_cs1 */
  246. section .ospi0_cs0_from_ospi0_cs1,
  247. /* section.ospi0_cs0.code_from_ospi0_cs1 */
  248. section .ospi0_cs0_code_from_ospi0_cs1},
  249. /* ospi0_cs0 initialized from ospi1_cs1 */
  250. block __ospi0_cs0_from_ospi1_cs1 with fixed order {
  251. /* section.ospi0_cs0.from_ospi1_cs1 */
  252. section .ospi0_cs0_from_ospi1_cs1,
  253. /* section.ospi0_cs0.code_from_ospi1_cs1 */
  254. section .ospi0_cs0_code_from_ospi1_cs1},
  255. /* ospi0_cs0 initialized from data_flash */
  256. block __ospi0_cs0_from_data_flash with fixed order {
  257. /* section.ospi0_cs0.from_data_flash */
  258. section .ospi0_cs0_from_data_flash,
  259. /* section.ospi0_cs0.code_from_data_flash */
  260. section .ospi0_cs0_code_from_data_flash},
  261. /* ospi0_cs0 initialized from flash */
  262. block __ospi0_cs0_from_flash with fixed order {
  263. /* section.ospi0_cs0.from_flash */
  264. section .ospi0_cs0_from_flash,
  265. /* section.ospi0_cs0.code_from_flash */
  266. section .ospi0_cs0_code_from_flash},
  267. /* Non-initialized, non-cached ospi0_cs0 */
  268. block __ospi0_cs0_noinit_nocache with alignment = 32, fixed order {
  269. /* section.ospi0_cs0.noinit_nocache */
  270. section .ospi0_cs0_noinit_nocache},
  271. /* Zeroed, non-cached ospi0_cs0 */
  272. block __ospi0_cs0_zero_nocache with end alignment = 32, fixed order {
  273. /* section.ospi0_cs0.zero_nocache */
  274. section .ospi0_cs0_nocache},
  275. /* Non-initialized ospi0_cs0 */
  276. block __ospi0_cs0_noinit with fixed order {
  277. /* section.ospi0_cs0.noinit */
  278. section .ospi0_cs0_noinit},
  279. /* Zeroed ospi0_cs0 */
  280. block __ospi0_cs0_zero with fixed order {
  281. /* section.ospi0_cs0.zero */
  282. section .ospi0_cs0},
  283. block .ospi0_cs0.endof with alignment = 512, fixed order {
  284. block __ddsc_OSPI0_CS0_END {section __ddsc_OSPI0_CS0_END},},
  285. };
  286. place in OSPI0_CS0 { block ospi0_cs0_BLOCK };
  287. /***** OSPI1_CS0 memory section allocations ******/
  288. define section __ddsc_OSPI1_CS0_START {public __ddsc_OSPI1_CS0_START:};
  289. keep {section __ddsc_OSPI1_CS0_START};
  290. define section __ddsc_OSPI1_CS0_END {public __ddsc_OSPI1_CS0_END:};
  291. keep {section __ddsc_OSPI1_CS0_END};
  292. define block ospi1_cs0_BLOCK with fixed order {
  293. block .ospi1_cs0.startof with fixed order {
  294. block __ddsc_OSPI1_CS0_START {section __ddsc_OSPI1_CS0_START},},
  295. /* ospi1_cs0 initialized from ospi0_cs1 */
  296. block __ospi1_cs0_from_ospi0_cs1 with fixed order {
  297. /* section.ospi1_cs0.from_ospi0_cs1 */
  298. section .ospi1_cs0_from_ospi0_cs1,
  299. /* section.ospi1_cs0.code_from_ospi0_cs1 */
  300. section .ospi1_cs0_code_from_ospi0_cs1},
  301. /* ospi1_cs0 initialized from ospi1_cs1 */
  302. block __ospi1_cs0_from_ospi1_cs1 with fixed order {
  303. /* section.ospi1_cs0.from_ospi1_cs1 */
  304. section .ospi1_cs0_from_ospi1_cs1,
  305. /* section.ospi1_cs0.code_from_ospi1_cs1 */
  306. section .ospi1_cs0_code_from_ospi1_cs1},
  307. /* ospi1_cs0 initialized from data_flash */
  308. block __ospi1_cs0_from_data_flash with fixed order {
  309. /* section.ospi1_cs0.from_data_flash */
  310. section .ospi1_cs0_from_data_flash,
  311. /* section.ospi1_cs0.code_from_data_flash */
  312. section .ospi1_cs0_code_from_data_flash},
  313. /* ospi1_cs0 initialized from flash */
  314. block __ospi1_cs0_from_flash with fixed order {
  315. /* section.ospi1_cs0.from_flash */
  316. section .ospi1_cs0_from_flash,
  317. /* section.ospi1_cs0.code_from_flash */
  318. section .ospi1_cs0_code_from_flash},
  319. /* Non-initialized, non-cached ospi1_cs0 */
  320. block __ospi1_cs0_noinit_nocache with alignment = 32, fixed order {
  321. /* section.ospi1_cs0.noinit_nocache */
  322. section .ospi1_cs0_noinit_nocache},
  323. /* Zeroed, non-cached ospi1_cs0 */
  324. block __ospi1_cs0_zero_nocache with end alignment = 32, fixed order {
  325. /* section.ospi1_cs0.zero_nocache */
  326. section .ospi1_cs0_nocache},
  327. /* Non-initialized ospi1_cs0 */
  328. block __ospi1_cs0_noinit with fixed order {
  329. /* section.ospi1_cs0.noinit */
  330. section .ospi1_cs0_noinit},
  331. /* Zeroed ospi1_cs0 */
  332. block __ospi1_cs0_zero with fixed order {
  333. /* section.ospi1_cs0.zero */
  334. section .ospi1_cs0},
  335. block .ospi1_cs0.endof with alignment = 512, fixed order {
  336. block __ddsc_OSPI1_CS0_END {section __ddsc_OSPI1_CS0_END},},
  337. };
  338. place in OSPI1_CS0 { block ospi1_cs0_BLOCK };
  339. /***** DATA_FLASH memory section allocations ******/
  340. define section __ddsc_DATA_FLASH_START {public __ddsc_DATA_FLASH_START:};
  341. keep {section __ddsc_DATA_FLASH_START};
  342. define section __ddsc_DATA_FLASH_END {public __ddsc_DATA_FLASH_END:};
  343. keep {section __ddsc_DATA_FLASH_END};
  344. define block data_flash_BLOCK with fixed order {
  345. block .data_flash.startof with fixed order {
  346. block __ddsc_DATA_FLASH_START {section __ddsc_DATA_FLASH_START},},
  347. /* sdram initialized from data_flash */
  348. block __data_flash_init_sdram_from_data_flash with fixed order {
  349. /* section.sdram.from_data_flash */
  350. section .sdram_from_data_flash_init,
  351. /* section.sdram.code_from_data_flash */
  352. section .sdram_code_from_data_flash_init},
  353. /* ospi0_cs0 initialized from data_flash */
  354. block __data_flash_init_ospi0_cs0_from_data_flash with fixed order {
  355. /* section.ospi0_cs0.from_data_flash */
  356. section .ospi0_cs0_from_data_flash_init,
  357. /* section.ospi0_cs0.code_from_data_flash */
  358. section .ospi0_cs0_code_from_data_flash_init},
  359. /* ospi1_cs0 initialized from data_flash */
  360. block __data_flash_init_ospi1_cs0_from_data_flash with fixed order {
  361. /* section.ospi1_cs0.from_data_flash */
  362. section .ospi1_cs0_from_data_flash_init,
  363. /* section.ospi1_cs0.code_from_data_flash */
  364. section .ospi1_cs0_code_from_data_flash_init},
  365. /* itcm initialized from data_flash */
  366. block __data_flash_init_itcm_from_data_flash with fixed order {
  367. /* section.itcm.from_data_flash */
  368. section .itcm_from_data_flash_init,
  369. /* section.itcm.code_from_data_flash */
  370. section .itcm_code_from_data_flash_init},
  371. /* dtcm initialized from data_flash */
  372. block __data_flash_init_dtcm_from_data_flash with fixed order {
  373. /* section.dtcm.from_data_flash */
  374. section .dtcm_from_data_flash_init,
  375. /* section.dtcm.code_from_data_flash */
  376. section .dtcm_code_from_data_flash_init},
  377. /* ram initialized from data_flash */
  378. block __data_flash_init_ram_from_data_flash with fixed order {
  379. /* section.ram.from_data_flash */
  380. section .ram_from_data_flash_init,
  381. /* section.ram.code_from_data_flash */
  382. section .ram_code_from_data_flash_init},
  383. block __data_flash_readonly with fixed order {
  384. /* section.data_flash.readonly */
  385. section .data_flash,
  386. /* section.data_flash.code */
  387. section .data_flash_code},
  388. block __data_flash_noinit with fixed order {
  389. /* section.data_flash.noinit */
  390. section .data_flash_noinit},
  391. block .data_flash.endof with alignment = 1024, fixed order {
  392. block __ddsc_DATA_FLASH_END {section __ddsc_DATA_FLASH_END},},
  393. };
  394. place in DATA_FLASH { block data_flash_BLOCK };
  395. /***** ITCM memory section allocations ******/
  396. define section __ddsc_ITCM_START {public __ddsc_ITCM_START:};
  397. keep {section __ddsc_ITCM_START};
  398. define section __ddsc_ITCM_END {public __ddsc_ITCM_END:};
  399. keep {section __ddsc_ITCM_END};
  400. define block itcm_BLOCK with fixed order {
  401. block .itcm.startof with fixed order {
  402. block __ddsc_ITCM_START {section __ddsc_ITCM_START},},
  403. /* itcm initialized from ospi0_cs1 */
  404. block __itcm_from_ospi0_cs1 with fixed order {
  405. /* section.itcm.from_ospi0_cs1 */
  406. section .itcm_from_ospi0_cs1,
  407. /* section.itcm.code_from_ospi0_cs1 */
  408. section .itcm_code_from_ospi0_cs1},
  409. /* itcm initialized from ospi1_cs1 */
  410. block __itcm_from_ospi1_cs1 with fixed order {
  411. /* section.itcm.from_ospi1_cs1 */
  412. section .itcm_from_ospi1_cs1,
  413. /* section.itcm.code_from_ospi1_cs1 */
  414. section .itcm_code_from_ospi1_cs1},
  415. /* itcm initialized from data_flash */
  416. block __itcm_from_data_flash with fixed order {
  417. /* section.itcm.from_data_flash */
  418. section .itcm_from_data_flash,
  419. /* section.itcm.code_from_data_flash */
  420. section .itcm_code_from_data_flash},
  421. /* itcm initialized from flash */
  422. block __itcm_from_flash with fixed order {
  423. /* section.itcm.from_flash */
  424. section .itcm_from_flash,
  425. /* section.itcm.code_from_flash */
  426. section .itcm_code_from_flash},
  427. /* Non-initialized itcm */
  428. block __itcm_noinit with fixed order {
  429. /* section.itcm.noinit */
  430. section .itcm_noinit},
  431. /* Zeroed itcm */
  432. block __itcm_zero with fixed order {
  433. /* section.itcm.zero */
  434. section .itcm},
  435. block .itcm.endof with alignment = 8192, fixed order {
  436. block __ddsc_ITCM_END {section __ddsc_ITCM_END},},
  437. };
  438. place in ITCM { block itcm_BLOCK };
  439. /***** DTCM memory section allocations ******/
  440. define section __ddsc_DTCM_START {public __ddsc_DTCM_START:};
  441. keep {section __ddsc_DTCM_START};
  442. define section __ddsc_DTCM_END {public __ddsc_DTCM_END:};
  443. keep {section __ddsc_DTCM_END};
  444. define block dtcm_BLOCK with fixed order {
  445. block .dtcm.startof with fixed order {
  446. block __ddsc_DTCM_START {section __ddsc_DTCM_START},},
  447. /* dtcm initialized from ospi0_cs1 */
  448. block __dtcm_from_ospi0_cs1 with fixed order {
  449. /* section.dtcm.from_ospi0_cs1 */
  450. section .dtcm_from_ospi0_cs1,
  451. /* section.dtcm.code_from_ospi0_cs1 */
  452. section .dtcm_code_from_ospi0_cs1},
  453. /* dtcm initialized from ospi1_cs1 */
  454. block __dtcm_from_ospi1_cs1 with fixed order {
  455. /* section.dtcm.from_ospi1_cs1 */
  456. section .dtcm_from_ospi1_cs1,
  457. /* section.dtcm.code_from_ospi1_cs1 */
  458. section .dtcm_code_from_ospi1_cs1},
  459. /* dtcm initialized from data_flash */
  460. block __dtcm_from_data_flash with fixed order {
  461. /* section.dtcm.from_data_flash */
  462. section .dtcm_from_data_flash,
  463. /* section.dtcm.code_from_data_flash */
  464. section .dtcm_code_from_data_flash},
  465. /* dtcm initialized from flash */
  466. block __dtcm_from_flash with fixed order {
  467. /* section.dtcm.from_flash */
  468. section .dtcm_from_flash,
  469. /* section.dtcm.code_from_flash */
  470. section .dtcm_code_from_flash},
  471. /* Non-initialized dtcm */
  472. block __dtcm_noinit with fixed order {
  473. /* section.dtcm.noinit */
  474. section .dtcm_noinit},
  475. /* Zeroed dtcm */
  476. block __dtcm_zero with fixed order {
  477. /* section.dtcm.zero */
  478. section .dtcm},
  479. block .dtcm.endof with alignment = 8192, fixed order {
  480. block __ddsc_DTCM_END {section __ddsc_DTCM_END},},
  481. };
  482. place in DTCM { block dtcm_BLOCK };
  483. /***** FLASH memory section allocations ******/
  484. define section __ddsc_FLASH_START {public __ddsc_FLASH_START:};
  485. keep {section __ddsc_FLASH_START};
  486. define section _VECTORS {public _VECTORS:};
  487. keep {section _VECTORS};
  488. define section __ddsc_FLASH_END {public __ddsc_FLASH_END:};
  489. keep {section __ddsc_FLASH_END};
  490. define section __sau_ddsc_FLASH_NSC {public __sau_ddsc_FLASH_NSC:};
  491. keep {section __sau_ddsc_FLASH_NSC};
  492. define block flash_BLOCK with fixed order {
  493. block .flash.startof with fixed order {
  494. block __ddsc_FLASH_START {section __ddsc_FLASH_START},},
  495. /* MCU vector table */
  496. block __flash_vectors with fixed order {
  497. block _VECTORS {section _VECTORS},
  498. section .fixed_vectors,
  499. section .application_vectors},
  500. block __flash_noinit with fixed order {
  501. /* section.flash.noinit */
  502. section .flash_noinit},
  503. /* sdram initialized from flash */
  504. block __flash_init_sdram_from_flash with fixed order {
  505. /* section.sdram.from_flash */
  506. section .sdram_from_flash_init,
  507. /* section.sdram.code_from_flash */
  508. section .sdram_code_from_flash_init},
  509. /* ospi0_cs0 initialized from flash */
  510. block __flash_init_ospi0_cs0_from_flash with fixed order {
  511. /* section.ospi0_cs0.from_flash */
  512. section .ospi0_cs0_from_flash_init,
  513. /* section.ospi0_cs0.code_from_flash */
  514. section .ospi0_cs0_code_from_flash_init},
  515. /* ospi1_cs0 initialized from flash */
  516. block __flash_init_ospi1_cs0_from_flash with fixed order {
  517. /* section.ospi1_cs0.from_flash */
  518. section .ospi1_cs0_from_flash_init,
  519. /* section.ospi1_cs0.code_from_flash */
  520. section .ospi1_cs0_code_from_flash_init},
  521. /* itcm initialized from flash */
  522. block __flash_init_itcm_from_flash with fixed order {
  523. /* section.itcm.from_flash */
  524. section .itcm_from_flash_init,
  525. /* section.itcm.code_from_flash */
  526. section .itcm_code_from_flash_init},
  527. /* dtcm initialized from flash */
  528. block __flash_init_dtcm_from_flash with fixed order {
  529. /* section.dtcm.from_flash */
  530. section .dtcm_from_flash_init,
  531. /* section.dtcm.code_from_flash */
  532. section .dtcm_code_from_flash_init},
  533. /* ram initialized from flash */
  534. block __flash_init_ram_from_flash with fixed order {
  535. /* section.ram.from_flash */
  536. section .ram_from_flash_init,
  537. /* section.ram.code_from_flash */
  538. section .ram_code_from_flash_init,
  539. section .data*_init,
  540. section vtable_init},
  541. block __flash_readonly with fixed order {
  542. /* section.flash.readonly */
  543. section .flash,
  544. /* section.flash.code */
  545. section .flash_code,
  546. ro code ,
  547. ro data ,
  548. section .mcuboot_sce9_key,
  549. section .version},
  550. block .flash.endof with alignment = 32768, fixed order {
  551. block __ddsc_FLASH_END {section __ddsc_FLASH_END},},
  552. block .flash.flat_nsc with alignment = 32768, fixed order {
  553. block __sau_ddsc_FLASH_NSC {section __sau_ddsc_FLASH_NSC},},
  554. };
  555. place at start of FLASH { block flash_BLOCK };
  556. /***** RAM memory section allocations ******/
  557. define section __ddsc_RAM_START {public __ddsc_RAM_START:};
  558. keep {section __ddsc_RAM_START};
  559. define section __ddsc_RAM_END {public __ddsc_RAM_END:};
  560. keep {section __ddsc_RAM_END};
  561. define section __sau_ddsc_RAM_NSC {public __sau_ddsc_RAM_NSC:};
  562. keep {section __sau_ddsc_RAM_NSC};
  563. define block ram_BLOCK with fixed order {
  564. block .ram.startof with fixed order {
  565. block __ddsc_RAM_START {section __ddsc_RAM_START},},
  566. block __ram_dtc_vector with fixed order {
  567. section .fsp_dtc_vector_table},
  568. /* ram initialized from ospi0_cs1 */
  569. block __ram_from_ospi0_cs1 with fixed order {
  570. /* section.ram.from_ospi0_cs1 */
  571. section .ram_from_ospi0_cs1,
  572. /* section.ram.code_from_ospi0_cs1 */
  573. section .ram_code_from_ospi0_cs1},
  574. /* ram initialized from ospi1_cs1 */
  575. block __ram_from_ospi1_cs1 with fixed order {
  576. /* section.ram.from_ospi1_cs1 */
  577. section .ram_from_ospi1_cs1,
  578. /* section.ram.code_from_ospi1_cs1 */
  579. section .ram_code_from_ospi1_cs1},
  580. /* ram initialized from data_flash */
  581. block __ram_from_data_flash with fixed order {
  582. /* section.ram.from_data_flash */
  583. section .ram_from_data_flash,
  584. /* section.ram.code_from_data_flash */
  585. section .ram_code_from_data_flash},
  586. /* ram initialized from flash */
  587. block __ram_from_flash with fixed order {
  588. /* section.ram.from_flash */
  589. section .ram_from_flash,
  590. /* section.ram.code_from_flash */
  591. section .ram_code_from_flash,
  592. section .data*,
  593. section vtable},
  594. /* Non-initialized, non-cached ram */
  595. block __ram_noinit_nocache with alignment = 32, fixed order {
  596. /* section.ram.noinit_nocache */
  597. section .ram_noinit_nocache},
  598. /* Zeroed, non-cached ram */
  599. block __ram_zero_nocache with end alignment = 32, fixed order {
  600. /* section.ram.zero_nocache */
  601. section .ram_nocache},
  602. /* Non-initialized ram */
  603. block __ram_noinit with fixed order {
  604. /* section.ram.noinit */
  605. block HEAP { section .bss object * symbol g_heap},
  606. section .bss object * symbol g_main_stack,
  607. section .ram_noinit,
  608. section .noinit},
  609. /* Zeroed ram */
  610. block __ram_zero with fixed order {
  611. /* section.ram.zero */
  612. section .ram,
  613. zi },
  614. /* Thread Stacks */
  615. block __ram_thread_stack with alignment = 8, fixed order {
  616. section .stack?*},
  617. block .ram.endof with alignment = 8192, fixed order {
  618. block __ddsc_RAM_END {section __ddsc_RAM_END},},
  619. block .ram.flat_nsc with alignment = 8192, fixed order {
  620. block __sau_ddsc_RAM_NSC {section __sau_ddsc_RAM_NSC},},
  621. };
  622. place at start of RAM { block ram_BLOCK };
  623. /***** OPTION_SETTING_OFS0 memory section allocations ******/
  624. define section __ddsc_OPTION_SETTING_OFS0_START {public __ddsc_OPTION_SETTING_OFS0_START:};
  625. keep {section __ddsc_OPTION_SETTING_OFS0_START};
  626. define section __ddsc_OPTION_SETTING_OFS0_END {public __ddsc_OPTION_SETTING_OFS0_END:};
  627. keep {section __ddsc_OPTION_SETTING_OFS0_END};
  628. define block option_setting_ofs0_BLOCK with fixed order {
  629. block .option_setting_ofs0.startof with fixed order {
  630. block __ddsc_OPTION_SETTING_OFS0_START {section __ddsc_OPTION_SETTING_OFS0_START},},
  631. /* Option Function Select Register 0 */
  632. block __option_setting_ofs0_reg with fixed order {
  633. section .option_setting_ofs0},
  634. block .option_setting_ofs0.endof with fixed order {
  635. block __ddsc_OPTION_SETTING_OFS0_END {section __ddsc_OPTION_SETTING_OFS0_END},},
  636. };
  637. place in OPTION_SETTING_OFS0 { block option_setting_ofs0_BLOCK };
  638. /***** OPTION_SETTING_OFS2 memory section allocations ******/
  639. define section __ddsc_OPTION_SETTING_OFS2_START {public __ddsc_OPTION_SETTING_OFS2_START:};
  640. keep {section __ddsc_OPTION_SETTING_OFS2_START};
  641. define section __ddsc_OPTION_SETTING_OFS2_END {public __ddsc_OPTION_SETTING_OFS2_END:};
  642. keep {section __ddsc_OPTION_SETTING_OFS2_END};
  643. define block option_setting_ofs2_BLOCK with fixed order {
  644. block .option_setting_ofs2.startof with fixed order {
  645. block __ddsc_OPTION_SETTING_OFS2_START {section __ddsc_OPTION_SETTING_OFS2_START},},
  646. /* Option Function Select Register 2 */
  647. block __option_setting_ofs2_reg with fixed order {
  648. section .option_setting_ofs2},
  649. block .option_setting_ofs2.endof with fixed order {
  650. block __ddsc_OPTION_SETTING_OFS2_END {section __ddsc_OPTION_SETTING_OFS2_END},},
  651. };
  652. place in OPTION_SETTING_OFS2 { block option_setting_ofs2_BLOCK };
  653. /***** OPTION_SETTING_SAS memory section allocations ******/
  654. define section __ddsc_OPTION_SETTING_SAS_START {public __ddsc_OPTION_SETTING_SAS_START:};
  655. keep {section __ddsc_OPTION_SETTING_SAS_START};
  656. define section __ddsc_OPTION_SETTING_SAS_END {public __ddsc_OPTION_SETTING_SAS_END:};
  657. keep {section __ddsc_OPTION_SETTING_SAS_END};
  658. define block option_setting_sas_BLOCK with fixed order {
  659. block .option_setting_sas.startof with fixed order {
  660. block __ddsc_OPTION_SETTING_SAS_START {section __ddsc_OPTION_SETTING_SAS_START},},
  661. /* Startup Area Setting Register */
  662. block __option_setting_sas_reg with fixed order {
  663. section .option_setting_sas},
  664. block .option_setting_sas.endof with fixed order {
  665. block __ddsc_OPTION_SETTING_SAS_END {section __ddsc_OPTION_SETTING_SAS_END},},
  666. };
  667. place in OPTION_SETTING_SAS { block option_setting_sas_BLOCK };
  668. /***** OPTION_SETTING_OFS1 memory section allocations ******/
  669. define section __ddsc_OPTION_SETTING_OFS1_START {public __ddsc_OPTION_SETTING_OFS1_START:};
  670. keep {section __ddsc_OPTION_SETTING_OFS1_START};
  671. define section __ddsc_OPTION_SETTING_OFS1_END {public __ddsc_OPTION_SETTING_OFS1_END:};
  672. keep {section __ddsc_OPTION_SETTING_OFS1_END};
  673. define block option_setting_ofs1_BLOCK with fixed order {
  674. block .option_setting_ofs1.startof with fixed order {
  675. block __ddsc_OPTION_SETTING_OFS1_START {section __ddsc_OPTION_SETTING_OFS1_START},},
  676. /* Option Function Select Register 1 */
  677. block __option_setting_ofs1_reg with fixed order {
  678. section .option_setting_ofs1},
  679. block .option_setting_ofs1.endof with fixed order {
  680. block __ddsc_OPTION_SETTING_OFS1_END {section __ddsc_OPTION_SETTING_OFS1_END},},
  681. };
  682. place in OPTION_SETTING_OFS1 { block option_setting_ofs1_BLOCK };
  683. /***** OPTION_SETTING_OFS1_SEC memory section allocations ******/
  684. define section __ddsc_OPTION_SETTING_OFS1_SEC_START {public __ddsc_OPTION_SETTING_OFS1_SEC_START:};
  685. keep {section __ddsc_OPTION_SETTING_OFS1_SEC_START};
  686. define section __ddsc_OPTION_SETTING_OFS1_SEC_END {public __ddsc_OPTION_SETTING_OFS1_SEC_END:};
  687. keep {section __ddsc_OPTION_SETTING_OFS1_SEC_END};
  688. define block option_setting_ofs1_sec_BLOCK with fixed order {
  689. block .option_setting_ofs1_sec.startof with fixed order {
  690. block __ddsc_OPTION_SETTING_OFS1_SEC_START {section __ddsc_OPTION_SETTING_OFS1_SEC_START},},
  691. /* Option Function Select Register 1 Secure */
  692. block __option_setting_ofs1_sec_reg with fixed order {
  693. section .option_setting_ofs1_sec},
  694. block .option_setting_ofs1_sec.endof with fixed order {
  695. block __ddsc_OPTION_SETTING_OFS1_SEC_END {section __ddsc_OPTION_SETTING_OFS1_SEC_END},},
  696. };
  697. place in OPTION_SETTING_OFS1_SEC { block option_setting_ofs1_sec_BLOCK };
  698. /***** OPTION_SETTING_OFS1_SEL memory section allocations ******/
  699. define section __ddsc_OPTION_SETTING_OFS1_SEL_START {public __ddsc_OPTION_SETTING_OFS1_SEL_START:};
  700. keep {section __ddsc_OPTION_SETTING_OFS1_SEL_START};
  701. define section __ddsc_OPTION_SETTING_OFS1_SEL_END {public __ddsc_OPTION_SETTING_OFS1_SEL_END:};
  702. keep {section __ddsc_OPTION_SETTING_OFS1_SEL_END};
  703. define block option_setting_ofs1_sel_BLOCK with fixed order {
  704. block .option_setting_ofs1_sel.startof with fixed order {
  705. block __ddsc_OPTION_SETTING_OFS1_SEL_START {section __ddsc_OPTION_SETTING_OFS1_SEL_START},},
  706. /* OFS1 Register Select */
  707. block __option_setting_ofs1_sel_reg with fixed order {
  708. section .option_setting_ofs1_sel},
  709. block .option_setting_ofs1_sel.endof with fixed order {
  710. block __ddsc_OPTION_SETTING_OFS1_SEL_END {section __ddsc_OPTION_SETTING_OFS1_SEL_END},},
  711. };
  712. place in OPTION_SETTING_OFS1_SEL { block option_setting_ofs1_sel_BLOCK };
  713. /***** OPTION_SETTING_OFS3 memory section allocations ******/
  714. define section __ddsc_OPTION_SETTING_OFS3_START {public __ddsc_OPTION_SETTING_OFS3_START:};
  715. keep {section __ddsc_OPTION_SETTING_OFS3_START};
  716. define section __ddsc_OPTION_SETTING_OFS3_END {public __ddsc_OPTION_SETTING_OFS3_END:};
  717. keep {section __ddsc_OPTION_SETTING_OFS3_END};
  718. define block option_setting_ofs3_BLOCK with fixed order {
  719. block .option_setting_ofs3.startof with fixed order {
  720. block __ddsc_OPTION_SETTING_OFS3_START {section __ddsc_OPTION_SETTING_OFS3_START},},
  721. /* Option Function Select Register 3 */
  722. block __option_setting_ofs3_reg with fixed order {
  723. section .option_setting_ofs3},
  724. block .option_setting_ofs3.endof with fixed order {
  725. block __ddsc_OPTION_SETTING_OFS3_END {section __ddsc_OPTION_SETTING_OFS3_END},},
  726. };
  727. place in OPTION_SETTING_OFS3 { block option_setting_ofs3_BLOCK };
  728. /***** OPTION_SETTING_OFS3_SEC memory section allocations ******/
  729. define section __ddsc_OPTION_SETTING_OFS3_SEC_START {public __ddsc_OPTION_SETTING_OFS3_SEC_START:};
  730. keep {section __ddsc_OPTION_SETTING_OFS3_SEC_START};
  731. define section __ddsc_OPTION_SETTING_OFS3_SEC_END {public __ddsc_OPTION_SETTING_OFS3_SEC_END:};
  732. keep {section __ddsc_OPTION_SETTING_OFS3_SEC_END};
  733. define block option_setting_ofs3_sec_BLOCK with fixed order {
  734. block .option_setting_ofs3_sec.startof with fixed order {
  735. block __ddsc_OPTION_SETTING_OFS3_SEC_START {section __ddsc_OPTION_SETTING_OFS3_SEC_START},},
  736. /* Option Function Select Register 3 Secure */
  737. block __option_setting_ofs3_sec_reg with fixed order {
  738. section .option_setting_ofs3_sec},
  739. block .option_setting_ofs3_sec.endof with fixed order {
  740. block __ddsc_OPTION_SETTING_OFS3_SEC_END {section __ddsc_OPTION_SETTING_OFS3_SEC_END},},
  741. };
  742. place in OPTION_SETTING_OFS3_SEC { block option_setting_ofs3_sec_BLOCK };
  743. /***** OPTION_SETTING_OFS3_SEL memory section allocations ******/
  744. define section __ddsc_OPTION_SETTING_OFS3_SEL_START {public __ddsc_OPTION_SETTING_OFS3_SEL_START:};
  745. keep {section __ddsc_OPTION_SETTING_OFS3_SEL_START};
  746. define section __ddsc_OPTION_SETTING_OFS3_SEL_END {public __ddsc_OPTION_SETTING_OFS3_SEL_END:};
  747. keep {section __ddsc_OPTION_SETTING_OFS3_SEL_END};
  748. define block option_setting_ofs3_sel_BLOCK with fixed order {
  749. block .option_setting_ofs3_sel.startof with fixed order {
  750. block __ddsc_OPTION_SETTING_OFS3_SEL_START {section __ddsc_OPTION_SETTING_OFS3_SEL_START},},
  751. /* OFS3 Register Select */
  752. block __option_setting_ofs3_sel_reg with fixed order {
  753. section .option_setting_ofs3_sel},
  754. block .option_setting_ofs3_sel.endof with fixed order {
  755. block __ddsc_OPTION_SETTING_OFS3_SEL_END {section __ddsc_OPTION_SETTING_OFS3_SEL_END},},
  756. };
  757. place in OPTION_SETTING_OFS3_SEL { block option_setting_ofs3_sel_BLOCK };
  758. /***** OPTION_SETTING_BPS memory section allocations ******/
  759. define section __ddsc_OPTION_SETTING_BPS_START {public __ddsc_OPTION_SETTING_BPS_START:};
  760. keep {section __ddsc_OPTION_SETTING_BPS_START};
  761. define section __ddsc_OPTION_SETTING_BPS_END {public __ddsc_OPTION_SETTING_BPS_END:};
  762. keep {section __ddsc_OPTION_SETTING_BPS_END};
  763. define block option_setting_bps_BLOCK with fixed order {
  764. block .option_setting_bps.startof with fixed order {
  765. block __ddsc_OPTION_SETTING_BPS_START {section __ddsc_OPTION_SETTING_BPS_START},},
  766. /* Block Protect Setting Register */
  767. block __option_setting_bps_reg with fixed order {
  768. section .option_setting_bps},
  769. block .option_setting_bps.endof with fixed order {
  770. block __ddsc_OPTION_SETTING_BPS_END {section __ddsc_OPTION_SETTING_BPS_END},},
  771. };
  772. place in OPTION_SETTING_BPS { block option_setting_bps_BLOCK };
  773. /***** OPTION_SETTING_BPS_SEC memory section allocations ******/
  774. define section __ddsc_OPTION_SETTING_BPS_SEC_START {public __ddsc_OPTION_SETTING_BPS_SEC_START:};
  775. keep {section __ddsc_OPTION_SETTING_BPS_SEC_START};
  776. define section __ddsc_OPTION_SETTING_BPS_SEC_END {public __ddsc_OPTION_SETTING_BPS_SEC_END:};
  777. keep {section __ddsc_OPTION_SETTING_BPS_SEC_END};
  778. define block option_setting_bps_sec_BLOCK with fixed order {
  779. block .option_setting_bps_sec.startof with fixed order {
  780. block __ddsc_OPTION_SETTING_BPS_SEC_START {section __ddsc_OPTION_SETTING_BPS_SEC_START},},
  781. /* Block Protect Setting Register Secure */
  782. block __option_setting_bps_sec_reg with fixed order {
  783. section .option_setting_bps_sec},
  784. block .option_setting_bps_sec.endof with fixed order {
  785. block __ddsc_OPTION_SETTING_BPS_SEC_END {section __ddsc_OPTION_SETTING_BPS_SEC_END},},
  786. };
  787. place in OPTION_SETTING_BPS_SEC { block option_setting_bps_sec_BLOCK };
  788. /***** OPTION_SETTING_OTP_PBPS_SEC memory section allocations ******/
  789. define section __ddsc_OPTION_SETTING_OTP_PBPS_SEC_START {public __ddsc_OPTION_SETTING_OTP_PBPS_SEC_START:};
  790. keep {section __ddsc_OPTION_SETTING_OTP_PBPS_SEC_START};
  791. define section __ddsc_OPTION_SETTING_OTP_PBPS_SEC_END {public __ddsc_OPTION_SETTING_OTP_PBPS_SEC_END:};
  792. keep {section __ddsc_OPTION_SETTING_OTP_PBPS_SEC_END};
  793. define block option_setting_otp_pbps_sec_BLOCK with fixed order {
  794. block .option_setting_otp_pbps_sec.startof with fixed order {
  795. block __ddsc_OPTION_SETTING_OTP_PBPS_SEC_START {section __ddsc_OPTION_SETTING_OTP_PBPS_SEC_START},},
  796. /* Permanent Block Protect Setting Register Secure */
  797. block __option_setting_otp_pbps_sec_reg with fixed order {
  798. section .option_setting_otp_pbps_sec},
  799. block .option_setting_otp_pbps_sec.endof with fixed order {
  800. block __ddsc_OPTION_SETTING_OTP_PBPS_SEC_END {section __ddsc_OPTION_SETTING_OTP_PBPS_SEC_END},},
  801. };
  802. place in OPTION_SETTING_OTP_PBPS_SEC { block option_setting_otp_pbps_sec_BLOCK };
  803. /***** OPTION_SETTING_OTP_PBPS memory section allocations ******/
  804. define section __ddsc_OPTION_SETTING_OTP_PBPS_START {public __ddsc_OPTION_SETTING_OTP_PBPS_START:};
  805. keep {section __ddsc_OPTION_SETTING_OTP_PBPS_START};
  806. define section __ddsc_OPTION_SETTING_OTP_PBPS_END {public __ddsc_OPTION_SETTING_OTP_PBPS_END:};
  807. keep {section __ddsc_OPTION_SETTING_OTP_PBPS_END};
  808. define block option_setting_otp_pbps_BLOCK with fixed order {
  809. block .option_setting_otp_pbps.startof with fixed order {
  810. block __ddsc_OPTION_SETTING_OTP_PBPS_START {section __ddsc_OPTION_SETTING_OTP_PBPS_START},},
  811. /* Permanent Block Protect Setting Register */
  812. block __option_setting_otp_pbps_reg with fixed order {
  813. section .option_setting_otp_pbps},
  814. block .option_setting_otp_pbps.endof with fixed order {
  815. block __ddsc_OPTION_SETTING_OTP_PBPS_END {section __ddsc_OPTION_SETTING_OTP_PBPS_END},},
  816. };
  817. place in OPTION_SETTING_OTP_PBPS { block option_setting_otp_pbps_BLOCK };
  818. /***** Selectors that must be kept ******/
  819. keep{
  820. section .fixed_vectors,
  821. section .application_vectors,
  822. section .mcuboot_sce9_key,
  823. section .version,
  824. section .stack?*,
  825. section .option_setting_ofs0,
  826. section .option_setting_ofs2,
  827. section .option_setting_sas,
  828. section .option_setting_ofs1,
  829. section .option_setting_ofs1_sec,
  830. section .option_setting_ofs1_sel,
  831. section .option_setting_ofs3,
  832. section .option_setting_ofs3_sec,
  833. section .option_setting_ofs3_sel,
  834. section .option_setting_bps,
  835. section .option_setting_bps_sec,
  836. section .option_setting_otp_pbps_sec,
  837. section .option_setting_otp_pbps};
  838. /***** FSP handles all initialization ******/
  839. initialize manually with alignment preservation{
  840. /* section.sdram.from_ospi0_cs1 */
  841. section .sdram_from_ospi0_cs1,
  842. /* section.sdram.code_from_ospi0_cs1 */
  843. section .sdram_code_from_ospi0_cs1,
  844. /* section.sdram.from_ospi1_cs1 */
  845. section .sdram_from_ospi1_cs1,
  846. /* section.sdram.code_from_ospi1_cs1 */
  847. section .sdram_code_from_ospi1_cs1,
  848. /* section.sdram.from_data_flash */
  849. section .sdram_from_data_flash,
  850. /* section.sdram.code_from_data_flash */
  851. section .sdram_code_from_data_flash,
  852. /* section.sdram.from_flash */
  853. section .sdram_from_flash,
  854. /* section.sdram.code_from_flash */
  855. section .sdram_code_from_flash,
  856. /* section.ospi0_cs0.from_ospi0_cs1 */
  857. section .ospi0_cs0_from_ospi0_cs1,
  858. /* section.ospi0_cs0.code_from_ospi0_cs1 */
  859. section .ospi0_cs0_code_from_ospi0_cs1,
  860. /* section.ospi0_cs0.from_ospi1_cs1 */
  861. section .ospi0_cs0_from_ospi1_cs1,
  862. /* section.ospi0_cs0.code_from_ospi1_cs1 */
  863. section .ospi0_cs0_code_from_ospi1_cs1,
  864. /* section.ospi0_cs0.from_data_flash */
  865. section .ospi0_cs0_from_data_flash,
  866. /* section.ospi0_cs0.code_from_data_flash */
  867. section .ospi0_cs0_code_from_data_flash,
  868. /* section.ospi0_cs0.from_flash */
  869. section .ospi0_cs0_from_flash,
  870. /* section.ospi0_cs0.code_from_flash */
  871. section .ospi0_cs0_code_from_flash,
  872. /* section.ospi1_cs0.from_ospi0_cs1 */
  873. section .ospi1_cs0_from_ospi0_cs1,
  874. /* section.ospi1_cs0.code_from_ospi0_cs1 */
  875. section .ospi1_cs0_code_from_ospi0_cs1,
  876. /* section.ospi1_cs0.from_ospi1_cs1 */
  877. section .ospi1_cs0_from_ospi1_cs1,
  878. /* section.ospi1_cs0.code_from_ospi1_cs1 */
  879. section .ospi1_cs0_code_from_ospi1_cs1,
  880. /* section.ospi1_cs0.from_data_flash */
  881. section .ospi1_cs0_from_data_flash,
  882. /* section.ospi1_cs0.code_from_data_flash */
  883. section .ospi1_cs0_code_from_data_flash,
  884. /* section.ospi1_cs0.from_flash */
  885. section .ospi1_cs0_from_flash,
  886. /* section.ospi1_cs0.code_from_flash */
  887. section .ospi1_cs0_code_from_flash,
  888. /* section.itcm.from_ospi0_cs1 */
  889. section .itcm_from_ospi0_cs1,
  890. /* section.itcm.code_from_ospi0_cs1 */
  891. section .itcm_code_from_ospi0_cs1,
  892. /* section.itcm.from_ospi1_cs1 */
  893. section .itcm_from_ospi1_cs1,
  894. /* section.itcm.code_from_ospi1_cs1 */
  895. section .itcm_code_from_ospi1_cs1,
  896. /* section.itcm.from_data_flash */
  897. section .itcm_from_data_flash,
  898. /* section.itcm.code_from_data_flash */
  899. section .itcm_code_from_data_flash,
  900. /* section.itcm.from_flash */
  901. section .itcm_from_flash,
  902. /* section.itcm.code_from_flash */
  903. section .itcm_code_from_flash,
  904. /* section.dtcm.from_ospi0_cs1 */
  905. section .dtcm_from_ospi0_cs1,
  906. /* section.dtcm.code_from_ospi0_cs1 */
  907. section .dtcm_code_from_ospi0_cs1,
  908. /* section.dtcm.from_ospi1_cs1 */
  909. section .dtcm_from_ospi1_cs1,
  910. /* section.dtcm.code_from_ospi1_cs1 */
  911. section .dtcm_code_from_ospi1_cs1,
  912. /* section.dtcm.from_data_flash */
  913. section .dtcm_from_data_flash,
  914. /* section.dtcm.code_from_data_flash */
  915. section .dtcm_code_from_data_flash,
  916. /* section.dtcm.from_flash */
  917. section .dtcm_from_flash,
  918. /* section.dtcm.code_from_flash */
  919. section .dtcm_code_from_flash,
  920. /* section.ram.from_ospi0_cs1 */
  921. section .ram_from_ospi0_cs1,
  922. /* section.ram.code_from_ospi0_cs1 */
  923. section .ram_code_from_ospi0_cs1,
  924. /* section.ram.from_ospi1_cs1 */
  925. section .ram_from_ospi1_cs1,
  926. /* section.ram.code_from_ospi1_cs1 */
  927. section .ram_code_from_ospi1_cs1,
  928. /* section.ram.from_data_flash */
  929. section .ram_from_data_flash,
  930. /* section.ram.code_from_data_flash */
  931. section .ram_code_from_data_flash,
  932. /* section.ram.from_flash */
  933. section .ram_from_flash,
  934. /* section.ram.code_from_flash */
  935. section .ram_code_from_flash,
  936. section .data*,
  937. section vtable};
  938. do not initialize{zi};
  939. initialize manually with alignment preservation{rw};