xref: /rk3399_rockchip-uboot/arch/mips/cpu/u-boot-spl.lds (revision dc557e9a1fe00ca9d884bd88feef5bebf23fede4)
1*07f5b966SDaniel Schwierzeck/*
2*07f5b966SDaniel Schwierzeck * SPDX-License-Identifier:	GPL-2.0+
3*07f5b966SDaniel Schwierzeck */
4*07f5b966SDaniel Schwierzeck
5*07f5b966SDaniel SchwierzeckMEMORY { .spl_mem : ORIGIN = CONFIG_SPL_TEXT_BASE, \
6*07f5b966SDaniel Schwierzeck		LENGTH = CONFIG_SPL_MAX_SIZE }
7*07f5b966SDaniel SchwierzeckMEMORY { .bss_mem : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
8*07f5b966SDaniel Schwierzeck		LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
9*07f5b966SDaniel Schwierzeck
10*07f5b966SDaniel SchwierzeckOUTPUT_ARCH(mips)
11*07f5b966SDaniel SchwierzeckENTRY(_start)
12*07f5b966SDaniel SchwierzeckSECTIONS
13*07f5b966SDaniel Schwierzeck{
14*07f5b966SDaniel Schwierzeck	. = 0x00000000;
15*07f5b966SDaniel Schwierzeck
16*07f5b966SDaniel Schwierzeck	. = ALIGN(4);
17*07f5b966SDaniel Schwierzeck	.text : {
18*07f5b966SDaniel Schwierzeck		*(.text*)
19*07f5b966SDaniel Schwierzeck	} > .spl_mem
20*07f5b966SDaniel Schwierzeck
21*07f5b966SDaniel Schwierzeck	. = ALIGN(4);
22*07f5b966SDaniel Schwierzeck	.rodata : {
23*07f5b966SDaniel Schwierzeck		*(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
24*07f5b966SDaniel Schwierzeck	} > .spl_mem
25*07f5b966SDaniel Schwierzeck
26*07f5b966SDaniel Schwierzeck	. = ALIGN(4);
27*07f5b966SDaniel Schwierzeck	.data : {
28*07f5b966SDaniel Schwierzeck		*(SORT_BY_ALIGNMENT(.data*))
29*07f5b966SDaniel Schwierzeck		*(SORT_BY_ALIGNMENT(.sdata*))
30*07f5b966SDaniel Schwierzeck	} > .spl_mem
31*07f5b966SDaniel Schwierzeck
32*07f5b966SDaniel Schwierzeck#ifdef CONFIG_SPL_DM
33*07f5b966SDaniel Schwierzeck	. = ALIGN(4);
34*07f5b966SDaniel Schwierzeck	.u_boot_list : {
35*07f5b966SDaniel Schwierzeck		KEEP(*(SORT(.u_boot_list*)));
36*07f5b966SDaniel Schwierzeck	} > .spl_mem
37*07f5b966SDaniel Schwierzeck#endif
38*07f5b966SDaniel Schwierzeck
39*07f5b966SDaniel Schwierzeck	. = ALIGN(4);
40*07f5b966SDaniel Schwierzeck	__image_copy_end = .;
41*07f5b966SDaniel Schwierzeck
42*07f5b966SDaniel Schwierzeck	.bss (NOLOAD) : {
43*07f5b966SDaniel Schwierzeck		__bss_start = .;
44*07f5b966SDaniel Schwierzeck		*(.bss*)
45*07f5b966SDaniel Schwierzeck		*(.sbss*)
46*07f5b966SDaniel Schwierzeck		*(COMMON)
47*07f5b966SDaniel Schwierzeck		. = ALIGN(4);
48*07f5b966SDaniel Schwierzeck		__bss_end = .;
49*07f5b966SDaniel Schwierzeck	} > .bss_mem
50*07f5b966SDaniel Schwierzeck
51*07f5b966SDaniel Schwierzeck	.rel.dyn (NOLOAD) : {
52*07f5b966SDaniel Schwierzeck		*(.rel.dyn)
53*07f5b966SDaniel Schwierzeck	}
54*07f5b966SDaniel Schwierzeck
55*07f5b966SDaniel Schwierzeck	.dynsym : {
56*07f5b966SDaniel Schwierzeck		*(.dynsym)
57*07f5b966SDaniel Schwierzeck	}
58*07f5b966SDaniel Schwierzeck
59*07f5b966SDaniel Schwierzeck	.dynbss : {
60*07f5b966SDaniel Schwierzeck		*(.dynbss)
61*07f5b966SDaniel Schwierzeck	}
62*07f5b966SDaniel Schwierzeck
63*07f5b966SDaniel Schwierzeck	.dynstr : {
64*07f5b966SDaniel Schwierzeck		*(.dynstr)
65*07f5b966SDaniel Schwierzeck	}
66*07f5b966SDaniel Schwierzeck
67*07f5b966SDaniel Schwierzeck	.dynamic : {
68*07f5b966SDaniel Schwierzeck		*(.dynamic)
69*07f5b966SDaniel Schwierzeck	}
70*07f5b966SDaniel Schwierzeck
71*07f5b966SDaniel Schwierzeck	.plt : {
72*07f5b966SDaniel Schwierzeck		*(.plt)
73*07f5b966SDaniel Schwierzeck	}
74*07f5b966SDaniel Schwierzeck
75*07f5b966SDaniel Schwierzeck	.interp : {
76*07f5b966SDaniel Schwierzeck		*(.interp)
77*07f5b966SDaniel Schwierzeck	}
78*07f5b966SDaniel Schwierzeck
79*07f5b966SDaniel Schwierzeck	.gnu : {
80*07f5b966SDaniel Schwierzeck		*(.gnu*)
81*07f5b966SDaniel Schwierzeck	}
82*07f5b966SDaniel Schwierzeck
83*07f5b966SDaniel Schwierzeck	.MIPS.stubs : {
84*07f5b966SDaniel Schwierzeck		*(.MIPS.stubs)
85*07f5b966SDaniel Schwierzeck	}
86*07f5b966SDaniel Schwierzeck
87*07f5b966SDaniel Schwierzeck	.hash : {
88*07f5b966SDaniel Schwierzeck		*(.hash)
89*07f5b966SDaniel Schwierzeck	}
90*07f5b966SDaniel Schwierzeck}
91