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