Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/csky/kernel/vmlinux.lds.S
26439 views
1
/* SPDX-License-Identifier: GPL-2.0 */
2
3
#include <asm/vmlinux.lds.h>
4
#include <asm/page.h>
5
#include <asm/memory.h>
6
7
OUTPUT_ARCH(csky)
8
ENTRY(_start)
9
10
#ifndef __cskyBE__
11
jiffies = jiffies_64;
12
#else
13
jiffies = jiffies_64 + 4;
14
#endif
15
16
#define VBR_BASE \
17
. = ALIGN(1024); \
18
vec_base = .; \
19
. += 512;
20
21
SECTIONS
22
{
23
. = PAGE_OFFSET + PHYS_OFFSET_OFFSET;
24
25
_start = .;
26
HEAD_TEXT_SECTION
27
. = ALIGN(PAGE_SIZE);
28
29
.text : AT(ADDR(.text) - LOAD_OFFSET) {
30
_text = .;
31
_stext = .;
32
VBR_BASE
33
IRQENTRY_TEXT
34
SOFTIRQENTRY_TEXT
35
TEXT_TEXT
36
SCHED_TEXT
37
LOCK_TEXT
38
KPROBES_TEXT
39
*(.fixup)
40
*(.gnu.warning)
41
} = 0
42
_etext = .;
43
44
/* __init_begin __init_end must be page aligned for free_initmem */
45
. = ALIGN(PAGE_SIZE);
46
__init_begin = .;
47
INIT_TEXT_SECTION(PAGE_SIZE)
48
INIT_DATA_SECTION(PAGE_SIZE)
49
PERCPU_SECTION(L1_CACHE_BYTES)
50
. = ALIGN(PAGE_SIZE);
51
__init_end = .;
52
53
_sdata = .;
54
RO_DATA(PAGE_SIZE)
55
RW_DATA(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
56
_edata = .;
57
58
#ifdef CONFIG_HAVE_TCM
59
.tcm_start : {
60
. = ALIGN(PAGE_SIZE);
61
__tcm_start = .;
62
}
63
64
.text_data_tcm FIXADDR_TCM : AT(__tcm_start)
65
{
66
. = ALIGN(4);
67
__stcm_text_data = .;
68
*(.tcm.text)
69
*(.tcm.rodata)
70
#ifndef CONFIG_HAVE_DTCM
71
*(.tcm.data)
72
#endif
73
. = ALIGN(4);
74
__etcm_text_data = .;
75
}
76
77
. = ADDR(.tcm_start) + SIZEOF(.tcm_start) + SIZEOF(.text_data_tcm);
78
79
#ifdef CONFIG_HAVE_DTCM
80
#define ITCM_SIZE CONFIG_ITCM_NR_PAGES * PAGE_SIZE
81
82
.dtcm_start : {
83
__dtcm_start = .;
84
}
85
86
.data_tcm FIXADDR_TCM + ITCM_SIZE : AT(__dtcm_start)
87
{
88
. = ALIGN(4);
89
__stcm_data = .;
90
*(.tcm.data)
91
. = ALIGN(4);
92
__etcm_data = .;
93
}
94
95
. = ADDR(.dtcm_start) + SIZEOF(.data_tcm);
96
97
.tcm_end : AT(ADDR(.dtcm_start) + SIZEOF(.data_tcm)) {
98
#else
99
.tcm_end : AT(ADDR(.tcm_start) + SIZEOF(.text_data_tcm)) {
100
#endif
101
. = ALIGN(PAGE_SIZE);
102
__tcm_end = .;
103
}
104
#endif
105
106
EXCEPTION_TABLE(L1_CACHE_BYTES)
107
BSS_SECTION(L1_CACHE_BYTES, PAGE_SIZE, L1_CACHE_BYTES)
108
_end = . ;
109
110
STABS_DEBUG
111
DWARF_DEBUG
112
ELF_DETAILS
113
114
DISCARDS
115
}
116
117