diff options
| author | Scott Wood <scottwood@freescale.com> | 2012-09-20 19:02:18 -0500 | 
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2012-11-26 15:41:25 -0600 | 
| commit | c97cd1ba480482e220c5dcef0cd751d21a1bf74e (patch) | |
| tree | 72fc693655e3e8e6b9532a347202103db2d5ff8a /arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | |
| parent | 4b919725b66152edd8c7cecc9e42864eec12c57d (diff) | |
| download | olio-uboot-2014.01-c97cd1ba480482e220c5dcef0cd751d21a1bf74e.tar.xz olio-uboot-2014.01-c97cd1ba480482e220c5dcef0cd751d21a1bf74e.zip | |
spl/85xx: new SPL support
Update CONFIG_RAMBOOT and CONFIG_NAND_SPL references to accept CONFIG_SPL
and CONFIG_SPL_BUILD, respectively.  CONFIG_NAND_SPL can be removed once
the last mpc85xx nand_spl target is gone.
CONFIG_RAMBOOT will need to remain for other use cases, but it doesn't
seem right to overload it for meaning SPL as well as nand_spl does.  Even
if it's somewhat appropriate for the main u-boot, the SPL itself isn't
(necessarily) ramboot, and we don't have separate configs for SPL and
main u-boot.  It was also inconsistent, as other platforms such as
mpc83xx didn't use CONFIG_RAMBOOT in this way.
Signed-off-by: Scott Wood <scottwood@freescale.com>
Cc: Andy Fleming <afleming@freescale.com>
Diffstat (limited to 'arch/powerpc/cpu/mpc85xx/u-boot-spl.lds')
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 87 | 
1 files changed, 87 insertions, 0 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds new file mode 100644 index 000000000..1c408e29f --- /dev/null +++ b/arch/powerpc/cpu/mpc85xx/u-boot-spl.lds @@ -0,0 +1,87 @@ +/* + * (C) Copyright 2006 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de + * + * Copyright 2009 Freescale Semiconductor, Inc. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include "config.h"	/* CONFIG_BOARDDIR */ + +OUTPUT_ARCH(powerpc) +SECTIONS +{ +	. = CONFIG_SPL_TEXT_BASE; +	.text : { +		*(.text*) +	} +	_etext = .; + +	.reloc : { +		_GOT2_TABLE_ = .; +		KEEP(*(.got2)) +		KEEP(*(.got)) +		PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4); +		_FIXUP_TABLE_ = .; +		KEEP(*(.fixup)) +	} +	__got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1; +	__fixup_entries = (. - _FIXUP_TABLE_) >> 2; + +	. = ALIGN(8); +	.data : { +		*(.rodata*) +		*(.data*) +		*(.sdata*) +	} +	_edata  =  .; + +	. = ALIGN(8); +	__init_begin = .; +	__init_end = .; +/* FIXME for non-NAND SPL */ +#if defined(CONFIG_FSL_IFC) /* Restrict bootpg at 4K boundry for IFC */ +	.bootpg ADDR(.text) + 0x1000 : +	{ +		start.o	(.bootpg) +	} +#define RESET_VECTOR_OFFSET 0x1ffc /* IFC has 8K sram */ +#elif defined(CONFIG_FSL_ELBC) +#define RESET_VECTOR_OFFSET 0xffc /* LBC has 4k sram */ +#else +#error unknown NAND controller +#endif +	.resetvec ADDR(.text) + RESET_VECTOR_OFFSET : { +		KEEP(*(.resetvec)) +	} = 0xffff + +	/* +	 * Make sure that the bss segment isn't linked at 0x0, otherwise its +	 * address won't be updated during relocation fixups. +	 */ +	. |= 0x10; + +	__bss_start = .; +	.bss : { +		*(.sbss*) +		*(.bss*) +	} +	__bss_end__ = .; +} |