vmlinux.lds.S 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #include <asm-generic/vmlinux.lds.h>
  3. #include <asm/page.h>
  4. #include <asm/thread_info.h>
  5. #define ROMTOP 0x000000
  6. #define RAMTOP 0x400000
  7. jiffies = jiffies_64 + 4;
  8. ENTRY(_start)
  9. SECTIONS
  10. {
  11. #if defined(CONFIG_ROMKERNEL)
  12. . = ROMTOP;
  13. .vectors :
  14. {
  15. _vector = . ;
  16. *(.vector*)
  17. }
  18. #else
  19. . = RAMTOP;
  20. _ramstart = .;
  21. . = . + CONFIG_OFFSET;
  22. #endif
  23. _text = .;
  24. HEAD_TEXT_SECTION
  25. .text : {
  26. _stext = . ;
  27. TEXT_TEXT
  28. SCHED_TEXT
  29. CPUIDLE_TEXT
  30. LOCK_TEXT
  31. #if defined(CONFIG_ROMKERNEL)
  32. *(.int_redirect)
  33. #endif
  34. _etext = . ;
  35. }
  36. EXCEPTION_TABLE(16)
  37. NOTES
  38. RO_DATA_SECTION(4)
  39. ROMEND = .;
  40. #if defined(CONFIG_ROMKERNEL)
  41. . = RAMTOP;
  42. _ramstart = .;
  43. #define ADDR(x) ROMEND
  44. #endif
  45. _sdata = . ;
  46. __data_start = . ;
  47. RW_DATA_SECTION(0, PAGE_SIZE, THREAD_SIZE)
  48. #if defined(CONFIG_ROMKERNEL)
  49. #undef ADDR
  50. #endif
  51. . = ALIGN(0x4) ;
  52. __init_begin = .;
  53. INIT_TEXT_SECTION(4)
  54. INIT_DATA_SECTION(4)
  55. SECURITY_INIT
  56. __init_end = .;
  57. _edata = . ;
  58. _begin_data = LOADADDR(.data);
  59. _sbss =.;
  60. BSS_SECTION(0, 0 ,0)
  61. _ebss =.;
  62. _ramend = .;
  63. _end = .;
  64. DISCARDS
  65. }