u-boot.lds 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * Copyright (c) 2004-2008 Texas Instruments
  4. *
  5. * (C) Copyright 2002
  6. * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
  7. */
  8. OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
  9. OUTPUT_ARCH(arm)
  10. ENTRY(_start)
  11. SECTIONS
  12. {
  13. . = 0x00000000;
  14. . = ALIGN(4);
  15. .text :
  16. {
  17. *(.__image_copy_start)
  18. *(.vectors)
  19. CPUDIR/start.o (.text*)
  20. *(.text*)
  21. }
  22. . = ALIGN(4);
  23. .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
  24. . = ALIGN(4);
  25. .data : {
  26. *(.data*)
  27. }
  28. . = ALIGN(4);
  29. . = .;
  30. . = ALIGN(4);
  31. .u_boot_list : {
  32. KEEP(*(SORT(.u_boot_list*)));
  33. }
  34. . = ALIGN(4);
  35. .__efi_runtime_start : {
  36. *(.__efi_runtime_start)
  37. }
  38. .efi_runtime : {
  39. *(efi_runtime_text)
  40. *(efi_runtime_data)
  41. }
  42. .__efi_runtime_stop : {
  43. *(.__efi_runtime_stop)
  44. }
  45. .efi_runtime_rel_start :
  46. {
  47. *(.__efi_runtime_rel_start)
  48. }
  49. .efi_runtime_rel : {
  50. *(.relefi_runtime_text)
  51. *(.relefi_runtime_data)
  52. }
  53. .efi_runtime_rel_stop :
  54. {
  55. *(.__efi_runtime_rel_stop)
  56. }
  57. . = ALIGN(4);
  58. .image_copy_end :
  59. {
  60. *(.__image_copy_end)
  61. }
  62. .rel_dyn_start :
  63. {
  64. *(.__rel_dyn_start)
  65. }
  66. .rel.dyn : {
  67. *(.rel*)
  68. }
  69. .rel_dyn_end :
  70. {
  71. *(.__rel_dyn_end)
  72. }
  73. .end :
  74. {
  75. *(.__end)
  76. }
  77. _image_binary_end = .;
  78. /*
  79. * Compiler-generated __bss_start and __bss_end, see arch/arm/lib/bss.c
  80. * __bss_base and __bss_limit are for linker only (overlay ordering)
  81. */
  82. .bss_start __rel_dyn_start (OVERLAY) : {
  83. KEEP(*(.__bss_start));
  84. __bss_base = .;
  85. }
  86. .bss __bss_base (OVERLAY) : {
  87. *(.bss*)
  88. . = ALIGN(4);
  89. __bss_limit = .;
  90. }
  91. .bss_end __bss_limit (OVERLAY) : {
  92. KEEP(*(.__bss_end));
  93. }
  94. /*
  95. * Zynq needs to discard these sections because the user
  96. * is expected to pass this image on to tools for boot.bin
  97. * generation that require them to be dropped.
  98. */
  99. /DISCARD/ : { *(.dynsym) }
  100. /DISCARD/ : { *(.dynbss*) }
  101. /DISCARD/ : { *(.dynstr*) }
  102. /DISCARD/ : { *(.dynamic*) }
  103. /DISCARD/ : { *(.plt*) }
  104. /DISCARD/ : { *(.interp*) }
  105. /DISCARD/ : { *(.gnu*) }
  106. /DISCARD/ : { *(.ARM.exidx*) }
  107. /DISCARD/ : { *(.gnu.linkonce.armexidx.*) }
  108. }