Path: blob/master/arch/m68k/kernel/vmlinux.lds_no.S
10820 views
/*1* vmlinux.lds.S -- master linker script for m68knommu arch2*3* (C) Copyright 2002-2006, Greg Ungerer <[email protected]>4*5* This linker script is equipped to build either ROM loaded or RAM6* run kernels.7*/89#include <asm-generic/vmlinux.lds.h>10#include <asm/page.h>11#include <asm/thread_info.h>1213#if defined(CONFIG_RAMKERNEL)14#define RAM_START CONFIG_KERNELBASE15#define RAM_LENGTH (CONFIG_RAMBASE + CONFIG_RAMSIZE - CONFIG_KERNELBASE)16#define TEXT ram17#define DATA ram18#define INIT ram19#define BSSS ram20#endif21#if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL)22#define RAM_START CONFIG_RAMBASE23#define RAM_LENGTH CONFIG_RAMSIZE24#define ROMVEC_START CONFIG_ROMVEC25#define ROMVEC_LENGTH CONFIG_ROMVECSIZE26#define ROM_START CONFIG_ROMSTART27#define ROM_LENGTH CONFIG_ROMSIZE28#define TEXT rom29#define DATA ram30#define INIT ram31#define BSSS ram32#endif3334#ifndef DATA_ADDR35#define DATA_ADDR36#endif373839OUTPUT_ARCH(m68k)40ENTRY(_start)4142MEMORY {43ram : ORIGIN = RAM_START, LENGTH = RAM_LENGTH44#ifdef ROM_START45romvec : ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH46rom : ORIGIN = ROM_START, LENGTH = ROM_LENGTH47#endif48}4950jiffies = jiffies_64 + 4;5152SECTIONS {5354#ifdef ROMVEC_START55. = ROMVEC_START ;56.romvec : {57__rom_start = . ;58_romvec = .;59*(.data..initvect)60} > romvec61#endif6263.text : {64_text = .;65_stext = . ;66HEAD_TEXT67TEXT_TEXT68SCHED_TEXT69LOCK_TEXT70*(.text..lock)7172. = ALIGN(16); /* Exception table */73__start___ex_table = .;74*(__ex_table)75__stop___ex_table = .;7677*(.rodata) *(.rodata.*)78*(__vermagic) /* Kernel version magic */79*(__markers_strings)80*(.rodata1)81*(.rodata.str1.1)8283/* Kernel symbol table: Normal symbols */84. = ALIGN(4);85__start___ksymtab = .;86*(SORT(___ksymtab+*))87__stop___ksymtab = .;8889/* Kernel symbol table: GPL-only symbols */90__start___ksymtab_gpl = .;91*(SORT(___ksymtab_gpl+*))92__stop___ksymtab_gpl = .;9394/* Kernel symbol table: Normal unused symbols */95__start___ksymtab_unused = .;96*(SORT(___ksymtab_unused+*))97__stop___ksymtab_unused = .;9899/* Kernel symbol table: GPL-only unused symbols */100__start___ksymtab_unused_gpl = .;101*(SORT(___ksymtab_unused_gpl+*))102__stop___ksymtab_unused_gpl = .;103104/* Kernel symbol table: GPL-future symbols */105__start___ksymtab_gpl_future = .;106*(SORT(___ksymtab_gpl_future+*))107__stop___ksymtab_gpl_future = .;108109/* Kernel symbol table: Normal symbols */110__start___kcrctab = .;111*(SORT(___kcrctab+*))112__stop___kcrctab = .;113114/* Kernel symbol table: GPL-only symbols */115__start___kcrctab_gpl = .;116*(SORT(___kcrctab_gpl+*))117__stop___kcrctab_gpl = .;118119/* Kernel symbol table: Normal unused symbols */120__start___kcrctab_unused = .;121*(SORT(___kcrctab_unused+*))122__stop___kcrctab_unused = .;123124/* Kernel symbol table: GPL-only unused symbols */125__start___kcrctab_unused_gpl = .;126*(SORT(___kcrctab_unused_gpl+*))127__stop___kcrctab_unused_gpl = .;128129/* Kernel symbol table: GPL-future symbols */130__start___kcrctab_gpl_future = .;131*(SORT(___kcrctab_gpl_future+*))132__stop___kcrctab_gpl_future = .;133134/* Kernel symbol table: strings */135*(__ksymtab_strings)136137/* Built-in module parameters */138. = ALIGN(4) ;139__start___param = .;140*(__param)141__stop___param = .;142143/* Built-in module versions */144. = ALIGN(4) ;145__start___modver = .;146*(__modver)147__stop___modver = .;148149. = ALIGN(4) ;150_etext = . ;151} > TEXT152153.data DATA_ADDR : {154. = ALIGN(4);155_sdata = . ;156DATA_DATA157CACHELINE_ALIGNED_DATA(32)158PAGE_ALIGNED_DATA(PAGE_SIZE)159*(.data..shared_aligned)160INIT_TASK_DATA(THREAD_SIZE)161_edata = . ;162} > DATA163164.init.text : {165. = ALIGN(PAGE_SIZE);166__init_begin = .;167} > INIT168INIT_TEXT_SECTION(PAGE_SIZE) > INIT169INIT_DATA_SECTION(16) > INIT170.init.data : {171. = ALIGN(PAGE_SIZE);172__init_end = .;173} > INIT174175.bss : {176. = ALIGN(4);177_sbss = . ;178*(.bss)179*(COMMON)180. = ALIGN(4) ;181_ebss = . ;182_end = . ;183} > BSSS184185DISCARDS186}187188189190