zynqmp-r5.ld 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. MEMORY
  2. {
  3. psu_ocm_ram_0_MEM_0 : ORIGIN = 0xFFFC0000, LENGTH = 0x40000
  4. psu_qspi_linear_0_MEM_0 : ORIGIN = 0xC0000000, LENGTH = 0x20000000
  5. psu_r5_0_atcm_MEM_0 : ORIGIN = 0x0, LENGTH = 0x10000
  6. psu_r5_0_btcm_MEM_0 : ORIGIN = 0x20000, LENGTH = 0x10000
  7. psu_r5_ddr_0_MEM_0 : ORIGIN = 0x100000, LENGTH = 0x7FE00000
  8. psu_r5_tcm_ram_0_MEM_0 : ORIGIN = 0x0, LENGTH = 0x40000
  9. }
  10. ENTRY(_reset)
  11. OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
  12. OUTPUT_ARCH(arm)
  13. SECTIONS
  14. {
  15. .vectors :
  16. {
  17. KEEP (*(.vectors))
  18. *(.boot)
  19. *(.text.isr)
  20. } > psu_r5_0_atcm_MEM_0
  21. __text_start = .;
  22. .text :
  23. {
  24. *(.text)
  25. *(.text.*)
  26. /* section information for utest */
  27. . = ALIGN(4);
  28. __rt_utest_tc_tab_start = .;
  29. KEEP(*(UtestTcTab))
  30. __rt_utest_tc_tab_end = .;
  31. /* section information for finsh shell */
  32. . = ALIGN(4);
  33. __fsymtab_start = .;
  34. KEEP(*(FSymTab))
  35. __fsymtab_end = .;
  36. . = ALIGN(4);
  37. __vsymtab_start = .;
  38. KEEP(*(VSymTab))
  39. __vsymtab_end = .;
  40. . = ALIGN(4);
  41. /* section information for modules */
  42. . = ALIGN(4);
  43. __rtmsymtab_start = .;
  44. KEEP(*(RTMSymTab))
  45. __rtmsymtab_end = .;
  46. /* section information for initialization */
  47. . = ALIGN(4);
  48. __rt_init_start = .;
  49. KEEP(*(SORT(.rti_fn*)))
  50. __rt_init_end = .;
  51. } > psu_r5_ddr_0_MEM_0 = 0
  52. __text_end = .;
  53. __exidx_start = .;
  54. .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } > psu_r5_ddr_0_MEM_0
  55. __exidx_end = .;
  56. .note-ABI-tag :
  57. {
  58. KEEP (*(.note-ABI-tag))
  59. } > psu_r5_ddr_0_MEM_0
  60. .note.gnu.build-id :
  61. {
  62. KEEP (*(.note.gnu.build-id))
  63. } > psu_r5_ddr_0_MEM_0
  64. __rodata_start = .;
  65. .rodata : { *(.rodata) *(.rodata.*) } > psu_r5_ddr_0_MEM_0
  66. __rodata_end = .;
  67. . = ALIGN(4);
  68. .ctors :
  69. {
  70. PROVIDE(__ctors_start__ = .);
  71. /* new GCC version uses .init_array */
  72. KEEP(*(SORT(.init_array.*)))
  73. KEEP(*(.init_array))
  74. PROVIDE(__ctors_end__ = .);
  75. } > psu_r5_ddr_0_MEM_0
  76. .dtors :
  77. {
  78. PROVIDE(__dtors_start__ = .);
  79. KEEP(*(SORT(.dtors.*)))
  80. KEEP(*(.dtors))
  81. PROVIDE(__dtors_end__ = .);
  82. } > psu_r5_ddr_0_MEM_0
  83. . = ALIGN(4);
  84. __data_start = .;
  85. .data :
  86. {
  87. *(.data)
  88. *(.data.*)
  89. } > psu_r5_ddr_0_MEM_0
  90. __data_end = .;
  91. . = ALIGN(4);
  92. __bss_start = .;
  93. .bss :
  94. {
  95. *(.bss)
  96. *(.bss.*)
  97. *(COMMON)
  98. . = ALIGN(4);
  99. } > psu_r5_ddr_0_MEM_0
  100. . = ALIGN(4);
  101. __bss_end = .;
  102. /* Stabs debugging sections. */
  103. .stab 0 : { *(.stab) }
  104. .stabstr 0 : { *(.stabstr) }
  105. .stab.excl 0 : { *(.stab.excl) }
  106. .stab.exclstr 0 : { *(.stab.exclstr) }
  107. .stab.index 0 : { *(.stab.index) }
  108. .stab.indexstr 0 : { *(.stab.indexstr) }
  109. .comment 0 : { *(.comment) }
  110. _end = .;
  111. }