/* * AVR32 linker script for the Linux kernel * * Copyright (C) 2004-2006 Atmel Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #define LOAD_OFFSET 0x00000000 #include <asm-generic/vmlinux.lds.h> #include <asm/cache.h> #include <asm/thread_info.h> OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32") OUTPUT_ARCH(avr32) ENTRY(_start) /* Big endian */ jiffies = jiffies_64 + 4; SECTIONS { . = [31mCONFIG_ENTRY_ADDRESS[0m; .init : AT(ADDR(.init) - LOAD_OFFSET) { _text = .; __init_begin = .; _sinittext = .; *(.text.reset) INIT_TEXT /* * .exit.text is discarded at runtime, not * link time, to deal with references from * __bug_table */ EXIT_TEXT _einittext = .; . = ALIGN(4); __tagtable_begin = .; *(.taglist.init) __tagtable_end = .; } INIT_DATA_SECTION(16) . = ALIGN(PAGE_SIZE); __init_end = .; .text : AT(ADDR(.text) - LOAD_OFFSET) { _evba = .; _stext = .; *(.ex.text) *(.irq.text) KPROBES_TEXT TEXT_TEXT SCHED_TEXT CPUIDLE_TEXT LOCK_TEXT *(.fixup) *(.gnu.warning) _etext = .; } = 0xd703d703 EXCEPTION_TABLE(4) RODATA .data : AT(ADDR(.data) - LOAD_OFFSET) { _data = .; _sdata = .; INIT_TASK_DATA(THREAD_SIZE) PAGE_ALIGNED_DATA(PAGE_SIZE); CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) *(.data.rel*) DATA_DATA CONSTRUCTORS _edata = .; } BSS_SECTION(0, 8, 8) _end = .; DWARF_DEBUG /* When something in the kernel is NOT compiled as a module, the module * cleanup code and data are put into these segments. Both can then be * thrown away, as cleanup code is never called unless it's a module. */ DISCARDS } |