/* * Linker script for Hexagon kernel * * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and * only version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. */ #define LOAD_OFFSET PAGE_OFFSET #include #include /* Most of the kernel defines are here */ #include /* except for page_offset */ #include /* and now we're pulling cache line size */ OUTPUT_ARCH(hexagon) ENTRY(stext) jiffies = jiffies_64; /* See asm-generic/vmlinux.lds.h for expansion of some of these macros. See asm-generic/sections.h for seemingly required labels. */ #define PAGE_SIZE _PAGE_SIZE /* This LOAD_OFFSET is temporary for debugging on the simulator; it may change for hypervisor pseudo-physical memory. */ SECTIONS { . = PAGE_OFFSET + LOAD_ADDRESS; __init_begin = .; HEAD_TEXT_SECTION INIT_TEXT_SECTION(PAGE_SIZE) PERCPU_SECTION(L1_CACHE_BYTES) __init_end = .; . = ALIGN(_PAGE_SIZE); _stext = .; .text : AT(ADDR(.text) - LOAD_OFFSET) { _text = .; TEXT_TEXT SCHED_TEXT LOCK_TEXT KPROBES_TEXT *(.fixup) } _etext = .; INIT_DATA_SECTION(PAGE_SIZE) _sdata = .; RW_DATA_SECTION(32,PAGE_SIZE,PAGE_SIZE) RO_DATA_SECTION(PAGE_SIZE) _edata = .; EXCEPTION_TABLE(16) NOTES BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _PAGE_SIZE) _end = .; /DISCARD/ : { EXIT_TEXT EXIT_DATA EXIT_CALL } STABS_DEBUG DWARF_DEBUG }