⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vmlinux.lds.s

📁 linux-2.6.15.6
💻 S
字号:
/* *	vmlinux.lds.S -- master linker script for m68knommu arch * *	(C) Copyright 2002-2004, Greg Ungerer <gerg@snapgear.com> * *	This ends up looking compilcated, because of the number of *	address variations for ram and rom/flash layouts. The real *	work of the linker script is all at the end, and reasonably *	strait forward. */#include <linux/config.h>#include <asm-generic/vmlinux.lds.h>/* *	Original Palm pilot (same for Xcopilot). *	There is really only a rom target for this. */#ifdef CONFIG_PILOT3#define	ROMVEC_START	0x10c00000#define	ROMVEC_LENGTH	0x10400#define	ROM_START	0x10c10400#define	ROM_LENGTH	0xfec00#define	ROM_END		0x10d00000#define	RAMVEC_START	0x00000000#define	RAMVEC_LENGTH	0x400#define	RAM_START	0x10000400#define	RAM_LENGTH	0xffc00#define	RAM_END		0x10100000#define _ramend	_ram_end_notused#define	DATA_ADDR	RAM_START#endif/* *	Same setup on both the uCsimm and uCdimm. */#if defined(CONFIG_UCSIMM) || defined(CONFIG_UCDIMM)#ifdef CONFIG_RAMKERNEL#define	ROMVEC_START	0x10c10000#define	ROMVEC_LENGTH	0x400#define	ROM_START	0x10c10400#define	ROM_LENGTH	0x1efc00#define	ROM_END		0x10e00000#define	RAMVEC_START	0x00000000#define	RAMVEC_LENGTH	0x400#define	RAM_START	0x00020400#define	RAM_LENGTH	0x7dfc00#define	RAM_END		0x00800000#endif#ifdef CONFIG_ROMKERNEL#define	ROMVEC_START	0x10c10000#define	ROMVEC_LENGTH	0x400#define	ROM_START	0x10c10400#define	ROM_LENGTH	0x1efc00#define	ROM_END		0x10e00000#define	RAMVEC_START	0x00000000#define	RAMVEC_LENGTH	0x400#define	RAM_START	0x00020000#define	RAM_LENGTH	0x600000#define	RAM_END		0x00800000#endif#ifdef CONFIG_HIMEMKERNEL#define	ROMVEC_START	0x00600000#define	ROMVEC_LENGTH	0x400#define	ROM_START	0x00600400#define	ROM_LENGTH	0x1efc00#define	ROM_END		0x007f0000#define	RAMVEC_START	0x00000000#define	RAMVEC_LENGTH	0x400#define	RAM_START	0x00020000#define	RAM_LENGTH	0x5e0000#define	RAM_END		0x00600000#endif#endif#ifdef CONFIG_DRAGEN2#define	RAM_START	0x10000#define	RAM_LENGTH	0x7f0000#endif#ifdef CONFIG_UCQUICC#define	ROMVEC_START	0x00000000#define	ROMVEC_LENGTH	0x404#define	ROM_START	0x00000404#define	ROM_LENGTH	0x1ff6fc#define	ROM_END		0x00200000#define	RAMVEC_START	0x00200000#define	RAMVEC_LENGTH	0x404#define	RAM_START	0x00200404#define	RAM_LENGTH	0x1ff6fc#define	RAM_END		0x00400000#endif/* *	The standard Arnewsh 5206 board only has 1MiB of ram. Not normally *	enough to be useful. Assume the user has fitted something larger, *	at least 4MiB in size. No point in not letting the kernel completely *	link, it will be obvious if it is too big when they go to load it. */#if defined(CONFIG_ARN5206)#define	RAM_START	0x10000#define	RAM_LENGTH	0x3f0000#endif/* *	The Motorola 5206eLITE board only has 1MiB of static RAM. */#if defined(CONFIG_ELITE)#define	RAM_START	0x30020000#define	RAM_LENGTH	0xe0000#endif/* *	All the Motorola eval boards have the same basic arrangement. *	The end of RAM will vary depending on how much ram is fitted, *	but this isn't important here, we assume at least 4MiB. */#if defined(CONFIG_M5206eC3) || defined(CONFIG_M5249C3) || \    defined(CONFIG_M5272C3) || defined(CONFIG_M5307C3) || \    defined(CONFIG_ARN5307) || defined(CONFIG_M5407C3) || \    defined(CONFIG_M5271EVB) || defined(CONFIG_M5275EVB) || \    defined(CONFIG_M5235EVB)#define	RAM_START	0x20000#define	RAM_LENGTH	0x3e0000#endif/* *	The Freescale 5208EVB board has 32MB of RAM. */#if defined(CONFIG_M5208EVB)#define	RAM_START	0x40020000#define	RAM_LENGTH	0x01e00000#endif/* *	The senTec COBRA5272 board has nearly the same memory layout as  *	the M5272C3. We assume 16MiB ram. */#if defined(CONFIG_COBRA5272)#define RAM_START   0x20000#define RAM_LENGTH  0xfe0000#endif#if defined(CONFIG_M5282EVB)#define	RAM_START	0x10000#define	RAM_LENGTH	0x3f0000#endif/* *	The senTec COBRA5282 board has the same memory layout as the M5282EVB. */#if defined(CONFIG_COBRA5282)#define  RAM_START   0x10000#define  RAM_LENGTH  0x3f0000#endif/* *	The EMAC SoM-5282EM module. */#if defined(CONFIG_SOM5282EM)#define  RAM_START   0x10000#define  RAM_LENGTH  0xff0000#endif/* *	These flash boot boards use all of ram for operation. Again the *	actual memory size is not important here, assume at least 4MiB. *	They currently have no support for running in flash. */#if defined(CONFIG_NETtel) || defined(CONFIG_eLIA) || \    defined(CONFIG_DISKtel) || defined(CONFIG_SECUREEDGEMP3) || \    defined(CONFIG_HW_FEITH)#define	RAM_START	0x400#define	RAM_LENGTH	0x3ffc00#endif/* *	Sneha Boards mimimun memory *	The end of RAM will vary depending on how much ram is fitted, *	but this isn't important here, we assume at least 4MiB. */#if defined(CONFIG_CPU16B)   #define	RAM_START	0x20000#define	RAM_LENGTH	0x3e0000#endif#if defined(CONFIG_MOD5272)#define RAM_START	0x02000000#define RAM_LENGTH	0x00800000#define RAMVEC_START	0x20000000#define RAMVEC_LENGTH	0x00000400#endif#if defined(CONFIG_RAMKERNEL)#define	TEXT		ram#define	DATA		ram#define	INIT		ram#define	BSS		ram#endif#if defined(CONFIG_ROMKERNEL) || defined(CONFIG_HIMEMKERNEL)#define	TEXT		rom#define	DATA		ram#define	INIT		ram#define	BSS		ram#endif#ifndef DATA_ADDR#define	DATA_ADDR#endifOUTPUT_ARCH(m68k)ENTRY(_start)MEMORY {#ifdef RAMVEC_START	ramvec	: ORIGIN = RAMVEC_START, LENGTH = RAMVEC_LENGTH#endif	ram	: ORIGIN = RAM_START, LENGTH = RAM_LENGTH#ifdef RAM_END	eram	: ORIGIN = RAM_END, LENGTH = 0#endif#ifdef ROM_START	romvec	: ORIGIN = ROMVEC_START, LENGTH = ROMVEC_LENGTH	rom	: ORIGIN = ROM_START, LENGTH = ROM_LENGTH	erom	: ORIGIN = ROM_END, LENGTH = 0#endif}jiffies = jiffies_64 + 4;SECTIONS {#ifdef ROMVEC_START	. = ROMVEC_START ;	.romvec : {		__rom_start = . ;		_romvec = .;		*(.data.initvect)	} > romvec#endif	.text : {		_stext = . ;        	*(.text)		SCHED_TEXT        	*(.text.lock)		. = ALIGN(16);          /* Exception table              */		__start___ex_table = .;		*(__ex_table)		__stop___ex_table = .;		*(.rodata) *(.rodata.*)		*(__vermagic)		/* Kernel version magic */		*(.rodata1)		*(.rodata.str1.1)		/* Kernel symbol table: Normal symbols */		. = ALIGN(4);		__start___ksymtab = .;		*(__ksymtab)		__stop___ksymtab = .;		/* Kernel symbol table: GPL-only symbols */		__start___ksymtab_gpl = .;		*(__ksymtab_gpl)		__stop___ksymtab_gpl = .;		/* Kernel symbol table: Normal symbols */		__start___kcrctab = .;		*(__kcrctab)		__stop___kcrctab = .;		/* Kernel symbol table: GPL-only symbols */		__start___kcrctab_gpl = .;		*(__kcrctab_gpl)		__stop___kcrctab_gpl = .;		/* Kernel symbol table: strings */		*(__ksymtab_strings)		/* Built-in module parameters */		. = ALIGN(4) ;		__start___param = .;		*(__param)		__stop___param = .;		. = ALIGN(4) ;		_etext = . ;	} > TEXT#ifdef ROM_END	. = ROM_END ;	.erom : {		__rom_end = . ;	} > erom#endif#ifdef RAMVEC_START	. = RAMVEC_START ;	.ramvec : {		__ramvec = .;	} > ramvec#endif	.data DATA_ADDR : {		. = ALIGN(4);		_sdata = . ;		*(.data)		. = ALIGN(8192) ;		*(.data.init_task)		_edata = . ;	} > DATA	.init : {		. = ALIGN(4096);		__init_begin = .;		_sinittext = .;		*(.init.text)		_einittext = .;		*(.init.data)		. = ALIGN(16);		__setup_start = .;		*(.init.setup)		__setup_end = .;		__initcall_start = .;		*(.initcall1.init)		*(.initcall2.init)		*(.initcall3.init)		*(.initcall4.init)		*(.initcall5.init)		*(.initcall6.init)		*(.initcall7.init)		__initcall_end = .;		__con_initcall_start = .;		*(.con_initcall.init)		__con_initcall_end = .;		__security_initcall_start = .;		*(.security_initcall.init)		__security_initcall_end = .;		. = ALIGN(4);		__initramfs_start = .;		*(.init.ramfs)		__initramfs_end = .;		. = ALIGN(4096);		__init_end = .;	} > INIT	/DISCARD/ : {		*(.exit.text)		*(.exit.data)		*(.exitcall.exit)	}	.bss : {		. = ALIGN(4);		_sbss = . ;		*(.bss)		*(COMMON)		. = ALIGN(4) ;		_ebss = . ;	} > BSS#ifdef RAM_END	. = RAM_END ;	.eram : {		__ramend = . ;		_ramend = . ;	} > eram#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -