108dbd0f8SThomas Gleixner/* SPDX-License-Identifier: GPL-2.0-only */ 2e95bf452SRichard Kuo/* 3e95bf452SRichard Kuo * Linker script for Hexagon kernel 4e95bf452SRichard Kuo * 5f6b708c1SRichard Kuo * Copyright (c) 2010-2014, The Linux Foundation. All rights reserved. 6e95bf452SRichard Kuo */ 7e95bf452SRichard Kuo 8e95bf452SRichard Kuo#include <asm-generic/vmlinux.lds.h> 9e95bf452SRichard Kuo#include <asm/asm-offsets.h> /* Most of the kernel defines are here */ 10e95bf452SRichard Kuo#include <asm/mem-layout.h> /* except for page_offset */ 11e95bf452SRichard Kuo#include <asm/cache.h> /* and now we're pulling cache line size */ 120b04ea68SDavid Howells#include <asm/thread_info.h> /* and we need THREAD_SIZE too */ 130b04ea68SDavid Howells 14e95bf452SRichard KuoOUTPUT_ARCH(hexagon) 15e95bf452SRichard KuoENTRY(stext) 16e95bf452SRichard Kuo 17e95bf452SRichard Kuojiffies = jiffies_64; 18e95bf452SRichard Kuo 19e95bf452SRichard Kuo/* 20e95bf452SRichard KuoSee asm-generic/vmlinux.lds.h for expansion of some of these macros. 21e95bf452SRichard KuoSee asm-generic/sections.h for seemingly required labels. 22e95bf452SRichard Kuo*/ 23e95bf452SRichard Kuo 24e95bf452SRichard Kuo#define PAGE_SIZE _PAGE_SIZE 25e95bf452SRichard Kuo 26e95bf452SRichard KuoSECTIONS 27e95bf452SRichard Kuo{ 288f5a0b9dSRichard Kuo . = PAGE_OFFSET; 29e95bf452SRichard Kuo 30e95bf452SRichard Kuo __init_begin = .; 31e95bf452SRichard Kuo HEAD_TEXT_SECTION 32e95bf452SRichard Kuo INIT_TEXT_SECTION(PAGE_SIZE) 33e95bf452SRichard Kuo PERCPU_SECTION(L1_CACHE_BYTES) 34e95bf452SRichard Kuo __init_end = .; 35e95bf452SRichard Kuo 36e95bf452SRichard Kuo . = ALIGN(_PAGE_SIZE); 37e95bf452SRichard Kuo _stext = .; 388f5a0b9dSRichard Kuo .text : AT(ADDR(.text)) { 39e95bf452SRichard Kuo _text = .; 40e95bf452SRichard Kuo TEXT_TEXT 41*6fef087dSNathan Chancellor IRQENTRY_TEXT 42*6fef087dSNathan Chancellor SOFTIRQENTRY_TEXT 43e95bf452SRichard Kuo SCHED_TEXT 446727ad9eSChris Metcalf CPUIDLE_TEXT 45e95bf452SRichard Kuo LOCK_TEXT 46e95bf452SRichard Kuo KPROBES_TEXT 47e95bf452SRichard Kuo *(.fixup) 48e95bf452SRichard Kuo } 49e95bf452SRichard Kuo _etext = .; 50e95bf452SRichard Kuo 51e95bf452SRichard Kuo INIT_DATA_SECTION(PAGE_SIZE) 52e95bf452SRichard Kuo 53e95bf452SRichard Kuo _sdata = .; 54c9174047SKees Cook RW_DATA(32,PAGE_SIZE,_THREAD_SIZE) 5593240b32SKees Cook RO_DATA(PAGE_SIZE) 56e95bf452SRichard Kuo _edata = .; 57e95bf452SRichard Kuo 58e95bf452SRichard Kuo EXCEPTION_TABLE(16) 59e95bf452SRichard Kuo 60e95bf452SRichard Kuo BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _PAGE_SIZE) 61e95bf452SRichard Kuo 62e95bf452SRichard Kuo _end = .; 63e95bf452SRichard Kuo 64e95bf452SRichard Kuo /DISCARD/ : { 65e95bf452SRichard Kuo EXIT_TEXT 66e95bf452SRichard Kuo EXIT_DATA 67e95bf452SRichard Kuo EXIT_CALL 68e95bf452SRichard Kuo } 69e95bf452SRichard Kuo 70e95bf452SRichard Kuo STABS_DEBUG 71e95bf452SRichard Kuo DWARF_DEBUG 72c604abc3SKees Cook ELF_DETAILS 73e95bf452SRichard Kuo 74e95bf452SRichard Kuo} 75