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