Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- OUTPUT_ARCH(riscv)
- ENTRY(stext)
- /*jiffies = jiffies_64;*/
- PHDRS {
- text PT_LOAD FLAGS(5); /* R_E */
- data PT_LOAD FLAGS(7); /* RWE */
- user PT_LOAD FLAGS(7); /* RWE */
- data.init PT_LOAD FLAGS(7); /* RWE */
- note PT_NOTE FLAGS(4); /* R__ */
- }
- SECTIONS
- {
- /*
- * XXX: The linker does not define how output sections are
- * assigned to input sections when there are multiple statements
- * matching the same input section name. There is no documented
- * order of matching.
- */
- /*
- /DISCARD/ : {
- ARM_EXIT_DISCARD(EXIT_TEXT)
- ARM_EXIT_DISCARD(EXIT_DATA)
- EXIT_CALL
- *(.discard)
- *(.discard.*)
- }
- */
- . = (((-1)) - 0x80000000 + 1) ;
- /*
- .head.text : {
- HEAD_TEXT
- }
- */
- _text = .;
- .text : AT(ADDR(.text) - (((-1)) - 0x80000000 + 1)) { /* Real text segment */
- *(.bootstrap.text)
- _stext = .; /* Text and read-only data */
- __exception_text_start = .;
- *(.exception.text)
- __exception_text_end = .;
- /* IRQENTRY_TEXT*/
- . = ALIGN(8); *(.text) *(.text.init.refok)
- . = ALIGN(8); __sched_text_start = .; *(.sched.text) __sched_text_end = .;
- . = ALIGN(8); __lock_text_start = .; *(.spinlock.text) __lock_text_end = .;
- /* HYPERVISOR_TEXT */
- *(.fixup)
- *(.gnu.warning)
- . = ALIGN(16);
- *(.got) /* Global offset table */
- }
- . = 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))));
- /* NOTES */
- _etext = .; /* End of text and rodata section */
- /* EXCEPTION_TABLE(8)*/
- . = ALIGN(16); /* Exception table */
- __start___ex_table = .;
- __ex_table : AT(ADDR(__ex_table) - (((-1)) - 0x80000000 + 1)) { *(__ex_table) }
- __stop___ex_table = .;
- __init_end = .;
- . = ALIGN((1 << (12)));
- _data = .;
- __data_loc = _data;
- _sdata : {
- __global_pointer$ = . + 0x800;
- *(.sdata*)
- }
- /* . = ALIGN(PAGE_SIZE); */ /* Align data segment to page size boundary */
- /* Data */
- .data : AT(ADDR(.data) - (((-1)) - 0x80000000 + 1)) {
- *(.data) *(.data.init.refok)
- CONSTRUCTORS
- } :data
- _edata = .; /* End of data section */
- . = ALIGN((1 << (12)));
- . = ALIGN((1 << 6));
- .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - (((-1)) - 0x80000000 + 1)) {
- *(.data.cacheline_aligned)
- }
- /* . = ALIGN(CONFIG_ARM64_INTERNODE_CACHE_BYTES); */
- .data.read_mostly : AT(ADDR(.data.read_mostly) - (((-1)) - 0x80000000 + 1)) {
- *(.data.read_mostly)
- }
- . = ALIGN(8192); /* bootstrap_task */
- .data.bootstrap_task : AT(ADDR(.data.bootstrap_task) - (((-1)) - 0x80000000 + 1)) {
- *(.data.bootstrap_task)
- }:data.init
- . = ALIGN(4096);
- .data.page_aligned : AT(ADDR(.data.page_aligned) - (((-1)) - 0x80000000 + 1)) {
- *(.data.page_aligned)
- }
- . = ALIGN((1 << (12)));
- __init_begin = .;
- /* INIT_TEXT_SECTION(8)*/
- . = ALIGN(4096); /* Init code and data */
- __init_begin = .;
- .init.text : AT(ADDR(.init.text) - (((-1)) - 0x80000000 + 1)) {
- _sinittext = .;
- *(.init.text)
- _einittext = .;
- }
- __initdata_begin = .;
- .init.data : AT(ADDR(.init.data) - (((-1)) - 0x80000000 + 1)) { *(.init.data) }
- __initdata_end = .;
- . = ALIGN(16);
- __setup_start = .;
- .init.setup : AT(ADDR(.init.setup) - (((-1)) - 0x80000000 + 1)) { *(.init.setup) }
- __setup_end = .;
- __initcall_start = .;
- .initcall.init : AT(ADDR(.initcall.init) - (((-1)) - 0x80000000 + 1)) {
- *(.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)
- }
- __initcall_end = .;
- __con_initcall_start = .;
- .con_initcall.init : AT(ADDR(.con_initcall.init) - (((-1)) - 0x80000000 + 1)) {
- *(.con_initcall.init)
- }
- __con_initcall_end = .;
- .security_initcall.init : AT(ADDR(.security_initcall.init) - (((-1)) - 0x80000000 + 1)) { __security_initcall_start = .; *(.security_initcall.init) __security_initcall_end = .; }
- . = ALIGN(8);
- __alt_instructions = .;
- .altinstructions : AT(ADDR(.altinstructions) - (((-1)) - 0x80000000 + 1)) {
- *(.altinstructions)
- }
- __alt_instructions_end = .;
- .altinstr_replacement : AT(ADDR(.altinstr_replacement) - (((-1)) - 0x80000000 + 1)) {
- *(.altinstr_replacement)
- }
- /* .exit.text is discard at runtime, not link time, to deal with references
- from .altinstructions and .eh_frame */
- .exit.text : AT(ADDR(.exit.text) - (((-1)) - 0x80000000 + 1)) { *(.exit.text) }
- .exit.data : AT(ADDR(.exit.data) - (((-1)) - 0x80000000 + 1)) { *(.exit.data) }
- /* .exit.text : {
- ARM_EXIT_KEEP(EXIT_TEXT)
- }
- . = ALIGN(16);
- .init.data : {
- INIT_DATA
- INIT_SETUP(16)
- INIT_CALLS
- CON_INITCALL
- SECURITY_INITCALL
- INIT_RAM_FS
- }
- .exit.data : {
- ARM_EXIT_KEEP(EXIT_DATA)
- }
- */
- /*
- * Data written with the MMU off but read with the MMU on requires
- * cache lines to be invalidated, discarding up to a Cache Writeback
- * Granule (CWG) of data from the cache. Keep the section that
- * requires this type of maintenance to be in its own Cache Writeback
- * Granule (CWG) area so the cache maintenance operations don't
- * interfere with adjacent data.
- */
- .mmuoff.data.write : ALIGN(0x00000800) {
- __mmuoff_data_start = .;
- *(.mmuoff.data.write)
- }
- . = ALIGN(0x00000800);
- .mmuoff.data.read : {
- *(.mmuoff.data.read)
- __mmuoff_data_end = .;
- }
- . = ALIGN(4096);
- __per_cpu_start = .;
- .data.percpu : AT(ADDR(.data.percpu) - (((-1)) - 0x80000000 + 1)) { *(.data.percpu) }
- __per_cpu_end = .;
- . = ALIGN(4096);
- __init_end = .;
- . = ALIGN(4096);
- __nosave_begin = .;
- .data_nosave : AT(ADDR(.data_nosave) - (((-1)) - 0x80000000 + 1)) { *(.data.nosave) }
- . = ALIGN(4096);
- __nosave_end = .;
- /* BSS_SECTION(0, 0, 0)*/
- __bss_start = .; /* BSS */
- .bss : AT(ADDR(.bss) - (((-1)) - 0x80000000 + 1)) {
- *(.bss.page_aligned)
- *(.bss)
- }
- __bss_stop = .;
- _end = .;
- /* STABS_DEBUG*/
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement