Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/frv/kernel/vmlinux.lds.S
10817 views
1
/* ld script to make FRV Linux kernel
2
* Written by Martin Mares <[email protected]>;
3
*/
4
OUTPUT_FORMAT("elf32-frv", "elf32-frv", "elf32-frv")
5
OUTPUT_ARCH(frv)
6
ENTRY(_start)
7
8
#include <asm-generic/vmlinux.lds.h>
9
#include <asm/processor.h>
10
#include <asm/page.h>
11
#include <asm/cache.h>
12
#include <asm/thread_info.h>
13
14
jiffies = jiffies_64 + 4;
15
16
__page_offset = CONFIG_PAGE_OFFSET; /* start of area covered by struct pages */
17
__kernel_image_start = __page_offset; /* address at which kernel image resides */
18
19
SECTIONS
20
{
21
. = __kernel_image_start;
22
23
/* discardable initialisation code and data */
24
. = ALIGN(PAGE_SIZE); /* Init code and data */
25
__init_begin = .;
26
27
_sinittext = .;
28
.init.text : {
29
HEAD_TEXT
30
#ifndef CONFIG_DEBUG_INFO
31
INIT_TEXT
32
EXIT_TEXT
33
EXIT_DATA
34
*(.exitcall.exit)
35
#endif
36
}
37
_einittext = .;
38
39
INIT_DATA_SECTION(8)
40
PERCPU_SECTION(L1_CACHE_BYTES)
41
42
. = ALIGN(PAGE_SIZE);
43
__init_end = .;
44
45
.trap : {
46
/* trap table management - read entry-table.S before modifying */
47
. = ALIGN(8192);
48
__trap_tables = .;
49
*(.trap.user)
50
*(.trap.kernel)
51
. = ALIGN(4096);
52
*(.trap.break)
53
}
54
55
/* Text and read-only data */
56
. = ALIGN(4);
57
_text = .;
58
_stext = .;
59
.text : {
60
*(.text..start)
61
*(.text..entry)
62
*(.text..break)
63
*(.text..tlbmiss)
64
TEXT_TEXT
65
SCHED_TEXT
66
LOCK_TEXT
67
#ifdef CONFIG_DEBUG_INFO
68
INIT_TEXT
69
EXIT_TEXT
70
*(.exitcall.exit)
71
#endif
72
*(.fixup)
73
*(.gnu.warning)
74
*(.exitcall.exit)
75
} = 0x9090
76
77
_etext = .; /* End of text section */
78
79
RODATA
80
81
.rodata : {
82
*(.trap.vector)
83
84
/* this clause must not be modified - the ordering and adjacency are imperative */
85
__trap_fixup_tables = .;
86
*(.trap.fixup.user .trap.fixup.kernel)
87
88
}
89
90
EXCEPTION_TABLE(8)
91
92
_sdata = .;
93
.data : { /* Data */
94
INIT_TASK_DATA(THREAD_SIZE)
95
CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
96
DATA_DATA
97
*(.data.*)
98
EXIT_DATA
99
CONSTRUCTORS
100
}
101
102
_edata = .; /* End of data section */
103
104
/* GP section */
105
. = ALIGN(L1_CACHE_BYTES);
106
_gp = . + 2048;
107
PROVIDE (gp = _gp);
108
109
.sdata : { *(.sdata .sdata.*) }
110
111
/* BSS */
112
. = ALIGN(L1_CACHE_BYTES);
113
__bss_start = .;
114
115
.sbss : { *(.sbss .sbss.*) }
116
.bss : { *(.bss .bss.*) }
117
.bss..stack : { *(.bss) }
118
119
__bss_stop = .;
120
_end = . ;
121
. = ALIGN(PAGE_SIZE);
122
__kernel_image_end = .;
123
124
STABS_DEBUG
125
DWARF_DEBUG
126
127
.comment 0 : { *(.comment) }
128
129
DISCARDS
130
}
131
132
__kernel_image_size_no_bss = __bss_start - __kernel_image_start;
133
134