blob: 65df1dfdc30385be7a9a149034a0ba66a5bbbd8e [file] [log] [blame]
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -07001/*
2 * Copyright (C) 2012 Regents of the University of California
3 * Copyright (C) 2017 SiFive
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation, version 2.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#define LOAD_OFFSET PAGE_OFFSET
16#include <asm/vmlinux.lds.h>
17#include <asm/page.h>
18#include <asm/cache.h>
19#include <asm/thread_info.h>
20
21OUTPUT_ARCH(riscv)
22ENTRY(_start)
23
24jiffies = jiffies_64;
25
26SECTIONS
27{
28 /* Beginning of code and text segment */
29 . = LOAD_OFFSET;
30 _start = .;
31 __init_begin = .;
32 HEAD_TEXT_SECTION
33 INIT_TEXT_SECTION(PAGE_SIZE)
34 INIT_DATA_SECTION(16)
35 /* we have to discard exit text and such at runtime, not link time */
36 .exit.text :
37 {
38 EXIT_TEXT
39 }
40 .exit.data :
41 {
42 EXIT_DATA
43 }
44 PERCPU_SECTION(L1_CACHE_BYTES)
45 __init_end = .;
46
47 .text : {
48 _text = .;
49 _stext = .;
50 TEXT_TEXT
51 SCHED_TEXT
52 CPUIDLE_TEXT
53 LOCK_TEXT
54 KPROBES_TEXT
55 ENTRY_TEXT
56 IRQENTRY_TEXT
57 *(.fixup)
58 _etext = .;
59 }
60
61 /* Start of data section */
62 _sdata = .;
63 RO_DATA_SECTION(L1_CACHE_BYTES)
64 .srodata : {
65 *(.srodata*)
66 }
67
68 RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
69 .sdata : {
70 __global_pointer$ = . + 0x800;
71 *(.sdata*)
72 /* End of data section */
73 _edata = .;
74 *(.sbss*)
75 }
76
Palmer Dabbelt41fb9d52019-02-08 09:11:08 -080077 BSS_SECTION(PAGE_SIZE, PAGE_SIZE, 0)
78
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070079 EXCEPTION_TABLE(0x10)
80 NOTES
81
82 .rel.dyn : {
83 *(.rel.dyn*)
84 }
85
Palmer Dabbeltfbe934d2017-07-10 18:08:08 -070086 _end = .;
87
88 STABS_DEBUG
89 DWARF_DEBUG
90
91 DISCARDS
92}