Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/openrisc/kernel/vmlinux.lds.S
26424 views
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
/*
3
* OpenRISC vmlinux.lds.S
4
*
5
* Linux architectural port borrowing liberally from similar works of
6
* others. All original copyrights apply as per the original source
7
* declaration.
8
*
9
* Modifications for the OpenRISC architecture:
10
* Copyright (C) 2003 Matjaz Breskvar <[email protected]>
11
* Copyright (C) 2010-2011 Jonas Bonn <[email protected]>
12
*
13
* ld script for OpenRISC architecture
14
*/
15
16
/* TODO
17
* - clean up __offset & stuff
18
* - change all 8192 alignment to PAGE !!!
19
* - recheck if all alignments are really needed
20
*/
21
22
# define LOAD_OFFSET PAGE_OFFSET
23
# define LOAD_BASE PAGE_OFFSET
24
25
#include <asm/page.h>
26
#include <asm/cache.h>
27
#include <asm/thread_info.h>
28
#include <asm-generic/vmlinux.lds.h>
29
30
#ifdef __OR1K__
31
#define __OUTPUT_FORMAT "elf32-or1k"
32
#else
33
#define __OUTPUT_FORMAT "elf32-or32"
34
#endif
35
36
OUTPUT_FORMAT(__OUTPUT_FORMAT, __OUTPUT_FORMAT, __OUTPUT_FORMAT)
37
jiffies = jiffies_64 + 4;
38
39
SECTIONS
40
{
41
/* Read-only sections, merged into text segment: */
42
. = LOAD_BASE ;
43
44
_text = .;
45
46
/* _s_kernel_ro must be page aligned */
47
. = ALIGN(PAGE_SIZE);
48
_s_kernel_ro = .;
49
50
.text : AT(ADDR(.text) - LOAD_OFFSET)
51
{
52
_stext = .;
53
HEAD_TEXT
54
TEXT_TEXT
55
SCHED_TEXT
56
LOCK_TEXT
57
KPROBES_TEXT
58
IRQENTRY_TEXT
59
SOFTIRQENTRY_TEXT
60
*(.fixup)
61
*(.text.__*)
62
_etext = .;
63
}
64
/* TODO: Check if fixup and text.__* are really necessary
65
* fixup is definitely necessary
66
*/
67
68
_sdata = .;
69
70
/* Page alignment required for RO_DATA */
71
RO_DATA(PAGE_SIZE)
72
_e_kernel_ro = .;
73
74
/* Whatever comes after _e_kernel_ro had better be page-aligend, too */
75
76
/* 32 here is cacheline size... recheck this */
77
RW_DATA(32, PAGE_SIZE, PAGE_SIZE)
78
79
_edata = .;
80
81
EXCEPTION_TABLE(4)
82
83
/* Init code and data */
84
. = ALIGN(PAGE_SIZE);
85
__init_begin = .;
86
87
/* Page aligned */
88
INIT_TEXT_SECTION(PAGE_SIZE)
89
90
/* Align __setup_start on 16 byte boundary */
91
INIT_DATA_SECTION(16)
92
93
PERCPU_SECTION(L1_CACHE_BYTES)
94
95
__init_end = .;
96
97
BSS_SECTION(0, 0, 0x20)
98
99
_end = .;
100
101
/* Throw in the debugging sections */
102
STABS_DEBUG
103
DWARF_DEBUG
104
ELF_DETAILS
105
106
/* Sections to be discarded -- must be last */
107
DISCARDS
108
}
109
110