/* * Copyright (C) 2012 Regents of the University of California * Copyright (C) 2017 SiFive * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, version 2. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #define LOAD_OFFSET PAGE_OFFSET #include #include #include #include OUTPUT_ARCH(riscv) ENTRY(_start) jiffies = jiffies_64; SECTIONS { /* Beginning of code and text segment */ . = LOAD_OFFSET; _start = .; __init_begin = .; HEAD_TEXT_SECTION INIT_TEXT_SECTION(PAGE_SIZE) INIT_DATA_SECTION(16) /* we have to discard exit text and such at runtime, not link time */ .exit.text : { EXIT_TEXT } .exit.data : { EXIT_DATA } PERCPU_SECTION(L1_CACHE_BYTES) __init_end = .; .text : { _text = .; _stext = .; TEXT_TEXT SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT KPROBES_TEXT ENTRY_TEXT IRQENTRY_TEXT *(.fixup) _etext = .; } /* Start of data section */ _sdata = .; RO_DATA_SECTION(L1_CACHE_BYTES) .srodata : { *(.srodata*) } RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) .sdata : { __global_pointer$ = . + 0x800; *(.sdata*) /* End of data section */ _edata = .; *(.sbss*) } BSS_SECTION(PAGE_SIZE, PAGE_SIZE, 0) EXCEPTION_TABLE(0x10) NOTES .rel.dyn : { *(.rel.dyn*) } _end = .; STABS_DEBUG DWARF_DEBUG DISCARDS }