xref: /rk3399_rockchip-uboot/arch/sh/cpu/u-boot.lds (revision 34f98a3d2e10a273bf5b707ce941b4b8c9fc0e87)
1afc3929fSMasahiro Yamada/*
28371dabbSVladimir Zapolskiy * Copyright (C) 2016 Vladimir Zapolskiy <vz@mleia.com>
38371dabbSVladimir Zapolskiy * Copyright (C) 2008-2009 Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
48371dabbSVladimir Zapolskiy * Copyright (C) 2008 Mark Jonas <mark.jonas@de.bosch.com>
58371dabbSVladimir Zapolskiy * Copyright (C) 2007 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
6afc3929fSMasahiro Yamada *
7afc3929fSMasahiro Yamada * SPDX-License-Identifier:	GPL-2.0+
8afc3929fSMasahiro Yamada */
9afc3929fSMasahiro Yamada
103f8b5391SVladimir Zapolskiy#include "config.h"
113f8b5391SVladimir Zapolskiy
1290340c87SThomas Petazzoni#ifdef CONFIG_SYS_BIG_ENDIAN
1390340c87SThomas PetazzoniOUTPUT_FORMAT("elf32-shbig-linux", "elf32-shbig-linux", "elf32-sh-linux")
1490340c87SThomas Petazzoni#else
15afc3929fSMasahiro YamadaOUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
1690340c87SThomas Petazzoni#endif
1790340c87SThomas Petazzoni
18afc3929fSMasahiro YamadaOUTPUT_ARCH(sh)
198371dabbSVladimir Zapolskiy
208371dabbSVladimir ZapolskiyMEMORY
218371dabbSVladimir Zapolskiy{
228371dabbSVladimir Zapolskiy	ram	: ORIGIN = CONFIG_SYS_SDRAM_BASE, LENGTH = CONFIG_SYS_SDRAM_SIZE
238371dabbSVladimir Zapolskiy}
248371dabbSVladimir Zapolskiy
25afc3929fSMasahiro YamadaENTRY(_start)
26afc3929fSMasahiro Yamada
27afc3929fSMasahiro YamadaSECTIONS
28afc3929fSMasahiro Yamada{
29b26d2507SVladimir Zapolskiy	reloc_dst = .;
30afc3929fSMasahiro Yamada
31afc3929fSMasahiro Yamada	PROVIDE (_ftext = .);
32afc3929fSMasahiro Yamada	PROVIDE (_fcode = .);
33afc3929fSMasahiro Yamada	PROVIDE (_start = .);
34afc3929fSMasahiro Yamada
35afc3929fSMasahiro Yamada	.text :
36afc3929fSMasahiro Yamada	{
37afc3929fSMasahiro Yamada		KEEP(*/start.o		(.text))
389ec4a67eSVladimir Zapolskiy		KEEP(CONFIG_BOARDDIR/lowlevel_init.o	(.text .spiboot1.text))
393f8b5391SVladimir Zapolskiy		KEEP(*(.spiboot2.text))
40afc3929fSMasahiro Yamada		. = ALIGN(8192);
41*34f98a3dSTom Rini#ifdef CONFIG_ENV_IS_IN_FLASH
42*34f98a3dSTom Rini		env/embedded.o  (.doesnotexist)
43*34f98a3dSTom Rini		. = ALIGN(8192);
44*34f98a3dSTom Rini#endif
45afc3929fSMasahiro Yamada		*(.text)
46afc3929fSMasahiro Yamada		. = ALIGN(4);
478371dabbSVladimir Zapolskiy	} >ram =0xFF
48afc3929fSMasahiro Yamada	PROVIDE (_ecode = .);
49afc3929fSMasahiro Yamada	.rodata :
50afc3929fSMasahiro Yamada	{
51afc3929fSMasahiro Yamada		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
52afc3929fSMasahiro Yamada		. = ALIGN(4);
538371dabbSVladimir Zapolskiy	} >ram
54afc3929fSMasahiro Yamada	PROVIDE (_etext = .);
55afc3929fSMasahiro Yamada
56afc3929fSMasahiro Yamada
57afc3929fSMasahiro Yamada	PROVIDE (_fdata = .);
58afc3929fSMasahiro Yamada	.data :
59afc3929fSMasahiro Yamada	{
60afc3929fSMasahiro Yamada		*(.data)
61afc3929fSMasahiro Yamada		. = ALIGN(4);
628371dabbSVladimir Zapolskiy	} >ram
63afc3929fSMasahiro Yamada	PROVIDE (_edata = .);
64afc3929fSMasahiro Yamada
65afc3929fSMasahiro Yamada	PROVIDE (_fgot = .);
66afc3929fSMasahiro Yamada	.got :
67afc3929fSMasahiro Yamada	{
6876a55989SVladimir Zapolskiy		*(.got.plt) *(.got)
69afc3929fSMasahiro Yamada		. = ALIGN(4);
708371dabbSVladimir Zapolskiy	} >ram
71afc3929fSMasahiro Yamada	PROVIDE (_egot = .);
72afc3929fSMasahiro Yamada
73afc3929fSMasahiro Yamada	.u_boot_list : {
74afc3929fSMasahiro Yamada		KEEP(*(SORT(.u_boot_list*)));
758371dabbSVladimir Zapolskiy	} >ram
76afc3929fSMasahiro Yamada
77f41e6088SSimon Glass	PROVIDE (__init_end = .);
78afc3929fSMasahiro Yamada	PROVIDE (reloc_dst_end = .);
79afc3929fSMasahiro Yamada
80afc3929fSMasahiro Yamada	PROVIDE (bss_start = .);
81afc3929fSMasahiro Yamada	PROVIDE (__bss_start = .);
82afc3929fSMasahiro Yamada	.bss :
83afc3929fSMasahiro Yamada	{
84afc3929fSMasahiro Yamada		*(.bss)
85afc3929fSMasahiro Yamada		. = ALIGN(4);
868371dabbSVladimir Zapolskiy	} >ram
87afc3929fSMasahiro Yamada	PROVIDE (bss_end = .);
88afc3929fSMasahiro Yamada	PROVIDE (__bss_end = .);
89afc3929fSMasahiro Yamada}
90