xref: /rk3399_rockchip-uboot/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds (revision 5f5620ab2679608f94b3a77e51c77d0a770103bd)
1a47a12beSStefan Roese/*
2a47a12beSStefan Roese * (C) Copyright 2006
3a47a12beSStefan Roese * Wolfgang Denk, DENX Software Engineering, wd@denx.de
4a47a12beSStefan Roese *
5a47a12beSStefan Roese * Copyright 2009 Freescale Semiconductor, Inc.
6a47a12beSStefan Roese *
71a459660SWolfgang Denk * SPDX-License-Identifier:	GPL-2.0+
8a47a12beSStefan Roese */
9a47a12beSStefan Roese
10*6f2ed0e9SMasahiro Yamada#include "config.h"
1152f90dadSDipen Dudhat
12a47a12beSStefan RoeseOUTPUT_ARCH(powerpc)
13a47a12beSStefan RoeseSECTIONS
14a47a12beSStefan Roese{
15a47a12beSStefan Roese	. = 0xfff00000;
16a47a12beSStefan Roese	.text : {
1736ae6a8eSHaiying Wang		*(.text*)
18a47a12beSStefan Roese	}
19a47a12beSStefan Roese	_etext = .;
20a47a12beSStefan Roese
21a47a12beSStefan Roese	.reloc : {
22a47a12beSStefan Roese		_GOT2_TABLE_ = .;
2336ae6a8eSHaiying Wang		KEEP(*(.got2))
24d2a97dafSScott Wood		KEEP(*(.got))
25a47a12beSStefan Roese		_FIXUP_TABLE_ = .;
2636ae6a8eSHaiying Wang		KEEP(*(.fixup))
27a47a12beSStefan Roese	}
28d2a97dafSScott Wood	__got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
29a47a12beSStefan Roese	__fixup_entries = (. - _FIXUP_TABLE_) >> 2;
30a47a12beSStefan Roese
31a47a12beSStefan Roese	. = ALIGN(8);
32a47a12beSStefan Roese	.data : {
33a47a12beSStefan Roese		*(.rodata*)
34a47a12beSStefan Roese		*(.data*)
35a47a12beSStefan Roese		*(.sdata*)
36a47a12beSStefan Roese	}
37a47a12beSStefan Roese	_edata  =  .;
38a47a12beSStefan Roese
3955675142SMarek Vasut	.u_boot_list : {
40ef123c52SAlbert ARIBAUD		KEEP(*(SORT(.u_boot_list*)));
4155675142SMarek Vasut	}
4255675142SMarek Vasut
43a47a12beSStefan Roese	. = ALIGN(8);
44a47a12beSStefan Roese	__init_begin = .;
45a47a12beSStefan Roese	__init_end = .;
4652f90dadSDipen Dudhat#if defined(CONFIG_FSL_IFC) /* Restrict bootpg at 4K boundry for IFC */
4752f90dadSDipen Dudhat	.bootpg ADDR(.text) + 0x1000 :
4852f90dadSDipen Dudhat	{
4952f90dadSDipen Dudhat		start.o	(.bootpg)
5052f90dadSDipen Dudhat	}
5152f90dadSDipen Dudhat#define RESET_VECTOR_OFFSET 0x1ffc /* IFC has 8K sram */
5252f90dadSDipen Dudhat#elif defined(CONFIG_FSL_ELBC)
5352f90dadSDipen Dudhat#define RESET_VECTOR_OFFSET 0xffc /* LBC has 4k sram */
5452f90dadSDipen Dudhat#else
5552f90dadSDipen Dudhat#error unknown NAND controller
5652f90dadSDipen Dudhat#endif
5752f90dadSDipen Dudhat	.resetvec ADDR(.text) + RESET_VECTOR_OFFSET : {
5836ae6a8eSHaiying Wang		KEEP(*(.resetvec))
59a47a12beSStefan Roese	} = 0xffff
60a47a12beSStefan Roese
61a47a12beSStefan Roese	__bss_start = .;
62a47a12beSStefan Roese	.bss : {
6336ae6a8eSHaiying Wang		*(.sbss*)
6436ae6a8eSHaiying Wang		*(.bss*)
65a47a12beSStefan Roese	}
663929fb0aSSimon Glass	__bss_end = .;
67a47a12beSStefan Roese}
6852f90dadSDipen DudhatASSERT(__init_end <= (0xfff00000 + RESET_VECTOR_OFFSET), "NAND bootstrap too big");
69