xref: /openbmc/linux/arch/powerpc/boot/zImage.lds.S (revision 3dc4b6fb)
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  .hash : { *(.hash) }
38  .interp : { *(.interp) }
39  .rela.dyn :
40  {
41#ifdef CONFIG_PPC64_BOOT_WRAPPER
42    __rela_dyn_start = .;
43#endif
44    *(.rela*)
45  }
46
47  . = ALIGN(8);
48  .kernel:dtb :
49  {
50    _dtb_start = .;
51    *(.kernel:dtb)
52    _dtb_end = .;
53  }
54
55  . = ALIGN(4096);
56  .kernel:vmlinux.strip :
57  {
58    _vmlinux_start =  .;
59    *(.kernel:vmlinux.strip)
60    _vmlinux_end =  .;
61  }
62
63  . = ALIGN(4096);
64  .kernel:initrd :
65  {
66    _initrd_start =  .;
67    *(.kernel:initrd)
68    _initrd_end =  .;
69  }
70
71  . = ALIGN(4096);
72  .kernel:esm_blob :
73  {
74    _esm_blob_start =  .;
75    *(.kernel:esm_blob)
76    _esm_blob_end =  .;
77  }
78
79#ifdef CONFIG_PPC64_BOOT_WRAPPER
80  . = ALIGN(256);
81  .got :
82  {
83    __toc_start = .;
84    *(.got)
85    *(.toc)
86  }
87#endif
88
89  . = ALIGN(4096);
90  .bss       :
91  {
92    _edata  =  .;
93    __bss_start = .;
94    *(.sbss)
95    *(.bss)
96    *(COMMON)
97    _end = . ;
98  }
99}
100