u-boot-spl.lds 1.9 KB
Newer Older
S
Scott Wood 已提交
1 2 3 4 5 6
/*
 * (C) Copyright 2006
 * Wolfgang Denk, DENX Software Engineering, wd@denx.de
 *
 * Copyright 2009 Freescale Semiconductor, Inc.
 *
7
 * SPDX-License-Identifier:	GPL-2.0+
S
Scott Wood 已提交
8 9 10 11 12
 */

#include "config.h"	/* CONFIG_BOARDDIR */

OUTPUT_ARCH(powerpc)
13 14 15 16 17 18 19
#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC
PHDRS
{
	text PT_LOAD;
	bss PT_LOAD;
}
#endif
S
Scott Wood 已提交
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
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  =  .;

47 48 49 50 51
	. = ALIGN(4);
	.u_boot_list : {
		KEEP(*(SORT(.u_boot_list*)));
	}

52 53 54 55 56
	. = .;
	__start___ex_table = .;
	__ex_table : { *(__ex_table) }
	__stop___ex_table = .;

S
Scott Wood 已提交
57 58 59
	. = ALIGN(8);
	__init_begin = .;
	__init_end = .;
60 61 62 63 64 65 66 67

/* For ifc, elbc, esdhc, espi, all need the SPL without section .resetvec */
#ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC
	.bootpg ADDR(.text) - 0x1000 :
	{
		KEEP(*(.bootpg))
	} :text = 0xffff
#else
S
Scott Wood 已提交
68
#if defined(CONFIG_FSL_IFC) /* Restrict bootpg at 4K boundry for IFC */
69 70 71 72
#ifndef BOOT_PAGE_OFFSET
#define BOOT_PAGE_OFFSET 0x1000
#endif
	.bootpg ADDR(.text) + BOOT_PAGE_OFFSET :
S
Scott Wood 已提交
73
	{
74
		arch/powerpc/cpu/mpc85xx/start.o (.bootpg)
S
Scott Wood 已提交
75
	}
76
#ifndef RESET_VECTOR_OFFSET
S
Scott Wood 已提交
77
#define RESET_VECTOR_OFFSET 0x1ffc /* IFC has 8K sram */
78
#endif
S
Scott Wood 已提交
79 80 81 82 83 84 85 86
#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
87
#endif
S
Scott Wood 已提交
88 89 90 91 92 93 94

	/*
	 * Make sure that the bss segment isn't linked at 0x0, otherwise its
	 * address won't be updated during relocation fixups.
	 */
	. |= 0x10;

95
	. = ALIGN(4);
S
Scott Wood 已提交
96 97 98 99 100
	__bss_start = .;
	.bss : {
		*(.sbss*)
		*(.bss*)
	}
101
	. = ALIGN(4);
S
Simon Glass 已提交
102
	__bss_end = .;
S
Scott Wood 已提交
103
}