1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * Linker script for Hexagon kernel
4 *
5 * Copyright (c) 2010-2014, The Linux Foundation. All rights reserved.
6 */
7
8#include <asm-generic/vmlinux.lds.h>
9#include <asm/asm-offsets.h> /* Most of the kernel defines are here */
10#include <asm/mem-layout.h> /* except for page_offset */
11#include <asm/cache.h> /* and now we're pulling cache line size */
12#include <asm/thread_info.h> /* and we need THREAD_SIZE too */
13
14OUTPUT_ARCH(hexagon)
15ENTRY(stext)
16
17jiffies = jiffies_64;
18
19/*
20See asm-generic/vmlinux.lds.h for expansion of some of these macros.
21See asm-generic/sections.h for seemingly required labels.
22*/
23
24#define PAGE_SIZE _PAGE_SIZE
25
26SECTIONS
27{
28 . = PAGE_OFFSET;
29
30 __init_begin = .;
31 HEAD_TEXT_SECTION
32 INIT_TEXT_SECTION(PAGE_SIZE)
33 PERCPU_SECTION(L1_CACHE_BYTES)
34 __init_end = .;
35
36 . = ALIGN(_PAGE_SIZE);
37 _stext = .;
38 .text : AT(ADDR(.text)) {
39 _text = .;
40 TEXT_TEXT
41 IRQENTRY_TEXT
42 SOFTIRQENTRY_TEXT
43 SCHED_TEXT
44 LOCK_TEXT
45 KPROBES_TEXT
46 *(.fixup)
47 }
48 _etext = .;
49
50 INIT_DATA_SECTION(PAGE_SIZE)
51
52 _sdata = .;
53 RW_DATA(32,PAGE_SIZE,_THREAD_SIZE)
54 RO_DATA(PAGE_SIZE)
55 _edata = .;
56
57 EXCEPTION_TABLE(16)
58
59 BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _PAGE_SIZE)
60
61 _end = .;
62
63 STABS_DEBUG
64 DWARF_DEBUG
65 ELF_DETAILS
66 .hexagon.attributes 0 : { *(.hexagon.attributes) }
67
68 DISCARDS
69}
70

source code of linux/arch/hexagon/kernel/vmlinux.lds.S