elf32xtensa.xbn 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523
  1. /* This linker script generated from xt-genldscripts.tpp for LSP C:\Users\DELL\workspace\CSI_DSP_FW\LSP\min-rt_core0_main_stack_tcm1 */
  2. /* Linker Script for ld -N */
  3. MEMORY
  4. {
  5. sram0_seg : org = 0x20000000, len = 0x1000
  6. sram1_seg : org = 0x20001000, len = 0x1FF000
  7. sram2_seg : org = 0x20200000, len = 0x0
  8. sram3_seg : org = 0x20240000, len = 0x0
  9. dram0_0_seg : org = 0xE0180000, len = 0x2800
  10. dram1_0_seg : org = 0xE01A0000, len = 0x2800
  11. local_sram_0_seg : org = 0xFFA00000, len = 0x180000
  12. }
  13. PHDRS
  14. {
  15. sram0_phdr PT_LOAD;
  16. sram1_phdr PT_LOAD;
  17. sram1_bss_phdr PT_LOAD;
  18. sram2_phdr PT_LOAD;
  19. sram2_bss_phdr PT_LOAD;
  20. sram3_phdr PT_LOAD;
  21. sram3_bss_phdr PT_LOAD;
  22. dram0_0_phdr PT_LOAD;
  23. dram0_0_bss_phdr PT_LOAD;
  24. dram1_0_phdr PT_LOAD;
  25. dram1_0_bss_phdr PT_LOAD;
  26. local_sram_0_phdr PT_LOAD;
  27. local_sram_0_bss_phdr PT_LOAD;
  28. }
  29. /* Default entry point: */
  30. ENTRY(_ResetVector)
  31. /* Memory boundary addresses: */
  32. _memmap_mem_sram_start = 0x20000000;
  33. _memmap_mem_sram_end = 0x20280000;
  34. _memmap_mem_dram0_start = 0xe0180000;
  35. _memmap_mem_dram0_end = 0xe01a0000;
  36. _memmap_mem_dram1_start = 0xe01a0000;
  37. _memmap_mem_dram1_end = 0xe01c0000;
  38. _memmap_mem_local_sram_start = 0xffa00000;
  39. _memmap_mem_local_sram_end = 0xffb80000;
  40. /* Memory segment boundary addresses: */
  41. _memmap_seg_sram0_start = 0x20000000;
  42. _memmap_seg_sram0_max = 0x20001000;
  43. _memmap_seg_sram1_start = 0x20001000;
  44. _memmap_seg_sram1_max = 0x20200000;
  45. _memmap_seg_dram0_0_start = 0xe0180000;
  46. _memmap_seg_dram0_0_max = 0xe0182800;
  47. _memmap_seg_dram1_0_start = 0xe01a0000;
  48. _memmap_seg_dram1_0_max = 0xe01a2800;
  49. _memmap_seg_local_sram_0_start = 0xffa00000;
  50. _memmap_seg_local_sram_0_max = 0xffb80000;
  51. _rom_store_table = 0;
  52. PROVIDE(_memmap_reset_vector = 0x20000000);
  53. PROVIDE(_memmap_vecbase_reset = 0x20000000);
  54. /* Various memory-map dependent cache attribute settings: */
  55. _memmap_cacheattr_wb_base = 0x10000010;
  56. _memmap_cacheattr_wt_base = 0x30000030;
  57. _memmap_cacheattr_bp_base = 0x40000040;
  58. _memmap_cacheattr_unused_mask = 0x0FFFFF0F;
  59. _memmap_cacheattr_wb_trapnull = 0x14444410;
  60. _memmap_cacheattr_wba_trapnull = 0x14444410;
  61. _memmap_cacheattr_wbna_trapnull = 0x24444420;
  62. _memmap_cacheattr_wt_trapnull = 0x34444430;
  63. _memmap_cacheattr_bp_trapnull = 0x44444440;
  64. _memmap_cacheattr_wb_strict = 0x10000010;
  65. _memmap_cacheattr_wt_strict = 0x30000030;
  66. _memmap_cacheattr_bp_strict = 0x40000040;
  67. _memmap_cacheattr_wb_allvalid = 0x14444414;
  68. _memmap_cacheattr_wt_allvalid = 0x34444434;
  69. _memmap_cacheattr_bp_allvalid = 0x44444444;
  70. _memmap_region_map = 0x00000082;
  71. PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull);
  72. SECTIONS
  73. {
  74. .DispatchVector.text : ALIGN(4)
  75. {
  76. _DispatchVector_text_start = ABSOLUTE(.);
  77. KEEP (*(.DispatchVector.text))
  78. . = ALIGN (4);
  79. _DispatchVector_text_end = ABSOLUTE(.);
  80. } >sram0_seg :sram0_phdr
  81. .ResetVector.text : ALIGN(4)
  82. {
  83. _ResetVector_text_start = ABSOLUTE(.);
  84. *(.ResetVector.text)
  85. . = ALIGN (4);
  86. _ResetVector_text_end = ABSOLUTE(.);
  87. } >sram0_seg :sram0_phdr
  88. .ResetHandler.text : ALIGN(4)
  89. {
  90. _ResetHandler_text_start = ABSOLUTE(.);
  91. *(.ResetHandler.literal .ResetHandler.text)
  92. . = ALIGN (4);
  93. _ResetHandler_text_end = ABSOLUTE(.);
  94. } >sram0_seg :sram0_phdr
  95. .DispatchHandler.text : ALIGN(4)
  96. {
  97. _DispatchHandler_text_start = ABSOLUTE(.);
  98. *(.DispatchHandler.literal .DispatchHandler.text)
  99. . = ALIGN (4);
  100. _DispatchHandler_text_end = ABSOLUTE(.);
  101. _memmap_seg_sram0_end = ALIGN(0x8);
  102. } >sram0_seg :sram0_phdr
  103. .sram.rodata : ALIGN(4)
  104. {
  105. _sram_rodata_start = ABSOLUTE(.);
  106. *(.sram.rodata)
  107. . = ALIGN (4);
  108. _sram_rodata_end = ABSOLUTE(.);
  109. } >sram1_seg :sram1_phdr
  110. .clib.rodata : ALIGN(4)
  111. {
  112. _clib_rodata_start = ABSOLUTE(.);
  113. *(.clib.rodata)
  114. . = ALIGN (4);
  115. _clib_rodata_end = ABSOLUTE(.);
  116. } >sram1_seg :sram1_phdr
  117. .rtos.rodata : ALIGN(4)
  118. {
  119. _rtos_rodata_start = ABSOLUTE(.);
  120. *(.rtos.rodata)
  121. . = ALIGN (4);
  122. _rtos_rodata_end = ABSOLUTE(.);
  123. } >sram1_seg :sram1_phdr
  124. .rodata : ALIGN(4)
  125. {
  126. _rodata_start = ABSOLUTE(.);
  127. *(.rodata)
  128. *(SORT(.rodata.sort.*))
  129. KEEP (*(SORT(.rodata.keepsort.*) .rodata.keep.*))
  130. *(.rodata.*)
  131. *(.gnu.linkonce.r.*)
  132. *(.rodata1)
  133. __XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
  134. KEEP (*(.xt_except_table))
  135. KEEP (*(.gcc_except_table))
  136. *(.gnu.linkonce.e.*)
  137. *(.gnu.version_r)
  138. KEEP (*(.eh_frame))
  139. /* C++ constructor and destructor tables, properly ordered: */
  140. KEEP (*crtbegin.o(.ctors))
  141. KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
  142. KEEP (*(SORT(.ctors.*)))
  143. KEEP (*(.ctors))
  144. KEEP (*crtbegin.o(.dtors))
  145. KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
  146. KEEP (*(SORT(.dtors.*)))
  147. KEEP (*(.dtors))
  148. /* C++ exception handlers table: */
  149. __XT_EXCEPTION_DESCS__ = ABSOLUTE(.);
  150. *(.xt_except_desc)
  151. *(.gnu.linkonce.h.*)
  152. __XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
  153. *(.xt_except_desc_end)
  154. *(.dynamic)
  155. *(.gnu.version_d)
  156. . = ALIGN(4); /* this table MUST be 4-byte aligned */
  157. _bss_table_start = ABSOLUTE(.);
  158. LONG(_bss_start)
  159. LONG(_bss_end)
  160. LONG(_sram2_bss_start)
  161. LONG(_sram2_bss_end)
  162. LONG(_sram3_bss_start)
  163. LONG(_sram3_bss_end)
  164. LONG(_dram0_bss_start)
  165. LONG(_dram0_bss_end)
  166. LONG(_dram1_bss_start)
  167. LONG(_dram1_bss_end)
  168. LONG(_local_sram_bss_start)
  169. LONG(_local_sram_bss_end)
  170. _bss_table_end = ABSOLUTE(.);
  171. . = ALIGN (4);
  172. _rodata_end = ABSOLUTE(.);
  173. } >sram1_seg :sram1_phdr
  174. .sram.text : ALIGN(4)
  175. {
  176. _sram_text_start = ABSOLUTE(.);
  177. *(.sram.literal .sram.text)
  178. . = ALIGN (4);
  179. _sram_text_end = ABSOLUTE(.);
  180. } >sram1_seg :sram1_phdr
  181. .text : ALIGN(4)
  182. {
  183. _stext = .;
  184. _text_start = ABSOLUTE(.);
  185. *(.entry.text)
  186. *(.init.literal)
  187. KEEP(*(.init))
  188. *(.literal.sort.* SORT(.text.sort.*))
  189. KEEP (*(.literal.keepsort.* SORT(.text.keepsort.*) .literal.keep.* .text.keep.* .literal.*personality* .text.*personality*))
  190. *(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
  191. *(.fini.literal)
  192. KEEP(*(.fini))
  193. *(.gnu.version)
  194. . = ALIGN (4);
  195. _text_end = ABSOLUTE(.);
  196. _etext = .;
  197. } >sram1_seg :sram1_phdr
  198. .clib.text : ALIGN(4)
  199. {
  200. _clib_text_start = ABSOLUTE(.);
  201. *(.clib.literal .clib.text)
  202. . = ALIGN (4);
  203. _clib_text_end = ABSOLUTE(.);
  204. } >sram1_seg :sram1_phdr
  205. .rtos.text : ALIGN(4)
  206. {
  207. _rtos_text_start = ABSOLUTE(.);
  208. *(.rtos.literal .rtos.text)
  209. . = ALIGN (4);
  210. _rtos_text_end = ABSOLUTE(.);
  211. } >sram1_seg :sram1_phdr
  212. .clib.data : ALIGN(4)
  213. {
  214. _clib_data_start = ABSOLUTE(.);
  215. *(.clib.data)
  216. . = ALIGN (4);
  217. _clib_data_end = ABSOLUTE(.);
  218. } >sram1_seg :sram1_phdr
  219. .clib.percpu.data : ALIGN(4)
  220. {
  221. _clib_percpu_data_start = ABSOLUTE(.);
  222. *(.clib.percpu.data)
  223. . = ALIGN (4);
  224. _clib_percpu_data_end = ABSOLUTE(.);
  225. } >sram1_seg :sram1_phdr
  226. .rtos.percpu.data : ALIGN(4)
  227. {
  228. _rtos_percpu_data_start = ABSOLUTE(.);
  229. *(.rtos.percpu.data)
  230. . = ALIGN (4);
  231. _rtos_percpu_data_end = ABSOLUTE(.);
  232. } >sram1_seg :sram1_phdr
  233. .rtos.data : ALIGN(4)
  234. {
  235. _rtos_data_start = ABSOLUTE(.);
  236. *(.rtos.data)
  237. . = ALIGN (4);
  238. _rtos_data_end = ABSOLUTE(.);
  239. } >sram1_seg :sram1_phdr
  240. .sram.data : ALIGN(4)
  241. {
  242. _sram_data_start = ABSOLUTE(.);
  243. *(.sram.data)
  244. . = ALIGN (4);
  245. _sram_data_end = ABSOLUTE(.);
  246. } >sram1_seg :sram1_phdr
  247. .data : ALIGN(4)
  248. {
  249. _data_start = ABSOLUTE(.);
  250. *(.data)
  251. *(SORT(.data.sort.*))
  252. KEEP (*(SORT(.data.keepsort.*) .data.keep.*))
  253. *(.data.*)
  254. *(.gnu.linkonce.d.*)
  255. KEEP(*(.gnu.linkonce.d.*personality*))
  256. *(.data1)
  257. *(.sdata)
  258. *(.sdata.*)
  259. *(.gnu.linkonce.s.*)
  260. *(.sdata2)
  261. *(.sdata2.*)
  262. *(.gnu.linkonce.s2.*)
  263. KEEP(*(.jcr))
  264. *(__llvm_prf_cnts)
  265. *(__llvm_prf_data)
  266. *(__llvm_prf_vnds)
  267. . = ALIGN (4);
  268. _data_end = ABSOLUTE(.);
  269. } >sram1_seg :sram1_phdr
  270. __llvm_prf_names : ALIGN(4)
  271. {
  272. __llvm_prf_names_start = ABSOLUTE(.);
  273. *(__llvm_prf_names)
  274. . = ALIGN (4);
  275. __llvm_prf_names_end = ABSOLUTE(.);
  276. } >sram1_seg :sram1_phdr
  277. .bss (NOLOAD) : ALIGN(8)
  278. {
  279. . = ALIGN (8);
  280. _bss_start = ABSOLUTE(.);
  281. *(.dynsbss)
  282. *(.sbss)
  283. *(.sbss.*)
  284. *(.gnu.linkonce.sb.*)
  285. *(.scommon)
  286. *(.sbss2)
  287. *(.sbss2.*)
  288. *(.gnu.linkonce.sb2.*)
  289. *(.dynbss)
  290. *(.bss)
  291. *(SORT(.bss.sort.*))
  292. KEEP (*(SORT(.bss.keepsort.*) .bss.keep.*))
  293. *(.bss.*)
  294. *(.gnu.linkonce.b.*)
  295. *(COMMON)
  296. *(.clib.bss)
  297. *(.clib.percpu.bss)
  298. *(.rtos.percpu.bss)
  299. *(.rtos.bss)
  300. *(.sram.bss)
  301. *(.debug.bss)
  302. . = ALIGN (8);
  303. _bss_end = ABSOLUTE(.);
  304. _end = ALIGN(0x8);
  305. PROVIDE(end = ALIGN(0x8));
  306. _memmap_seg_sram1_end = ALIGN(0x8);
  307. } >sram1_seg :sram1_bss_phdr
  308. _heap_sentry = 0x20200000;
  309. .sram2.rodata : ALIGN(4)
  310. {
  311. _sram2_rodata_start = ABSOLUTE(.);
  312. *(.sram2.rodata)
  313. . = ALIGN (4);
  314. _sram2_rodata_end = ABSOLUTE(.);
  315. } >sram2_seg :sram2_phdr
  316. .sram2.text : ALIGN(4)
  317. {
  318. _sram2_text_start = ABSOLUTE(.);
  319. *(.sram2.literal .sram2.text)
  320. . = ALIGN (4);
  321. _sram2_text_end = ABSOLUTE(.);
  322. } >sram2_seg :sram2_phdr
  323. .sram2.data : ALIGN(4)
  324. {
  325. _sram2_data_start = ABSOLUTE(.);
  326. *(.sram2.data)
  327. . = ALIGN (4);
  328. _sram2_data_end = ABSOLUTE(.);
  329. } >sram2_seg :sram2_phdr
  330. .sram2.bss (NOLOAD) : ALIGN(8)
  331. {
  332. . = ALIGN (8);
  333. _sram2_bss_start = ABSOLUTE(.);
  334. *(.sram2.bss)
  335. . = ALIGN (8);
  336. _sram2_bss_end = ABSOLUTE(.);
  337. _memmap_seg_sram2_end = ALIGN(0x8);
  338. } >sram2_seg :sram2_bss_phdr
  339. .sram3.rodata : ALIGN(4)
  340. {
  341. _sram3_rodata_start = ABSOLUTE(.);
  342. *(.sram3.rodata)
  343. . = ALIGN (4);
  344. _sram3_rodata_end = ABSOLUTE(.);
  345. } >sram3_seg :sram3_phdr
  346. .sram3.text : ALIGN(4)
  347. {
  348. _sram3_text_start = ABSOLUTE(.);
  349. *(.sram3.literal .sram3.text)
  350. . = ALIGN (4);
  351. _sram3_text_end = ABSOLUTE(.);
  352. } >sram3_seg :sram3_phdr
  353. .sram3.data : ALIGN(4)
  354. {
  355. _sram3_data_start = ABSOLUTE(.);
  356. *(.sram3.data)
  357. . = ALIGN (4);
  358. _sram3_data_end = ABSOLUTE(.);
  359. } >sram3_seg :sram3_phdr
  360. .sram3.bss (NOLOAD) : ALIGN(8)
  361. {
  362. . = ALIGN (8);
  363. _sram3_bss_start = ABSOLUTE(.);
  364. *(.sram3.bss)
  365. . = ALIGN (8);
  366. _sram3_bss_end = ABSOLUTE(.);
  367. _memmap_seg_sram3_end = ALIGN(0x8);
  368. } >sram3_seg :sram3_bss_phdr
  369. _memmap_mem_sram_max = ABSOLUTE(.);
  370. .dram0.rodata : ALIGN(4)
  371. {
  372. _dram0_rodata_start = ABSOLUTE(.);
  373. *(.dram0.rodata)
  374. . = ALIGN (4);
  375. _dram0_rodata_end = ABSOLUTE(.);
  376. } >dram0_0_seg :dram0_0_phdr
  377. .dram0.data : ALIGN(4)
  378. {
  379. _dram0_data_start = ABSOLUTE(.);
  380. *(.dram0.data)
  381. . = ALIGN (4);
  382. _dram0_data_end = ABSOLUTE(.);
  383. } >dram0_0_seg :dram0_0_phdr
  384. .dram0.bss (NOLOAD) : ALIGN(8)
  385. {
  386. . = ALIGN (8);
  387. _dram0_bss_start = ABSOLUTE(.);
  388. *(.dram0.bss)
  389. *(.dram0_user.bss)
  390. . = ALIGN (8);
  391. _dram0_bss_end = ABSOLUTE(.);
  392. _memmap_seg_dram0_0_end = ALIGN(0x8);
  393. } >dram0_0_seg :dram0_0_bss_phdr
  394. _memmap_mem_dram0_max = ABSOLUTE(.);
  395. .dram1.rodata : ALIGN(4)
  396. {
  397. _dram1_rodata_start = ABSOLUTE(.);
  398. *(.dram1.rodata)
  399. . = ALIGN (4);
  400. _dram1_rodata_end = ABSOLUTE(.);
  401. } >dram1_0_seg :dram1_0_phdr
  402. .dram1.data : ALIGN(4)
  403. {
  404. _dram1_data_start = ABSOLUTE(.);
  405. *(.dram1.data)
  406. . = ALIGN (4);
  407. _dram1_data_end = ABSOLUTE(.);
  408. } >dram1_0_seg :dram1_0_phdr
  409. .dram1.bss (NOLOAD) : ALIGN(8)
  410. {
  411. . = ALIGN (8);
  412. _dram1_bss_start = ABSOLUTE(.);
  413. *(.dram1.bss)
  414. *(.dram1_user.bss)
  415. . = ALIGN (8);
  416. _dram1_bss_end = ABSOLUTE(.);
  417. _stack_sentry = ALIGN(0x8);
  418. _memmap_seg_dram1_0_end = ALIGN(0x8);
  419. } >dram1_0_seg :dram1_0_bss_phdr
  420. PROVIDE(__stack = 0xe01a2800);
  421. _memmap_mem_dram1_max = ABSOLUTE(.);
  422. .local_sram.bss (NOLOAD) : ALIGN(8)
  423. {
  424. . = ALIGN (8);
  425. _local_sram_bss_start = ABSOLUTE(.);
  426. *(.local_sram.bss)
  427. . = ALIGN (8);
  428. _local_sram_bss_end = ABSOLUTE(.);
  429. _memmap_seg_local_sram_0_end = ALIGN(0x8);
  430. } >local_sram_0_seg :local_sram_0_bss_phdr
  431. _memmap_mem_local_sram_max = ABSOLUTE(.);
  432. .debug 0 : { *(.debug) }
  433. .line 0 : { *(.line) }
  434. .debug_srcinfo 0 : { *(.debug_srcinfo) }
  435. .debug_sfnames 0 : { *(.debug_sfnames) }
  436. .debug_aranges 0 : { *(.debug_aranges) }
  437. .debug_pubnames 0 : { *(.debug_pubnames) }
  438. .debug_info 0 : { *(.debug_info) }
  439. .debug_abbrev 0 : { *(.debug_abbrev) }
  440. .debug_line 0 : { *(.debug_line) }
  441. .debug_frame 0 : { *(.debug_frame) }
  442. .debug_str 0 : { *(.debug_str) }
  443. .debug_loc 0 : { *(.debug_loc) }
  444. .debug_macinfo 0 : { *(.debug_macinfo) }
  445. .debug_weaknames 0 : { *(.debug_weaknames) }
  446. .debug_funcnames 0 : { *(.debug_funcnames) }
  447. .debug_typenames 0 : { *(.debug_typenames) }
  448. .debug_varnames 0 : { *(.debug_varnames) }
  449. .xt.insn 0 :
  450. {
  451. KEEP (*(.xt.insn))
  452. KEEP (*(.gnu.linkonce.x.*))
  453. }
  454. .xt.prop 0 :
  455. {
  456. KEEP (*(.xt.prop))
  457. KEEP (*(.xt.prop.*))
  458. KEEP (*(.gnu.linkonce.prop.*))
  459. }
  460. .xt.lit 0 :
  461. {
  462. KEEP (*(.xt.lit))
  463. KEEP (*(.xt.lit.*))
  464. KEEP (*(.gnu.linkonce.p.*))
  465. }
  466. .debug.xt.callgraph 0 :
  467. {
  468. KEEP (*(.debug.xt.callgraph .debug.xt.callgraph.* .gnu.linkonce.xt.callgraph.*))
  469. }
  470. }