f933b219449411b2b68fc1ccb93ab8b2a310925a
[platform/kernel/u-boot.git] / arch / powerpc / cpu / mpc85xx / u-boot-nand.lds
1 /*
2  * Copyright 2009-2012 Freescale Semiconductor, Inc.
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #include "config.h"
8
9 #ifndef CONFIG_SYS_MONITOR_LEN
10 #define CONFIG_SYS_MONITOR_LEN  0x80000
11 #endif
12
13 OUTPUT_ARCH(powerpc)
14 /* Do we need any of these for elf?
15    __DYNAMIC = 0;    */
16 PHDRS
17 {
18   text PT_LOAD;
19   bss PT_LOAD;
20 }
21
22 SECTIONS
23 {
24   /* Read-only sections, merged into text segment: */
25   . = + SIZEOF_HEADERS;
26   .interp : { *(.interp) }
27   .text      :
28   {
29     *(.text*)
30    } :text
31     _etext = .;
32     PROVIDE (etext = .);
33     .rodata    :
34    {
35     *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
36   } :text
37
38   /* Read-write section, merged into data segment: */
39   . = (. + 0x00FF) & 0xFFFFFF00;
40   _erotext = .;
41   PROVIDE (erotext = .);
42   .reloc   :
43   {
44     _GOT2_TABLE_ = .;
45     KEEP(*(.got2))
46     KEEP(*(.got))
47     PROVIDE(_GLOBAL_OFFSET_TABLE_ = . + 4);
48     _FIXUP_TABLE_ = .;
49     KEEP(*(.fixup))
50   }
51   __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
52   __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
53
54   .data    :
55   {
56     *(.data*)
57     *(.sdata*)
58   }
59   _edata  =  .;
60   PROVIDE (edata = .);
61
62   . = .;
63
64   .u_boot_list : {
65         KEEP(*(SORT(.u_boot_list*)));
66   }
67
68   . = .;
69   __start___ex_table = .;
70   __ex_table : { *(__ex_table) }
71   __stop___ex_table = .;
72
73   . = ALIGN(256);
74   __init_begin = .;
75   .text.init : { *(.text.init) }
76   .data.init : { *(.data.init) }
77   . = ALIGN(256);
78   __init_end = .;
79
80   .bootpg ADDR(.text) - 0x1000 :
81   {
82     KEEP(arch/powerpc/cpu/mpc85xx/start.o (.bootpg))
83   } :text = 0xffff
84
85   . = ADDR(.text) + CONFIG_SYS_MONITOR_LEN;
86
87   __bss_start = .;
88   .bss (NOLOAD)       :
89   {
90    *(.sbss*)
91    *(.bss*)
92    *(COMMON)
93   } :bss
94
95   . = ALIGN(4);
96   __bss_end = . ;
97   PROVIDE (end = .);
98 }