1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2012 Regents of the University of California 4 * Copyright (C) 2017 SiFive 5 */ 6 7#define LOAD_OFFSET PAGE_OFFSET 8#include <asm/vmlinux.lds.h> 9#include <asm/page.h> 10#include <asm/cache.h> 11#include <asm/thread_info.h> 12 13OUTPUT_ARCH(riscv) 14ENTRY(_start) 15 16jiffies = jiffies_64; 17 18SECTIONS 19{ 20 /* Beginning of code and text segment */ 21 . = LOAD_OFFSET; 22 _start = .; 23 __init_begin = .; 24 HEAD_TEXT_SECTION 25 INIT_TEXT_SECTION(PAGE_SIZE) 26 INIT_DATA_SECTION(16) 27 /* we have to discard exit text and such at runtime, not link time */ 28 .exit.text : 29 { 30 EXIT_TEXT 31 } 32 .exit.data : 33 { 34 EXIT_DATA 35 } 36 PERCPU_SECTION(L1_CACHE_BYTES) 37 __init_end = .; 38 39 .text : { 40 _text = .; 41 _stext = .; 42 TEXT_TEXT 43 SCHED_TEXT 44 CPUIDLE_TEXT 45 LOCK_TEXT 46 KPROBES_TEXT 47 ENTRY_TEXT 48 IRQENTRY_TEXT 49 *(.fixup) 50 _etext = .; 51 } 52 53 /* Start of data section */ 54 _sdata = .; 55 RO_DATA_SECTION(L1_CACHE_BYTES) 56 .srodata : { 57 *(.srodata*) 58 } 59 60 RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE) 61 .sdata : { 62 __global_pointer$ = . + 0x800; 63 *(.sdata*) 64 /* End of data section */ 65 _edata = .; 66 *(.sbss*) 67 } 68 69 BSS_SECTION(PAGE_SIZE, PAGE_SIZE, 0) 70 71 EXCEPTION_TABLE(0x10) 72 NOTES 73 74 .rel.dyn : { 75 *(.rel.dyn*) 76 } 77 78 _end = .; 79 80 STABS_DEBUG 81 DWARF_DEBUG 82 83 DISCARDS 84} 85