1/* 2 * Linker script for Hexagon kernel 3 * 4 * Copyright (c) 2010-2013, The Linux Foundation. All rights reserved. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License version 2 and 8 * only version 2 as published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * 15 * You should have received a copy of the GNU General Public License 16 * along with this program; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 18 * 02110-1301, USA. 19 */ 20 21#include <asm-generic/vmlinux.lds.h> 22#include <asm/asm-offsets.h> /* Most of the kernel defines are here */ 23#include <asm/mem-layout.h> /* except for page_offset */ 24#include <asm/cache.h> /* and now we're pulling cache line size */ 25OUTPUT_ARCH(hexagon) 26ENTRY(stext) 27 28jiffies = jiffies_64; 29 30/* 31See asm-generic/vmlinux.lds.h for expansion of some of these macros. 32See asm-generic/sections.h for seemingly required labels. 33*/ 34 35#define PAGE_SIZE _PAGE_SIZE 36 37SECTIONS 38{ 39 . = PAGE_OFFSET; 40 41 __init_begin = .; 42 HEAD_TEXT_SECTION 43 INIT_TEXT_SECTION(PAGE_SIZE) 44 PERCPU_SECTION(L1_CACHE_BYTES) 45 __init_end = .; 46 47 . = ALIGN(_PAGE_SIZE); 48 _stext = .; 49 .text : AT(ADDR(.text)) { 50 _text = .; 51 TEXT_TEXT 52 SCHED_TEXT 53 LOCK_TEXT 54 KPROBES_TEXT 55 *(.fixup) 56 } 57 _etext = .; 58 59 INIT_DATA_SECTION(PAGE_SIZE) 60 61 _sdata = .; 62 RW_DATA_SECTION(32,PAGE_SIZE,PAGE_SIZE) 63 RO_DATA_SECTION(PAGE_SIZE) 64 _edata = .; 65 66 EXCEPTION_TABLE(16) 67 NOTES 68 69 BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _PAGE_SIZE) 70 71 _end = .; 72 73 /DISCARD/ : { 74 EXIT_TEXT 75 EXIT_DATA 76 EXIT_CALL 77 } 78 79 STABS_DEBUG 80 DWARF_DEBUG 81 82} 83