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