xref: /openbmc/linux/arch/hexagon/kernel/vmlinux.lds.S (revision e95bf452a9e22bd1c9ae23fea041989e0603c39d)
1*e95bf452SRichard Kuo/*
2*e95bf452SRichard Kuo * Linker script for Hexagon kernel
3*e95bf452SRichard Kuo *
4*e95bf452SRichard Kuo * Copyright (c) 2010-2011, Code Aurora Forum. All rights reserved.
5*e95bf452SRichard Kuo *
6*e95bf452SRichard Kuo * This program is free software; you can redistribute it and/or modify
7*e95bf452SRichard Kuo * it under the terms of the GNU General Public License version 2 and
8*e95bf452SRichard Kuo * only version 2 as published by the Free Software Foundation.
9*e95bf452SRichard Kuo *
10*e95bf452SRichard Kuo * This program is distributed in the hope that it will be useful,
11*e95bf452SRichard Kuo * but WITHOUT ANY WARRANTY; without even the implied warranty of
12*e95bf452SRichard Kuo * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*e95bf452SRichard Kuo * GNU General Public License for more details.
14*e95bf452SRichard Kuo *
15*e95bf452SRichard Kuo * You should have received a copy of the GNU General Public License
16*e95bf452SRichard Kuo * along with this program; if not, write to the Free Software
17*e95bf452SRichard Kuo * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18*e95bf452SRichard Kuo * 02110-1301, USA.
19*e95bf452SRichard Kuo */
20*e95bf452SRichard Kuo
21*e95bf452SRichard Kuo#define LOAD_OFFSET PAGE_OFFSET
22*e95bf452SRichard Kuo
23*e95bf452SRichard Kuo#include <asm-generic/vmlinux.lds.h>
24*e95bf452SRichard Kuo#include <asm/asm-offsets.h>	/*  Most of the kernel defines are here  */
25*e95bf452SRichard Kuo#include <asm/mem-layout.h>	/*  except for page_offset  */
26*e95bf452SRichard Kuo#include <asm/cache.h>		/*  and now we're pulling cache line size  */
27*e95bf452SRichard KuoOUTPUT_ARCH(hexagon)
28*e95bf452SRichard KuoENTRY(stext)
29*e95bf452SRichard Kuo
30*e95bf452SRichard Kuojiffies = jiffies_64;
31*e95bf452SRichard Kuo
32*e95bf452SRichard Kuo/*
33*e95bf452SRichard KuoSee asm-generic/vmlinux.lds.h for expansion of some of these macros.
34*e95bf452SRichard KuoSee asm-generic/sections.h for seemingly required labels.
35*e95bf452SRichard Kuo*/
36*e95bf452SRichard Kuo
37*e95bf452SRichard Kuo#define PAGE_SIZE _PAGE_SIZE
38*e95bf452SRichard Kuo
39*e95bf452SRichard Kuo/*  This LOAD_OFFSET is temporary for debugging on the simulator; it may change
40*e95bf452SRichard Kuo    for hypervisor pseudo-physical memory.  */
41*e95bf452SRichard Kuo
42*e95bf452SRichard Kuo
43*e95bf452SRichard KuoSECTIONS
44*e95bf452SRichard Kuo{
45*e95bf452SRichard Kuo	. = PAGE_OFFSET + LOAD_ADDRESS;
46*e95bf452SRichard Kuo
47*e95bf452SRichard Kuo	__init_begin = .;
48*e95bf452SRichard Kuo	HEAD_TEXT_SECTION
49*e95bf452SRichard Kuo	INIT_TEXT_SECTION(PAGE_SIZE)
50*e95bf452SRichard Kuo	PERCPU_SECTION(L1_CACHE_BYTES)
51*e95bf452SRichard Kuo	__init_end = .;
52*e95bf452SRichard Kuo
53*e95bf452SRichard Kuo        . = ALIGN(_PAGE_SIZE);
54*e95bf452SRichard Kuo	_stext = .;
55*e95bf452SRichard Kuo	.text : AT(ADDR(.text) - LOAD_OFFSET) {
56*e95bf452SRichard Kuo		_text = .;
57*e95bf452SRichard Kuo		TEXT_TEXT
58*e95bf452SRichard Kuo		SCHED_TEXT
59*e95bf452SRichard Kuo		LOCK_TEXT
60*e95bf452SRichard Kuo		KPROBES_TEXT
61*e95bf452SRichard Kuo		*(.fixup)
62*e95bf452SRichard Kuo	}
63*e95bf452SRichard Kuo	_etext = .;
64*e95bf452SRichard Kuo
65*e95bf452SRichard Kuo	INIT_DATA_SECTION(PAGE_SIZE)
66*e95bf452SRichard Kuo
67*e95bf452SRichard Kuo	_sdata = .;
68*e95bf452SRichard Kuo		RW_DATA_SECTION(32,PAGE_SIZE,PAGE_SIZE)
69*e95bf452SRichard Kuo		RO_DATA_SECTION(PAGE_SIZE)
70*e95bf452SRichard Kuo	_edata = .;
71*e95bf452SRichard Kuo
72*e95bf452SRichard Kuo	EXCEPTION_TABLE(16)
73*e95bf452SRichard Kuo	NOTES
74*e95bf452SRichard Kuo
75*e95bf452SRichard Kuo	BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _PAGE_SIZE)
76*e95bf452SRichard Kuo
77*e95bf452SRichard Kuo	_end = .;
78*e95bf452SRichard Kuo
79*e95bf452SRichard Kuo	/DISCARD/ : {
80*e95bf452SRichard Kuo		EXIT_TEXT
81*e95bf452SRichard Kuo		EXIT_DATA
82*e95bf452SRichard Kuo		EXIT_CALL
83*e95bf452SRichard Kuo	}
84*e95bf452SRichard Kuo
85*e95bf452SRichard Kuo	STABS_DEBUG
86*e95bf452SRichard Kuo	DWARF_DEBUG
87*e95bf452SRichard Kuo
88*e95bf452SRichard Kuo}
89