Linux Audio

Check our new training course

Loading...
Note: File does not exist in v5.9.
  1/*
  2 *	vmlinux.lds.S -- master linker script for m68knommu arch
  3 *
  4 *	(C) Copyright 2002-2006, Greg Ungerer <gerg@snapgear.com>
  5 *
  6 *	This linker script is equipped to build either ROM loaded or RAM
  7 *	run kernels.
  8 */
  9
 10#include <asm-generic/vmlinux.lds.h>
 11#include <asm/page.h>
 12#include <asm/thread_info.h>
 13
 14#if defined(CONFIG_RAMKERNEL)
 15#define	RAM_START	CONFIG_KERNELBASE
 16#define	RAM_LENGTH	(CONFIG_RAMBASE + CONFIG_RAMSIZE - CONFIG_KERNELBASE)
 17#define	TEXT		ram
 18#define	DATA		ram
 19#define	INIT		ram
 20#define	BSSS		ram
 21#endif
 22#if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL)
 23#define	RAM_START	CONFIG_RAMBASE
 24#define	RAM_LENGTH	CONFIG_RAMSIZE
 25#define	ROMVEC_START	CONFIG_ROMVEC
 26#define	ROMVEC_LENGTH	CONFIG_ROMVECSIZE
 27#define	ROM_START	CONFIG_ROMSTART
 28#define	ROM_LENGTH	CONFIG_ROMSIZE
 29#define	TEXT		rom
 30#define	DATA		ram
 31#define	INIT		ram
 32#define	BSSS		ram
 33#endif
 34
 35#ifndef DATA_ADDR
 36#define	DATA_ADDR
 37#endif
 38
 39
 40OUTPUT_ARCH(m68k)
 41ENTRY(_start)
 42
 43MEMORY {
 44	ram	: ORIGIN = RAM_START, LENGTH = RAM_LENGTH
 45#ifdef ROM_START
 46	romvec	: ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH
 47	rom	: ORIGIN = ROM_START, LENGTH = ROM_LENGTH
 48#endif
 49}
 50
 51jiffies = jiffies_64 + 4;
 52
 53SECTIONS {
 54
 55#ifdef ROMVEC_START
 56	. = ROMVEC_START ;
 57	.romvec : {
 58		__rom_start = . ;
 59		_romvec = .;
 60		*(.data..initvect)
 61	} > romvec
 62#endif
 63
 64	.text : {
 65		_text = .;
 66		_stext = . ;
 67		HEAD_TEXT
 68		TEXT_TEXT
 69		SCHED_TEXT
 70		LOCK_TEXT
 71		*(.text..lock)
 72
 73		. = ALIGN(16);          /* Exception table              */
 74		__start___ex_table = .;
 75		*(__ex_table)
 76		__stop___ex_table = .;
 77
 78		*(.rodata) *(.rodata.*)
 79		*(__vermagic)		/* Kernel version magic */
 80		*(__markers_strings)
 81		*(.rodata1)
 82		*(.rodata.str1.1)
 83
 84		/* Kernel symbol table: Normal symbols */
 85		. = ALIGN(4);
 86		__start___ksymtab = .;
 87		*(SORT(___ksymtab+*))
 88		__stop___ksymtab = .;
 89
 90		/* Kernel symbol table: GPL-only symbols */
 91		__start___ksymtab_gpl = .;
 92		*(SORT(___ksymtab_gpl+*))
 93		__stop___ksymtab_gpl = .;
 94
 95		/* Kernel symbol table: Normal unused symbols */
 96		__start___ksymtab_unused = .;
 97		*(SORT(___ksymtab_unused+*))
 98		__stop___ksymtab_unused = .;
 99
100		/* Kernel symbol table: GPL-only unused symbols */
101		__start___ksymtab_unused_gpl = .;
102		*(SORT(___ksymtab_unused_gpl+*))
103		__stop___ksymtab_unused_gpl = .;
104
105		/* Kernel symbol table: GPL-future symbols */
106		__start___ksymtab_gpl_future = .;
107		*(SORT(___ksymtab_gpl_future+*))
108		__stop___ksymtab_gpl_future = .;
109
110		/* Kernel symbol table: Normal symbols */
111		__start___kcrctab = .;
112		*(SORT(___kcrctab+*))
113		__stop___kcrctab = .;
114
115		/* Kernel symbol table: GPL-only symbols */
116		__start___kcrctab_gpl = .;
117		*(SORT(___kcrctab_gpl+*))
118		__stop___kcrctab_gpl = .;
119
120		/* Kernel symbol table: Normal unused symbols */
121		__start___kcrctab_unused = .;
122		*(SORT(___kcrctab_unused+*))
123		__stop___kcrctab_unused = .;
124
125		/* Kernel symbol table: GPL-only unused symbols */
126		__start___kcrctab_unused_gpl = .;
127		*(SORT(___kcrctab_unused_gpl+*))
128		__stop___kcrctab_unused_gpl = .;
129
130		/* Kernel symbol table: GPL-future symbols */
131		__start___kcrctab_gpl_future = .;
132		*(SORT(___kcrctab_gpl_future+*))
133		__stop___kcrctab_gpl_future = .;
134
135		/* Kernel symbol table: strings */
136		*(__ksymtab_strings)
137
138		/* Built-in module parameters */
139		. = ALIGN(4) ;
140		__start___param = .;
141		*(__param)
142		__stop___param = .;
143
144		/* Built-in module versions */
145		. = ALIGN(4) ;
146		__start___modver = .;
147		*(__modver)
148		__stop___modver = .;
149
150		. = ALIGN(4) ;
151		_etext = . ;
152	} > TEXT
153
154	.data DATA_ADDR : {
155		. = ALIGN(4);
156		_sdata = . ;
157		DATA_DATA
158		CACHELINE_ALIGNED_DATA(32)
159		PAGE_ALIGNED_DATA(PAGE_SIZE)
160		*(.data..shared_aligned)
161		INIT_TASK_DATA(THREAD_SIZE)
162		_edata = . ;
163	} > DATA
164
165	.init.text : {
166		. = ALIGN(PAGE_SIZE);
167		__init_begin = .;
168	} > INIT
169	INIT_TEXT_SECTION(PAGE_SIZE) > INIT
170	INIT_DATA_SECTION(16) > INIT
171	.init.data : {
172		. = ALIGN(PAGE_SIZE);
173		__init_end = .;
174	} > INIT
175
176	.bss : {
177		. = ALIGN(4);
178		_sbss = . ;
179		*(.bss)
180		*(COMMON)
181		. = ALIGN(4) ;
182		_ebss = . ;
183	 	_end = . ;
184	} > BSSS
185
186	DISCARDS
187}
188