configs: fsl: move DDR specific defines to Kconfig
[oweals/u-boot.git] / arch / powerpc / cpu / mpc85xx / u-boot-spl.lds
1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * (C) Copyright 2006
4  * Wolfgang Denk, DENX Software Engineering, wd@denx.de
5  *
6  * Copyright 2009 Freescale Semiconductor, Inc.
7  */
8
9 #include "config.h"
10
11 OUTPUT_ARCH(powerpc)
12 #ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC
13 PHDRS
14 {
15         text PT_LOAD;
16         bss PT_LOAD;
17 }
18 #endif
19 SECTIONS
20 {
21         . = IMAGE_TEXT_BASE;
22         .text : {
23                 *(.text*)
24         }
25         _etext = .;
26
27         .reloc : {
28                 _GOT2_TABLE_ = .;
29                 KEEP(*(.got2))
30                 KEEP(*(.got))
31                 _FIXUP_TABLE_ = .;
32                 KEEP(*(.fixup))
33         }
34         __got2_entries = ((_GLOBAL_OFFSET_TABLE_ - _GOT2_TABLE_) >> 2) - 1;
35         __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
36
37         . = ALIGN(8);
38         .data : {
39                 *(.rodata*)
40                 *(.data*)
41                 *(.sdata*)
42         }
43         _edata  =  .;
44
45         . = ALIGN(4);
46         .u_boot_list : {
47                 KEEP(*(SORT(.u_boot_list*)));
48         }
49
50         . = .;
51         __start___ex_table = .;
52         __ex_table : { *(__ex_table) }
53         __stop___ex_table = .;
54
55         . = ALIGN(8);
56         __init_begin = .;
57         __init_end = .;
58         _end = .;
59 #ifdef CONFIG_SPL_SKIP_RELOCATE
60         . = ALIGN(4);
61         __bss_start = .;
62         .bss : {
63                 *(.sbss*)
64                 *(.bss*)
65         }
66         . = ALIGN(4);
67         __bss_end = .;
68 #endif
69
70 /* For ifc, elbc, esdhc, espi, all need the SPL without section .resetvec */
71 #ifdef CONFIG_SYS_MPC85XX_NO_RESETVEC
72         .bootpg ADDR(.text) - 0x1000 :
73         {
74                 KEEP(*(.bootpg))
75         } :text = 0xffff
76 #else
77 #if defined(CONFIG_FSL_IFC) /* Restrict bootpg at 4K boundry for IFC */
78 #ifndef BOOT_PAGE_OFFSET
79 #define BOOT_PAGE_OFFSET 0x1000
80 #endif
81         .bootpg ADDR(.text) + BOOT_PAGE_OFFSET :
82         {
83                 arch/powerpc/cpu/mpc85xx/start.o (.bootpg)
84         }
85 #ifndef RESET_VECTOR_OFFSET
86 #define RESET_VECTOR_OFFSET 0x1ffc /* IFC has 8K sram */
87 #endif
88 #elif defined(CONFIG_FSL_ELBC)
89 #define RESET_VECTOR_OFFSET 0xffc /* LBC has 4k sram */
90 #else
91 #error unknown NAND controller
92 #endif
93         .resetvec ADDR(.text) + RESET_VECTOR_OFFSET : {
94                 KEEP(*(.resetvec))
95         } = 0xffff
96 #endif
97
98 #ifndef CONFIG_SPL_SKIP_RELOCATE
99         /*
100          * Make sure that the bss segment isn't linked at 0x0, otherwise its
101          * address won't be updated during relocation fixups.
102          */
103         . |= 0x10;
104
105         . = ALIGN(4);
106         __bss_start = .;
107         .bss : {
108                 *(.sbss*)
109                 *(.bss*)
110         }
111         . = ALIGN(4);
112         __bss_end = .;
113 #endif
114 }