1/* SPDX-License-Identifier: GPL-2.0 */
2#include <asm-generic/vmlinux.lds.h>
3
4#ifdef CONFIG_PPC64_BOOT_WRAPPER
5OUTPUT_ARCH(powerpc:common64)
6#else
7OUTPUT_ARCH(powerpc:common)
8#endif
9ENTRY(_zimage_start)
10EXTERN(_zimage_start)
11SECTIONS
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