xref: /rk3399_rockchip-uboot/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds (revision 5f5620ab2679608f94b3a77e51c77d0a770103bd)
1a47a12beSStefan Roese/*
25113ee70SPrabhakar Kushwaha * Copyright 2009-2012 Freescale Semiconductor, Inc.
3a47a12beSStefan Roese *
41a459660SWolfgang Denk * SPDX-License-Identifier:	GPL-2.0+
5a47a12beSStefan Roese */
6a47a12beSStefan Roese
7*6f2ed0e9SMasahiro Yamada#include "config.h"
80938b609SPrabhakar Kushwaha
90938b609SPrabhakar Kushwaha#ifndef CONFIG_SYS_MONITOR_LEN
100938b609SPrabhakar Kushwaha#define CONFIG_SYS_MONITOR_LEN	0x80000
110938b609SPrabhakar Kushwaha#endif
120938b609SPrabhakar Kushwaha
13a47a12beSStefan RoeseOUTPUT_ARCH(powerpc)
14a47a12beSStefan Roese/* Do we need any of these for elf?
15a47a12beSStefan Roese   __DYNAMIC = 0;    */
16a47a12beSStefan RoesePHDRS
17a47a12beSStefan Roese{
18a47a12beSStefan Roese  text PT_LOAD;
19a47a12beSStefan Roese  bss PT_LOAD;
20a47a12beSStefan Roese}
21a47a12beSStefan Roese
22a47a12beSStefan RoeseSECTIONS
23a47a12beSStefan Roese{
24a47a12beSStefan Roese  /* Read-only sections, merged into text segment: */
25a47a12beSStefan Roese  . = + SIZEOF_HEADERS;
26a47a12beSStefan Roese  .interp : { *(.interp) }
27a47a12beSStefan Roese  .text      :
28a47a12beSStefan Roese  {
2936ae6a8eSHaiying Wang    *(.text*)
30a47a12beSStefan Roese   } :text
31a47a12beSStefan Roese    _etext = .;
32a47a12beSStefan Roese    PROVIDE (etext = .);
33a47a12beSStefan Roese    .rodata    :
34a47a12beSStefan Roese   {
35a47a12beSStefan Roese    *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
36a47a12beSStefan Roese  } :text
37a47a12beSStefan Roese
38a47a12beSStefan Roese  /* Read-write section, merged into data segment: */
39a47a12beSStefan Roese  . = (. + 0x00FF) & 0xFFFFFF00;
40a47a12beSStefan Roese  _erotext = .;
41a47a12beSStefan Roese  PROVIDE (erotext = .);
42a47a12beSStefan Roese  .reloc   :
43a47a12beSStefan Roese  {
44a47a12beSStefan Roese    _GOT2_TABLE_ = .;
4536ae6a8eSHaiying Wang    KEEP(*(.got2))
46d2a97dafSScott Wood    KEEP(*(.got))
47a47a12beSStefan Roese    _FIXUP_TABLE_ = .;
4836ae6a8eSHaiying Wang    KEEP(*(.fixup))
49a47a12beSStefan Roese  }
50d2a97dafSScott Wood  __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
51a47a12beSStefan Roese  __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
52a47a12beSStefan Roese
53a47a12beSStefan Roese  .data    :
54a47a12beSStefan Roese  {
5536ae6a8eSHaiying Wang    *(.data*)
5636ae6a8eSHaiying Wang    *(.sdata*)
57a47a12beSStefan Roese  }
58a47a12beSStefan Roese  _edata  =  .;
59a47a12beSStefan Roese  PROVIDE (edata = .);
60a47a12beSStefan Roese
61a47a12beSStefan Roese  . = .;
62a47a12beSStefan Roese
6355675142SMarek Vasut  .u_boot_list : {
64ef123c52SAlbert ARIBAUD	KEEP(*(SORT(.u_boot_list*)));
6555675142SMarek Vasut  }
6655675142SMarek Vasut
67a47a12beSStefan Roese  . = .;
68a47a12beSStefan Roese  __start___ex_table = .;
69a47a12beSStefan Roese  __ex_table : { *(__ex_table) }
70a47a12beSStefan Roese  __stop___ex_table = .;
71a47a12beSStefan Roese
72a47a12beSStefan Roese  . = ALIGN(256);
73a47a12beSStefan Roese  __init_begin = .;
74a47a12beSStefan Roese  .text.init : { *(.text.init) }
75a47a12beSStefan Roese  .data.init : { *(.data.init) }
76a47a12beSStefan Roese  . = ALIGN(256);
77a47a12beSStefan Roese  __init_end = .;
78a47a12beSStefan Roese
79a47a12beSStefan Roese  .bootpg ADDR(.text) - 0x1000 :
80a47a12beSStefan Roese  {
815113ee70SPrabhakar Kushwaha    KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootpg))
82a47a12beSStefan Roese  } :text = 0xffff
83a47a12beSStefan Roese
840938b609SPrabhakar Kushwaha  . = ADDR(.text) + CONFIG_SYS_MONITOR_LEN;
85a47a12beSStefan Roese
86a47a12beSStefan Roese  __bss_start = .;
87a47a12beSStefan Roese  .bss (NOLOAD)       :
88a47a12beSStefan Roese  {
8936ae6a8eSHaiying Wang   *(.sbss*)
9036ae6a8eSHaiying Wang   *(.bss*)
91a47a12beSStefan Roese   *(COMMON)
92a47a12beSStefan Roese  } :bss
93a47a12beSStefan Roese
94a47a12beSStefan Roese  . = ALIGN(4);
953929fb0aSSimon Glass  __bss_end = . ;
96a47a12beSStefan Roese  PROVIDE (end = .);
97a47a12beSStefan Roese}
98