From 6440903c48460f4ad40bcdeb31e619e555a394e5 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 5 Dec 2013 10:26:08 +0100 Subject: bsps/m68k: Add and use linkcmds.base --- .../genmcf548x/startup/linkcmds.m5484FireEngine | 164 +-------------------- 1 file changed, 8 insertions(+), 156 deletions(-) (limited to 'c/src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.m5484FireEngine') diff --git a/c/src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.m5484FireEngine b/c/src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.m5484FireEngine index a2e92a8cb0..b1531f6cf8 100644 --- a/c/src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.m5484FireEngine +++ b/c/src/lib/libbsp/m68k/genmcf548x/startup/linkcmds.m5484FireEngine @@ -63,170 +63,22 @@ _BootFlashSize = DEFINED(_BootFlashSize) ? _BootFlashSize : (2 * 1024*1024); _CodeFlashBase = DEFINED(_CodeFlashBase) ? _CodeFlashBase : 0xE0000000; _CodeFlashSize = DEFINED(_CodeFlashSize) ? _CodeFlashSize : (16 * 1024*1024); -_VectorRam = DEFINED(_VectorRam) ? _VectorRam : _SdramBase; -_DataRam = DEFINED(_DataRam) ? _DataRam : _data_dest_start; -_DataRom = DEFINED(_DataRom) ? _DataRom : _data_src_start; -_DataEnd = DEFINED(_DataEnd) ? _DataEnd : _data_dest_end; -_BssStart = DEFINED(_BssStart) ? _BssStart : _clear_start; -_BssEnd = DEFINED(_BssEnd) ? _BssEnd : _clear_end; -_SpInit = DEFINED(_SpInit) ? _SpInit : _EndInitStackSpace; +bsp_initstack_size = DEFINED(StackSize) ? StackSize : 0x800; /* 2 kB */ -_InitStackSize = DEFINED(StackSize) ? StackSize : 0x800; /* 2 kB */ -_TopRamReserved = DEFINED(_TopRamReserved) ? _TopRamReserved : 0; - -RamBase = DEFINED(_SdramBase) ? _SdramBase : _SdramBase; -RamSize = DEFINED(_SdramSize) ? _SdramSize : _SdramSize; -HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0; -_VBR = DEFINED(_VBR) ? _VBR : RamBase; +_VBR = DEFINED(_VBR) ? _VBR : _SdramBase; __MBAR = DEFINED(__MBAR) ? __MBAR : 0x10000000; -ENTRY(start) MEMORY { - sdram : ORIGIN = 0x400 , LENGTH = 64M - 0x400 + sdram : ORIGIN = 0x00000000, LENGTH = 64M code_flash : ORIGIN = 0xE0000000, LENGTH = 16M boot_flash : ORIGIN = 0xFF800000, LENGTH = 2M } -SECTIONS -{ - - _header_offset = 0; - - /* - * Text, data and bss segments .vectors - */ - .vectors : { - *(.vectors*) - } >sdram - .text : { - - *(.text*) - *(.ram_code) - - /* - * C++ constructors/destructors - */ - *(.gnu.linkonce.t.*) - - /* - * Initialization and finalization code. - * - * Various files can provide initialization and finalization - * functions. crtbegin.o and crtend.o are two instances. The - * body of these functions are in .init and .fini sections. We - * accumulate the bodies here, and prepend function prologues - * from crti.o and function epilogues from crtn.o. crti.o must - * be linked first; crtn.o must be linked last. Because these - * are wildcards, it doesn't matter if the user does not - * actually link against crti.o and crtn.o; the linker won't - * look for a file to match a wildcard. The wildcard also - * means that it doesn't matter which directory crti.o and - * crtn.o are in. - */ - PROVIDE (_init = .); - *crti.o(.init) - *(.init) - *crtn.o(.init) - PROVIDE (_fini = .); - *crti.o(.fini) - *(.fini) - *crtn.o(.fini) - - /* - * Special FreeBSD sysctl sections. - */ - . = ALIGN (16); - __start_set_sysctl_set = .; - *(set_sysctl_*); - __stop_set_sysctl_set = ABSOLUTE(.); - *(set_domain_*); - *(set_pseudo_*); - +REGION_ALIAS ("REGION_TEXT", sdram); +REGION_ALIAS ("REGION_TEXT_LOAD", sdram); +REGION_ALIAS ("REGION_DATA", sdram); +REGION_ALIAS ("REGION_DATA_LOAD", sdram); - /* - * C++ constructors/destructors - * - * gcc uses crtbegin.o to find the start of the constructors - * and destructors so we make sure it is first. Because this - * is a wildcard, it doesn't matter if the user does not - * actually link against crtbegin.o; the linker won't look for - * a file to match a wildcard. The wildcard also means that - * it doesn't matter which directory crtbegin.o is in. The - * constructor and destructor list are terminated in - * crtend.o. The same comments apply to it. - */ - . = ALIGN (16); - *crtbegin.o(.ctors) - *(.ctors) - *crtend.o(.ctors) - *crtbegin.o(.dtors) - *(.dtors) - *crtend.o(.dtors) - - /* - * Exception frame info - */ - . = ALIGN (16); - *(.eh_frame) - - /* - * Read-only data - */ - . = ALIGN (16); - _rodata_start = . ; - *(.rodata*) - *(.gnu.linkonce.r*) - - . = ALIGN (16); - - *(.console_gdb_xfer) - *(.bootstrap_data) - . = ALIGN(16); - _estuff = .; - PROVIDE (_etext = .); - } >sdram - - .data : { - /*.data : {*/ - PROVIDE( _data_dest_start = . ); - PROVIDE( _copy_start = .); - *(.data*) - *(.gnu.linkonce.d*) - *(.gcc_except_table*) - *(.jcr) - . = ALIGN (16); - PROVIDE (_edata = .); - PROVIDE (_copy_end = .); - PROVIDE (_data_dest_end = . ); - } >sdram - - _data_src_start = _etext; /*LOADADDR(.data);*/ - _data_src_end = _data_src_start + SIZEOF(.data); - - .bss : { - PROVIDE (_clear_start = .); - *(.bss*) - *(COMMON) - . = ALIGN (16); - PROVIDE (end = .); - PROVIDE (_clear_end = .); - . = ALIGN (4); - PROVIDE (_StartInitStackSpace = .); - /*. = _StartInitStackSpace + _InitStackSize;*/ - . += _InitStackSize; - PROVIDE (_EndInitStackSpace = .); - PROVIDE (WorkAreaBase = .); - } >sdram - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - -PROVIDE (end_of_all = .); -} +INCLUDE linkcmds.base -- cgit v1.2.3