Linux 4.18.10
[linux/fpc-iii.git] / arch / riscv / kernel / vmlinux.lds.S
blobece84991609ca56d2d3549d1a2dde2139a943028
1 /*
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  */
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>
21 OUTPUT_ARCH(riscv)
22 ENTRY(_start)
24 jiffies = jiffies_64;
26 SECTIONS
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 = .;
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         }
61         /* Start of data section */
62         _sdata = .;
63         RO_DATA_SECTION(L1_CACHE_BYTES)
64         .srodata : {
65                 *(.srodata*)
66         }
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         }
77         BSS_SECTION(0, 0, 0)
79         EXCEPTION_TABLE(0x10)
80         NOTES
82         .rel.dyn : {
83                 *(.rel.dyn*)
84         }
86         _end = .;
88         STABS_DEBUG
89         DWARF_DEBUG
91         DISCARDS