Advertisement
Guest User

Untitled

a guest
Jul 13th, 2022
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.62 KB | None | 0 0
  1. OUTPUT_ARCH(riscv)
  2. ENTRY(stext)
  3. /*jiffies = jiffies_64;*/
  4. PHDRS {
  5. text PT_LOAD FLAGS(5); /* R_E */
  6. data PT_LOAD FLAGS(7); /* RWE */
  7. user PT_LOAD FLAGS(7); /* RWE */
  8. data.init PT_LOAD FLAGS(7); /* RWE */
  9. note PT_NOTE FLAGS(4); /* R__ */
  10. }
  11. SECTIONS
  12. {
  13. /*
  14. * XXX: The linker does not define how output sections are
  15. * assigned to input sections when there are multiple statements
  16. * matching the same input section name. There is no documented
  17. * order of matching.
  18. */
  19. /*
  20. /DISCARD/ : {
  21. ARM_EXIT_DISCARD(EXIT_TEXT)
  22. ARM_EXIT_DISCARD(EXIT_DATA)
  23. EXIT_CALL
  24. *(.discard)
  25. *(.discard.*)
  26. }
  27. */
  28. . = (((-1)) - 0x80000000 + 1) ;
  29. /*
  30. .head.text : {
  31.  
  32. HEAD_TEXT
  33. }
  34. */
  35. _text = .;
  36. .text : AT(ADDR(.text) - (((-1)) - 0x80000000 + 1)) { /* Real text segment */
  37. *(.bootstrap.text)
  38. _stext = .; /* Text and read-only data */
  39. __exception_text_start = .;
  40. *(.exception.text)
  41. __exception_text_end = .;
  42. /* IRQENTRY_TEXT*/
  43. . = ALIGN(8); *(.text) *(.text.init.refok)
  44. . = ALIGN(8); __sched_text_start = .; *(.sched.text) __sched_text_end = .;
  45. . = ALIGN(8); __lock_text_start = .; *(.spinlock.text) __lock_text_end = .;
  46. /* HYPERVISOR_TEXT */
  47. *(.fixup)
  48. *(.gnu.warning)
  49. . = ALIGN(16);
  50. *(.got) /* Global offset table */
  51. }
  52. . = ALIGN(((1 << (12)))); .rodata : AT(ADDR(.rodata) - (((-1)) - 0x80000000 + 1)) { __start_rodata = .; *(.rodata) *(.rodata.*) *(__vermagic) } .rodata1 : AT(ADDR(.rodata1) - (((-1)) - 0x80000000 + 1)) { *(.rodata1) } .pci_fixup : AT(ADDR(.pci_fixup) - (((-1)) - 0x80000000 + 1)) { __start_pci_fixups_early = .; *(.pci_fixup_early) __end_pci_fixups_early = .; __start_pci_fixups_header = .; *(.pci_fixup_header) __end_pci_fixups_header = .; __start_pci_fixups_final = .; *(.pci_fixup_final) __end_pci_fixups_final = .; __start_pci_fixups_enable = .; *(.pci_fixup_enable) __end_pci_fixups_enable = .; __start_pci_fixups_resume = .; *(.pci_fixup_resume) __end_pci_fixups_resume = .; __start_pci_fixups_resume_early = .; *(.pci_fixup_resume_early) __end_pci_fixups_resume_early = .; __start_pci_fixups_suspend = .; *(.pci_fixup_suspend) __end_pci_fixups_suspend = .; } .rio_route : AT(ADDR(.rio_route) - (((-1)) - 0x80000000 + 1)) { __start_rio_route_ops = .; *(.rio_route_ops) __end_rio_route_ops = .; } __ksymtab : AT(ADDR(__ksymtab) - (((-1)) - 0x80000000 + 1)) { __start___ksymtab = .; *(__ksymtab) __stop___ksymtab = .; } __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - (((-1)) - 0x80000000 + 1)) { __start___ksymtab_gpl = .; *(__ksymtab_gpl) __stop___ksymtab_gpl = .; } __ksymtab_unused : AT(ADDR(__ksymtab_unused) - (((-1)) - 0x80000000 + 1)) { __start___ksymtab_unused = .; *(__ksymtab_unused) __stop___ksymtab_unused = .; } __ksymtab_unused_gpl : AT(ADDR(__ksymtab_unused_gpl) - (((-1)) - 0x80000000 + 1)) { __start___ksymtab_unused_gpl = .; *(__ksymtab_unused_gpl) __stop___ksymtab_unused_gpl = .; } __ksymtab_gpl_future : AT(ADDR(__ksymtab_gpl_future) - (((-1)) - 0x80000000 + 1)) { __start___ksymtab_gpl_future = .; *(__ksymtab_gpl_future) __stop___ksymtab_gpl_future = .; } __kcrctab : AT(ADDR(__kcrctab) - (((-1)) - 0x80000000 + 1)) { __start___kcrctab = .; *(__kcrctab) __stop___kcrctab = .; } __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - (((-1)) - 0x80000000 + 1)) { __start___kcrctab_gpl = .; *(__kcrctab_gpl) __stop___kcrctab_gpl = .; } __kcrctab_unused : AT(ADDR(__kcrctab_unused) - (((-1)) - 0x80000000 + 1)) { __start___kcrctab_unused = .; *(__kcrctab_unused) __stop___kcrctab_unused = .; } __kcrctab_unused_gpl : AT(ADDR(__kcrctab_unused_gpl) - (((-1)) - 0x80000000 + 1)) { __start___kcrctab_unused_gpl = .; *(__kcrctab_unused_gpl) __stop___kcrctab_unused_gpl = .; } __kcrctab_gpl_future : AT(ADDR(__kcrctab_gpl_future) - (((-1)) - 0x80000000 + 1)) { __start___kcrctab_gpl_future = .; *(__kcrctab_gpl_future) __stop___kcrctab_gpl_future = .; } __ksymtab_strings : AT(ADDR(__ksymtab_strings) - (((-1)) - 0x80000000 + 1)) { *(__ksymtab_strings) } __param : AT(ADDR(__param) - (((-1)) - 0x80000000 + 1)) { __start___param = .; *(__param) __stop___param = .; __end_rodata = .; } . = ALIGN(((1 << (12))));
  53. /* NOTES */
  54. _etext = .; /* End of text and rodata section */
  55. /* EXCEPTION_TABLE(8)*/
  56. . = ALIGN(16); /* Exception table */
  57. __start___ex_table = .;
  58. __ex_table : AT(ADDR(__ex_table) - (((-1)) - 0x80000000 + 1)) { *(__ex_table) }
  59. __stop___ex_table = .;
  60. __init_end = .;
  61. . = ALIGN((1 << (12)));
  62. _data = .;
  63. __data_loc = _data;
  64. _sdata : {
  65. __global_pointer$ = . + 0x800;
  66. *(.sdata*)
  67. }
  68. /* . = ALIGN(PAGE_SIZE); */ /* Align data segment to page size boundary */
  69. /* Data */
  70. .data : AT(ADDR(.data) - (((-1)) - 0x80000000 + 1)) {
  71. *(.data) *(.data.init.refok)
  72. CONSTRUCTORS
  73. } :data
  74. _edata = .; /* End of data section */
  75. . = ALIGN((1 << (12)));
  76. . = ALIGN((1 << 6));
  77. .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - (((-1)) - 0x80000000 + 1)) {
  78. *(.data.cacheline_aligned)
  79. }
  80. /* . = ALIGN(CONFIG_ARM64_INTERNODE_CACHE_BYTES); */
  81. .data.read_mostly : AT(ADDR(.data.read_mostly) - (((-1)) - 0x80000000 + 1)) {
  82. *(.data.read_mostly)
  83. }
  84. . = ALIGN(8192); /* bootstrap_task */
  85. .data.bootstrap_task : AT(ADDR(.data.bootstrap_task) - (((-1)) - 0x80000000 + 1)) {
  86. *(.data.bootstrap_task)
  87. }:data.init
  88. . = ALIGN(4096);
  89. .data.page_aligned : AT(ADDR(.data.page_aligned) - (((-1)) - 0x80000000 + 1)) {
  90. *(.data.page_aligned)
  91. }
  92. . = ALIGN((1 << (12)));
  93. __init_begin = .;
  94. /* INIT_TEXT_SECTION(8)*/
  95. . = ALIGN(4096); /* Init code and data */
  96. __init_begin = .;
  97. .init.text : AT(ADDR(.init.text) - (((-1)) - 0x80000000 + 1)) {
  98. _sinittext = .;
  99. *(.init.text)
  100. _einittext = .;
  101. }
  102. __initdata_begin = .;
  103. .init.data : AT(ADDR(.init.data) - (((-1)) - 0x80000000 + 1)) { *(.init.data) }
  104. __initdata_end = .;
  105. . = ALIGN(16);
  106. __setup_start = .;
  107. .init.setup : AT(ADDR(.init.setup) - (((-1)) - 0x80000000 + 1)) { *(.init.setup) }
  108. __setup_end = .;
  109. __initcall_start = .;
  110. .initcall.init : AT(ADDR(.initcall.init) - (((-1)) - 0x80000000 + 1)) {
  111. *(.initcall0.init) *(.initcall0s.init) *(.initcall1.init) *(.initcall1s.init) *(.initcall2.init) *(.initcall2s.init) *(.initcall3.init) *(.initcall3s.init) *(.initcall4.init) *(.initcall4s.init) *(.initcall5.init) *(.initcall5s.init) *(.initcallrootfs.init) *(.initcall6.init) *(.initcall6s.init) *(.initcall7.init) *(.initcall7s.init)
  112. }
  113. __initcall_end = .;
  114. __con_initcall_start = .;
  115. .con_initcall.init : AT(ADDR(.con_initcall.init) - (((-1)) - 0x80000000 + 1)) {
  116. *(.con_initcall.init)
  117. }
  118. __con_initcall_end = .;
  119. .security_initcall.init : AT(ADDR(.security_initcall.init) - (((-1)) - 0x80000000 + 1)) { __security_initcall_start = .; *(.security_initcall.init) __security_initcall_end = .; }
  120. . = ALIGN(8);
  121. __alt_instructions = .;
  122. .altinstructions : AT(ADDR(.altinstructions) - (((-1)) - 0x80000000 + 1)) {
  123. *(.altinstructions)
  124. }
  125. __alt_instructions_end = .;
  126. .altinstr_replacement : AT(ADDR(.altinstr_replacement) - (((-1)) - 0x80000000 + 1)) {
  127. *(.altinstr_replacement)
  128. }
  129. /* .exit.text is discard at runtime, not link time, to deal with references
  130. from .altinstructions and .eh_frame */
  131. .exit.text : AT(ADDR(.exit.text) - (((-1)) - 0x80000000 + 1)) { *(.exit.text) }
  132. .exit.data : AT(ADDR(.exit.data) - (((-1)) - 0x80000000 + 1)) { *(.exit.data) }
  133. /* .exit.text : {
  134. ARM_EXIT_KEEP(EXIT_TEXT)
  135. }
  136. . = ALIGN(16);
  137. .init.data : {
  138. INIT_DATA
  139. INIT_SETUP(16)
  140. INIT_CALLS
  141. CON_INITCALL
  142. SECURITY_INITCALL
  143. INIT_RAM_FS
  144. }
  145. .exit.data : {
  146. ARM_EXIT_KEEP(EXIT_DATA)
  147. }
  148. */
  149. /*
  150. * Data written with the MMU off but read with the MMU on requires
  151. * cache lines to be invalidated, discarding up to a Cache Writeback
  152. * Granule (CWG) of data from the cache. Keep the section that
  153. * requires this type of maintenance to be in its own Cache Writeback
  154. * Granule (CWG) area so the cache maintenance operations don't
  155. * interfere with adjacent data.
  156. */
  157. .mmuoff.data.write : ALIGN(0x00000800) {
  158. __mmuoff_data_start = .;
  159. *(.mmuoff.data.write)
  160. }
  161. . = ALIGN(0x00000800);
  162. .mmuoff.data.read : {
  163. *(.mmuoff.data.read)
  164. __mmuoff_data_end = .;
  165. }
  166. . = ALIGN(4096);
  167. __per_cpu_start = .;
  168. .data.percpu : AT(ADDR(.data.percpu) - (((-1)) - 0x80000000 + 1)) { *(.data.percpu) }
  169. __per_cpu_end = .;
  170. . = ALIGN(4096);
  171. __init_end = .;
  172. . = ALIGN(4096);
  173. __nosave_begin = .;
  174. .data_nosave : AT(ADDR(.data_nosave) - (((-1)) - 0x80000000 + 1)) { *(.data.nosave) }
  175. . = ALIGN(4096);
  176. __nosave_end = .;
  177. /* BSS_SECTION(0, 0, 0)*/
  178. __bss_start = .; /* BSS */
  179. .bss : AT(ADDR(.bss) - (((-1)) - 0x80000000 + 1)) {
  180. *(.bss.page_aligned)
  181. *(.bss)
  182. }
  183. __bss_stop = .;
  184. _end = .;
  185. /* STABS_DEBUG*/
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement