1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #include <asm-generic/vmlinux.lds.h> |
3 | |
4 | #ifdef CONFIG_PPC64_BOOT_WRAPPER |
5 | OUTPUT_ARCH(powerpc:common64) |
6 | #else |
7 | OUTPUT_ARCH(powerpc:common) |
8 | #endif |
9 | ENTRY(_zimage_start) |
10 | EXTERN(_zimage_start) |
11 | SECTIONS |
12 | { |
13 | .text : |
14 | { |
15 | _start = .; |
16 | *(.text) |
17 | *(.fixup) |
18 | _etext = .; |
19 | } |
20 | . = ALIGN(4096); |
21 | .data : |
22 | { |
23 | *(.rodata*) |
24 | *(.data*) |
25 | *(.sdata*) |
26 | #ifndef CONFIG_PPC64_BOOT_WRAPPER |
27 | *(.got2) |
28 | #endif |
29 | } |
30 | .dynsym : { *(.dynsym) } |
31 | .dynstr : { *(.dynstr) } |
32 | .dynamic : |
33 | { |
34 | __dynamic_start = .; |
35 | *(.dynamic) |
36 | } |
37 | |
38 | #ifdef CONFIG_PPC64_BOOT_WRAPPER |
39 | .got : ALIGN(256) |
40 | { |
41 | *(.got .toc) |
42 | } |
43 | #endif |
44 | |
45 | .hash : { *(.hash) } |
46 | .interp : { *(.interp) } |
47 | .rela.dyn : |
48 | { |
49 | #ifdef CONFIG_PPC64_BOOT_WRAPPER |
50 | __rela_dyn_start = .; |
51 | #endif |
52 | *(.rela*) |
53 | } |
54 | |
55 | . = ALIGN(8); |
56 | .kernel:dtb : |
57 | { |
58 | _dtb_start = .; |
59 | *(.kernel:dtb) |
60 | _dtb_end = .; |
61 | } |
62 | |
63 | . = ALIGN(4096); |
64 | .kernel:vmlinux.strip : |
65 | { |
66 | _vmlinux_start = .; |
67 | *(.kernel:vmlinux.strip) |
68 | _vmlinux_end = .; |
69 | } |
70 | |
71 | . = ALIGN(4096); |
72 | .kernel:initrd : |
73 | { |
74 | _initrd_start = .; |
75 | *(.kernel:initrd) |
76 | _initrd_end = .; |
77 | } |
78 | |
79 | . = ALIGN(4096); |
80 | .kernel:esm_blob : |
81 | { |
82 | _esm_blob_start = .; |
83 | *(.kernel:esm_blob) |
84 | _esm_blob_end = .; |
85 | } |
86 | |
87 | . = ALIGN(4096); |
88 | .bss : |
89 | { |
90 | _edata = .; |
91 | __bss_start = .; |
92 | *(.sbss) |
93 | *(.bss) |
94 | *(COMMON) |
95 | _end = . ; |
96 | } |
97 | } |
98 | |