fsp.scat 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670
  1. #! armclang -mcpu=cortex-m4 --target=arm-arm-none-eabi -E -x c -I.
  2. #include "memory_regions.scat"
  3. ; This scatter-file places the vector table, application code, data, stacks and heap at suitable addresses in the memory map.
  4. #define ROM_REGISTERS_START 0x400
  5. #ifdef FLASH_BOOTLOADER_LENGTH
  6. #define BL_FLASH_IMAGE_START (FLASH_APPLICATION_IMAGE_NUMBER == 1 ? FLASH_BOOTLOADER_LENGTH + FLASH_BOOTLOADER_HEADER_LENGTH : \
  7. FLASH_BOOTLOADER_LENGTH + FLASH_BOOTLOADER_SCRATCH_LENGTH + FLASH_APPLICATION_S_LENGTH + FLASH_BOOTLOADER_HEADER_LENGTH)
  8. #define BL_FLASH_IMAGE_END (BL_FLASH_IMAGE_START + FLASH_APPLICATION_S_LENGTH - FLASH_BOOTLOADER_HEADER_LENGTH)
  9. #define BL_FLASH_NS_START (FLASH_APPLICATION_NS_LENGTH == 0 ? BL_FLASH_IMAGE_END : \
  10. BL_FLASH_IMAGE_START - FLASH_BOOTLOADER_HEADER_LENGTH + FLASH_APPLICATION_S_LENGTH)
  11. #define BL_FLASH_NSC_START (FLASH_APPLICATION_NS_LENGTH == 0 ? BL_FLASH_IMAGE_END : \
  12. BL_FLASH_NS_START - FLASH_APPLICATION_NSC_LENGTH)
  13. #define BL_FLASH_NS_IMAGE_START (FLASH_APPLICATION_NS_LENGTH == 0 ? BL_FLASH_IMAGE_END : \
  14. BL_FLASH_NS_START + FLASH_BOOTLOADER_HEADER_LENGTH_2)
  15. #define BL_RAM_NS_START (FLASH_APPLICATION_NS_LENGTH == 0 ? RAM_START + RAM_LENGTH : \
  16. RAM_START + RAM_LENGTH - RAM_APPLICATION_NS_LENGTH)
  17. #define BL_RAM_NSC_START (FLASH_APPLICATION_NS_LENGTH == 0 ? RAM_START + RAM_LENGTH : \
  18. BL_RAM_NS_START - RAM_APPLICATION_NSC_LENGTH)
  19. #define BLN_FLASH_IMAGE_START (BL_FLASH_NS_IMAGE_START)
  20. #define BLN_FLASH_IMAGE_END (FLASH_APPLICATION_NS_LENGTH == 0 ? BL_FLASH_IMAGE_END : \
  21. BL_FLASH_NS_IMAGE_START + FLASH_APPLICATION_NS_LENGTH - FLASH_BOOTLOADER_HEADER_LENGTH_2)
  22. #define FLASH_ORIGIN FLASH_START
  23. #define LIMITED_FLASH_LENGTH FLASH_BOOTLOADER_LENGTH
  24. #elif defined FLASH_IMAGE_START
  25. #define FLASH_ORIGIN FLASH_IMAGE_START
  26. #ifdef FLASH_NS_START
  27. #define LIMITED_FLASH_LENGTH FLASH_NS_START - FLASH_IMAGE_START
  28. #else
  29. #define LIMITED_FLASH_LENGTH FLASH_IMAGE_END - FLASH_IMAGE_START
  30. #endif
  31. #else
  32. #define FLASH_ORIGIN FLASH_START
  33. #define LIMITED_FLASH_LENGTH FLASH_LENGTH
  34. #endif
  35. ; If a flat project has defined RAM_NS_BUFFER_LENGTH, then emit IDAU symbols to allocate non-secure RAM.
  36. #if !defined(PROJECT_NONSECURE) && defined(RAM_NS_BUFFER_LENGTH)
  37. #define __RESERVE_NS_RAM (1)
  38. ; Allocate required RAM and align to 32K boundary
  39. #define RAM_NS_BUFFER_START ((RAM_START + RAM_LENGTH - RAM_NS_BUFFER_LENGTH) AND 0xFFFFFFE0)
  40. #else
  41. #define __RESERVE_NS_RAM (0)
  42. #endif
  43. #ifndef FLASH_S_START
  44. #define FLASH_S_START 0
  45. #endif
  46. #ifndef RAM_S_START
  47. #define RAM_S_START RAM_START
  48. #endif
  49. #ifndef DATA_FLASH_S_START
  50. #define DATA_FLASH_S_START DATA_FLASH_START
  51. #endif
  52. #if __RESERVE_NS_RAM
  53. #ifndef RAM_NSC_START
  54. #define RAM_NSC_START RAM_NS_BUFFER_START AND 0xFFFFE000
  55. #endif
  56. #ifndef RAM_NS_START
  57. #define RAM_NS_START RAM_NS_BUFFER_START AND 0xFFFFE000
  58. #endif
  59. #ifndef DATA_FLASH_NS_START
  60. #define DATA_FLASH_NS_START DATA_FLASH_START + DATA_FLASH_LENGTH
  61. #endif
  62. #ifndef FLASH_NSC_START
  63. #define FLASH_NSC_START FLASH_ORIGIN + LIMITED_FLASH_LENGTH
  64. #endif
  65. #ifndef FLASH_NS_START
  66. #define FLASH_NS_START FLASH_ORIGIN + LIMITED_FLASH_LENGTH
  67. #endif
  68. #else
  69. #ifndef RAM_NSC_START
  70. #ifdef PROJECT_SECURE
  71. #define RAM_NSC_START +0 ALIGN 1024
  72. #else
  73. #define RAM_NSC_START RAM_START + RAM_LENGTH
  74. #endif
  75. #endif
  76. #ifndef RAM_NS_START
  77. #ifdef PROJECT_SECURE
  78. #define RAM_NS_START +0 ALIGN 8192
  79. #else
  80. #define RAM_NS_START RAM_START + RAM_LENGTH
  81. #endif
  82. #endif
  83. #ifndef DATA_FLASH_NS_START
  84. #define DATA_FLASH_NS_START +0 ALIGN 1024
  85. #endif
  86. #ifndef FLASH_NSC_START
  87. #define FLASH_NSC_START +0 ALIGN 1024
  88. #endif
  89. #ifndef FLASH_NS_START
  90. #define FLASH_NS_START +0 ALIGN 32768
  91. #endif
  92. #endif
  93. #ifndef QSPI_FLASH_S_START
  94. #define QSPI_FLASH_S_START QSPI_FLASH_START
  95. #endif
  96. #ifndef QSPI_FLASH_NS_START
  97. #define QSPI_FLASH_NS_START +0
  98. #endif
  99. #ifndef OSPI_DEVICE_0_S_START
  100. #define OSPI_DEVICE_0_S_START OSPI_DEVICE_0_START
  101. #endif
  102. #ifndef OSPI_DEVICE_0_NS_START
  103. #define OSPI_DEVICE_0_NS_START +0
  104. #endif
  105. #ifndef OSPI_DEVICE_1_S_START
  106. #define OSPI_DEVICE_1_S_START OSPI_DEVICE_1_START
  107. #endif
  108. #ifndef OSPI_DEVICE_1_NS_START
  109. #define OSPI_DEVICE_1_NS_START +0
  110. #endif
  111. #ifndef SDRAM_S_START
  112. #define SDRAM_S_START SDRAM_START
  113. #endif
  114. #ifndef SDRAM_NS_START
  115. #define SDRAM_NS_START +0
  116. #endif
  117. #ifdef QSPI_FLASH_SIZE
  118. #define QSPI_FLASH_PRV_LENGTH QSPI_FLASH_SIZE
  119. #else
  120. #define QSPI_FLASH_PRV_LENGTH QSPI_FLASH_LENGTH
  121. #endif
  122. #ifdef OSPI_DEVICE_0_SIZE
  123. #define OSPI_DEVICE_0_PRV_LENGTH OSPI_DEVICE_0_SIZE
  124. #else
  125. #define OSPI_DEVICE_0_PRV_LENGTH OSPI_DEVICE_0_LENGTH
  126. #endif
  127. #ifdef OSPI_DEVICE_1_SIZE
  128. #define OSPI_DEVICE_1_PRV_LENGTH OSPI_DEVICE_1_SIZE
  129. #else
  130. #define OSPI_DEVICE_1_PRV_LENGTH OSPI_DEVICE_1_LENGTH
  131. #endif
  132. #define OPTION_SETTING_NS_OFFSET 0x80
  133. LOAD_REGION_FLASH FLASH_ORIGIN ALIGN 0x80 LIMITED_FLASH_LENGTH
  134. {
  135. __tz_FLASH_S +0 EMPTY 0
  136. {
  137. }
  138. VECTORS +0 FIXED PADVALUE 0xFFFFFFFF ; maximum of 256 exceptions (256*4 bytes == 0x400)
  139. {
  140. *(.fixed_vectors, +FIRST)
  141. *(.application_vectors)
  142. }
  143. #if (OPTION_SETTING_LENGTH == 0) && (FLASH_ORIGIN == FLASH_START)
  144. /* MCUs with the OPTION_SETTING region do not use the ROM registers at 0x400. */
  145. VECTORS_FILL +0 FIXED FILL 0xFFFFFFFF (0x400 - ImageLength(VECTORS))
  146. {
  147. }
  148. ROM_REGISTERS FLASH_START+0x400 FIXED PADVALUE 0xFFFFFFFF
  149. {
  150. bsp_rom_registers.o (.rom_registers)
  151. }
  152. ROM_REGISTERS_FILL +0 FIXED FILL 0xFFFFFFFF (0x100 - ImageLength(ROM_REGISTERS))
  153. {
  154. }
  155. #endif
  156. MCUBOOT_SCE9_KEY +0 FIXED
  157. {
  158. *(.mcuboot_sce9_key)
  159. }
  160. INIT_ARRAY +0 FIXED
  161. {
  162. *(.init_array)
  163. }
  164. USB_DESC_FS +0 FIXED
  165. {
  166. *(.usb_device_desc_fs*)
  167. *(.usb_config_desc_fs*)
  168. *(.usb_interface_desc_fs*)
  169. }
  170. RO_CODE_DATA +0 FIXED
  171. {
  172. *(.text*,.rodata*,.constdata*)
  173. .ANY(+RO)
  174. }
  175. __tz_RAM_S RAM_S_START EMPTY 0
  176. {
  177. }
  178. DTC_VECTOR_TABLE RAM_START UNINIT NOCOMPRESS RAM_LENGTH
  179. {
  180. ; If DTC is used, put the DTC vector table at the start of SRAM.
  181. ; This avoids memory holes due to 1K alignment required by it.
  182. *(.bss.fsp_dtc_vector_table)
  183. }
  184. DATA +0 NOCOMPRESS
  185. {
  186. ; Do not use *(.data*) because it will place data meant for .data_flash in this section.
  187. *(.data.*)
  188. *(.data)
  189. *(.code_in_ram)
  190. #if !__RESERVE_NS_RAM
  191. *(.ns_buffer*)
  192. #endif
  193. .ANY(+RW)
  194. }
  195. BSS +0 NOCOMPRESS
  196. {
  197. *(+ZI)
  198. }
  199. NOINIT +0 UNINIT NOCOMPRESS
  200. {
  201. *(.bss.noinit)
  202. }
  203. ARM_LIB_HEAP +0 ALIGN 8 UNINIT NOCOMPRESS
  204. {
  205. *(.bss.heap)
  206. }
  207. ; ARM_LIB_STACK is not used in FSP, but it must be in the scatter file to avoid a linker error
  208. ARM_LIB_STACK +0 ALIGN 8 UNINIT NOCOMPRESS EMPTY 0
  209. {
  210. }
  211. STACK +0 ALIGN 8 UNINIT NOCOMPRESS
  212. {
  213. *(.bss.stack)
  214. *(.bss.stack.thread)
  215. }
  216. /* This is the end of RAM used in the application. */
  217. RAM_END +0 EMPTY 4
  218. {
  219. }
  220. ; Support for OctaRAM
  221. OSPI_DEVICE_0_NO_LOAD OSPI_DEVICE_0_START UNINIT NOCOMPRESS
  222. {
  223. *(.ospi_device_0_no_load*)
  224. }
  225. ; Support for OctaRAM
  226. OSPI_DEVICE_1_NO_LOAD OSPI_DEVICE_1_START UNINIT NOCOMPRESS
  227. {
  228. *(.ospi_device_1_no_load*)
  229. }
  230. __tz_RAM_C RAM_NSC_START EMPTY 0
  231. {
  232. }
  233. __tz_RAM_N RAM_NS_START EMPTY 0
  234. {
  235. }
  236. #ifdef FLASH_BOOTLOADER_LENGTH
  237. __bl_FLASH_IMAGE_START BL_FLASH_IMAGE_START OVERLAY UNINIT 4
  238. {
  239. *(.bl_boundary.bl_flash_image_start)
  240. }
  241. #if FLASH_APPLICATION_NS_LENGTH == 0
  242. __bl_FLASH_IMAGE_END BL_FLASH_IMAGE_END OVERLAY UNINIT 4
  243. {
  244. *(.bl_boundary.bl_flash_image_end)
  245. }
  246. #else
  247. __bl_FLASH_NS_START BL_FLASH_NS_START OVERLAY UNINIT 4
  248. {
  249. *(.bl_boundary.bl_flash_ns_start)
  250. }
  251. __bl_FLASH_NSC_START BL_FLASH_NSC_START OVERLAY UNINIT 4
  252. {
  253. *(.bl_boundary.bl_flash_nsc_start)
  254. }
  255. __bl_FLASH_NS_IMAGE_START BL_FLASH_NS_IMAGE_START OVERLAY UNINIT 4
  256. {
  257. *(.bl_boundary.bl_flash_ns_image_start)
  258. }
  259. __bln_FLASH_IMAGE_START BLN_FLASH_IMAGE_START OVERLAY UNINIT 4
  260. {
  261. *(.bl_boundary.bln_flash_image_start)
  262. }
  263. __bln_FLASH_IMAGE_END BLN_FLASH_IMAGE_END OVERLAY UNINIT 4
  264. {
  265. *(.bl_boundary.bln_flash_image_end)
  266. }
  267. __bl_RAM_NS_START BL_RAM_NS_START OVERLAY UNINIT 4
  268. {
  269. *(.bl_boundary.bl_ram_ns_start)
  270. }
  271. __bl_RAM_NSC_START BL_RAM_NSC_START OVERLAY UNINIT 4
  272. {
  273. *(.bl_boundary.bl_ram_nsc_start)
  274. }
  275. #endif
  276. #endif
  277. #if __RESERVE_NS_RAM
  278. RAM_NS_BUFFER RAM_NS_BUFFER_START
  279. {
  280. *(.ns_buffer*)
  281. }
  282. #endif
  283. RAM_LIMIT RAM_START+RAM_LENGTH EMPTY 4
  284. {
  285. }
  286. }
  287. LOAD_REGION_NSC_FLASH FLASH_NSC_START
  288. {
  289. __tz_FLASH_C FLASH_NSC_START EMPTY 0
  290. {
  291. }
  292. EXEC_NSCR FLASH_NSC_START FIXED
  293. {
  294. *(Veneer$$CMSE)
  295. }
  296. __tz_FLASH_N FLASH_NS_START EMPTY 0
  297. {
  298. }
  299. }
  300. #if ID_CODE_LENGTH != 0
  301. LOAD_REGION_ID_CODE ID_CODE_START ID_CODE_LENGTH
  302. {
  303. __tz_ID_CODE_S ID_CODE_START EMPTY 0
  304. {
  305. }
  306. ID_CODE +0 FIXED
  307. {
  308. *(.id_code*)
  309. }
  310. __tz_ID_CODE_N +0 EMPTY 0
  311. {
  312. }
  313. }
  314. #else
  315. LOAD_REGION_ID_CODE ID_CODE_START 4
  316. {
  317. __tz_ID_CODE_S ID_CODE_START EMPTY 0
  318. {
  319. }
  320. __tz_ID_CODE_N +0 EMPTY 0
  321. {
  322. }
  323. }
  324. #endif
  325. #if OPTION_SETTING_LENGTH != 0
  326. LOAD_REGION_OPTION_SETTING OPTION_SETTING_START OPTION_SETTING_LENGTH
  327. {
  328. __tz_OPTION_SETTING_S OPTION_SETTING_START EMPTY 0
  329. {
  330. }
  331. #ifndef PROJECT_NONSECURE
  332. OFS0 OPTION_SETTING_START+0 FIXED
  333. {
  334. *(.option_setting_ofs0)
  335. }
  336. UNUSED_0 (ImageBase(OFS0)+ImageLength(OFS0)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS0) + 0x10 - (ImageBase(OFS0)+ImageLength(OFS0)))
  337. {
  338. }
  339. DUALSEL 0x0100A100+0x10 FIXED
  340. {
  341. *(.option_setting_dualsel)
  342. }
  343. UNUSED_1 (ImageBase(DUALSEL)+ImageLength(DUALSEL)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS0) + 0x34 - (ImageBase(DUALSEL)+ImageLength(DUALSEL)))
  344. {
  345. }
  346. SAS 0x0100A100+0x34 FIXED
  347. {
  348. *(.option_setting_sas)
  349. }
  350. UNUSED_2 (ImageBase(SAS)+ImageLength(SAS)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS0) + 0x80 - (ImageBase(SAS)+ImageLength(SAS)))
  351. {
  352. }
  353. #else
  354. OFS1 0x0100A100+0x80 FIXED
  355. {
  356. *(.option_setting_ofs1)
  357. }
  358. UNUSED_3 (ImageBase(OFS1)+ImageLength(OFS1)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1) + 0x10 - (ImageBase(OFS1)+ImageLength(OFS1)))
  359. {
  360. }
  361. BANKSEL 0x0100A100+0x90 FIXED
  362. {
  363. *(.option_setting_banksel)
  364. }
  365. UNUSED_4 (ImageBase(BANKSEL)+ImageLength(BANKSEL)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1) + 0x40 - (ImageBase(BANKSEL)+ImageLength(BANKSEL)))
  366. {
  367. }
  368. BPS 0x0100A100+0xC0 FIXED
  369. {
  370. *(.option_setting_bps0)
  371. *(.option_setting_bps1)
  372. *(.option_setting_bps2)
  373. }
  374. UNUSED_5 (ImageBase(BPS)+ImageLength(BPS)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1) + 0x60 - (ImageBase(BPS)+ImageLength(BPS)))
  375. {
  376. }
  377. PBPS 0x0100A100+0xE0 FIXED
  378. {
  379. *(.option_setting_pbps0)
  380. *(.option_setting_pbps1)
  381. *(.option_setting_pbps2)
  382. }
  383. UNUSED_6 (ImageBase(PBPS)+ImageLength(PBPS)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1) + 0x80 - (ImageBase(PBPS)+ImageLength(PBPS)))
  384. {
  385. }
  386. #endif
  387. __tz_OPTION_SETTING_N OPTION_SETTING_START + OPTION_SETTING_NS_OFFSET EMPTY 0
  388. {
  389. }
  390. }
  391. #if OPTION_SETTING_S_LENGTH != 0
  392. LOAD_REGION_OPTION_SETTING_S OPTION_SETTING_S_START OPTION_SETTING_S_LENGTH
  393. {
  394. __tz_OPTION_SETTING_S_S OPTION_SETTING_S_START EMPTY 0
  395. {
  396. }
  397. #ifndef PROJECT_NONSECURE
  398. OFS1_SEC OPTION_SETTING_S_START+0 FIXED
  399. {
  400. *(.option_setting_ofs1_sec)
  401. }
  402. UNUSED_7 (ImageBase(OFS1_SEC)+ImageLength(OFS1_SEC)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1_SEC) + 0x10 - (ImageBase(OFS1_SEC)+ImageLength(OFS1_SEC)))
  403. {
  404. }
  405. BANKSEL_SEC OPTION_SETTING_S_START+0x10 FIXED
  406. {
  407. *(.option_setting_banksel_sec)
  408. }
  409. UNUSED_8 (ImageBase(BANKSEL_SEC)+ImageLength(BANKSEL_SEC)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1_SEC) + 0x40 - (ImageBase(BANKSEL_SEC)+ImageLength(BANKSEL_SEC)))
  410. {
  411. }
  412. BPS_SEC OPTION_SETTING_S_START+0x40 FIXED
  413. {
  414. *(.option_setting_bps_sec0)
  415. *(.option_setting_bps_sec1)
  416. *(.option_setting_bps_sec2)
  417. }
  418. UNUSED_9 (ImageBase(BPS_SEC)+ImageLength(BPS_SEC)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1_SEC) + 0x60 - (ImageBase(BPS_SEC)+ImageLength(BPS_SEC)))
  419. {
  420. }
  421. PBPS_SEC OPTION_SETTING_S_START+0x60 FIXED
  422. {
  423. *(.option_setting_pbps_sec0)
  424. *(.option_setting_pbps_sec1)
  425. *(.option_setting_pbps_sec2)
  426. }
  427. UNUSED_10 (ImageBase(PBPS_SEC)+ImageLength(PBPS_SEC)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1_SEC) + 0x80 - (ImageBase(PBPS_SEC)+ImageLength(PBPS_SEC)))
  428. {
  429. }
  430. OFS1_SEL OPTION_SETTING_S_START+0x80 FIXED
  431. {
  432. *(.option_setting_ofs1_sel)
  433. }
  434. UNUSED_11 (ImageBase(OFS1_SEL)+ImageLength(OFS1_SEL)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1_SEC) + 0x90 - (ImageBase(OFS1_SEL)+ImageLength(OFS1_SEL)))
  435. {
  436. }
  437. BANKSEL_SEL OPTION_SETTING_S_START+0x90 FIXED
  438. {
  439. *(.option_setting_banksel_sel)
  440. }
  441. UNUSED_12 (ImageBase(BANKSEL_SEL)+ImageLength(BANKSEL_SEL)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1_SEC) + 0xC0 - (ImageBase(BANKSEL_SEL)+ImageLength(BANKSEL_SEL)))
  442. {
  443. }
  444. BPS_SEL OPTION_SETTING_S_START+0xC0 FIXED
  445. {
  446. *(.option_setting_bps_sel0)
  447. *(.option_setting_bps_sel1)
  448. *(.option_setting_bps_sel2)
  449. }
  450. UNUSED_13 (ImageBase(BPS_SEL)+ImageLength(BPS_SEL)) FIXED FILL 0xFFFFFFFF (ImageBase(OFS1_SEC) + 0x100 - (ImageBase(BPS_SEL)+ImageLength(BPS_SEL)))
  451. {
  452. }
  453. #endif
  454. __tz_OPTION_SETTING_S_N +0 EMPTY 0
  455. {
  456. }
  457. }
  458. #endif
  459. #endif
  460. LOAD_REGION_DATA_FLASH DATA_FLASH_START DATA_FLASH_LENGTH
  461. {
  462. __tz_DATA_FLASH_S DATA_FLASH_S_START EMPTY 0
  463. {
  464. }
  465. DATA_FLASH +0 FIXED
  466. {
  467. *(.data_flash*)
  468. }
  469. __tz_DATA_FLASH_N DATA_FLASH_NS_START EMPTY 0
  470. {
  471. }
  472. }
  473. LOAD_REGION_QSPI_FLASH QSPI_FLASH_START QSPI_FLASH_PRV_LENGTH
  474. {
  475. __tz_QSPI_FLASH_S QSPI_FLASH_S_START EMPTY 0
  476. {
  477. }
  478. QSPI_FLASH +0 FIXED
  479. {
  480. *(.qspi_flash*)
  481. *(.code_in_qspi*)
  482. }
  483. __tz_QSPI_FLASH_N QSPI_FLASH_NS_START EMPTY 0
  484. {
  485. }
  486. }
  487. LOAD_REGION_OSPI_DEVICE_0 OSPI_DEVICE_0_START OSPI_DEVICE_0_PRV_LENGTH
  488. {
  489. __tz_OSPI_DEVICE_0_S OSPI_DEVICE_0_S_START EMPTY 0
  490. {
  491. }
  492. OSPI_DEVICE_0 +0 FIXED
  493. {
  494. *(.ospi_device_0*)
  495. *(.code_in_ospi_device_0*)
  496. }
  497. __tz_OSPI_DEVICE_0_N OSPI_DEVICE_0_NS_START EMPTY 0
  498. {
  499. }
  500. }
  501. LOAD_REGION_OSPI_DEVICE_1 OSPI_DEVICE_1_START OSPI_DEVICE_1_PRV_LENGTH
  502. {
  503. __tz_OSPI_DEVICE_1_S OSPI_DEVICE_1_S_START EMPTY 0
  504. {
  505. }
  506. OSPI_DEVICE_1 +0 FIXED
  507. {
  508. *(.ospi_device_1*)
  509. *(.code_in_ospi_device_1*)
  510. }
  511. __tz_OSPI_DEVICE_1_N OSPI_DEVICE_1_NS_START EMPTY 0
  512. {
  513. }
  514. }
  515. LOAD_REGION_SDRAM SDRAM_START SDRAM_LENGTH
  516. {
  517. __tz_SDRAM_S SDRAM_S_START EMPTY 0
  518. {
  519. }
  520. SDRAM +0 FIXED
  521. {
  522. *(.sdram*)
  523. *(.frame*)
  524. }
  525. __tz_SDRAM_N SDRAM_NS_START EMPTY 0
  526. {
  527. }
  528. }