u-boot-spl.lds 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * (C) Copyright 2002
  4. * Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
  5. */
  6. #include <config.h>
  7. OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
  8. OUTPUT_ARCH(i386)
  9. ENTRY(_start)
  10. SECTIONS
  11. {
  12. #ifndef CONFIG_CMDLINE
  13. /DISCARD/ : { *(.u_boot_list_2_cmd_*) }
  14. #endif
  15. . = CONFIG_SPL_TEXT_BASE; /* Location of bootcode in flash */
  16. __text_start = .;
  17. .text : { *(.text*); }
  18. . = ALIGN(4);
  19. . = ALIGN(4);
  20. .u_boot_list : {
  21. KEEP(*(SORT(.u_boot_list*)));
  22. }
  23. . = ALIGN(4);
  24. .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
  25. . = ALIGN(4);
  26. .data : { *(.data*) }
  27. . = ALIGN(4);
  28. __data_end = .;
  29. __init_end = .;
  30. _image_binary_end = .;
  31. . = 0x120000;
  32. .bss (OVERLAY) : {
  33. __bss_start = .;
  34. *(.bss*)
  35. *(COM*)
  36. . = ALIGN(4);
  37. __bss_end = .;
  38. }
  39. __bss_size = __bss_end - __bss_start;
  40. /DISCARD/ : { *(.dynstr*) }
  41. /DISCARD/ : { *(.dynamic*) }
  42. /DISCARD/ : { *(.plt*) }
  43. /DISCARD/ : { *(.interp*) }
  44. /DISCARD/ : { *(.gnu*) }
  45. #ifdef CONFIG_SPL_X86_16BIT_INIT
  46. /*
  47. * The following expressions place the 16-bit Real-Mode code and
  48. * Reset Vector at the end of the Flash ROM
  49. */
  50. . = START_16 - RESET_SEG_START;
  51. .start16 : AT (START_16) {
  52. KEEP(*(.start16));
  53. }
  54. . = RESET_VEC_LOC - RESET_SEG_START;
  55. .resetvec : AT (RESET_VEC_LOC) {
  56. KEEP(*(.resetvec));
  57. }
  58. #endif
  59. }