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 CPUIDLE_TEXT 45 LOCK_TEXT 46 KPROBES_TEXT 47 *(.fixup) 48 } 49 _etext = .; 50 51 INIT_DATA_SECTION(PAGE_SIZE) 52 53 _sdata = .; 54 RW_DATA(32,PAGE_SIZE,_THREAD_SIZE) 55 RO_DATA(PAGE_SIZE) 56 _edata = .; 57 58 EXCEPTION_TABLE(16) 59 60 BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _PAGE_SIZE) 61 62 _end = .; 63 64 STABS_DEBUG 65 DWARF_DEBUG 66 ELF_DETAILS 67 68 DISCARDS 69} 70