blob: 4ac1e36edfe7f0187a487c65382481bd6d5a4c2a [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Cédric Le Goater147c0512014-04-24 09:23:39 +02002#include <asm-generic/vmlinux.lds.h>
3
4#ifdef CONFIG_PPC64_BOOT_WRAPPER
5OUTPUT_ARCH(powerpc:common64)
6#else
Linus Torvalds1da177e2005-04-16 15:20:36 -07007OUTPUT_ARCH(powerpc:common)
Cédric Le Goater147c0512014-04-24 09:23:39 +02008#endif
Olaf Hering67a1b682005-10-28 17:46:49 -07009ENTRY(_zimage_start)
David Gibsoncd197ff2007-03-05 14:24:52 +110010EXTERN(_zimage_start)
Linus Torvalds1da177e2005-04-16 15:20:36 -070011SECTIONS
12{
Linus Torvalds1da177e2005-04-16 15:20:36 -070013 .text :
14 {
Michael Ellerman6975a782011-04-12 20:38:55 +000015 _start = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 *(.text)
17 *(.fixup)
Michael Ellerman6975a782011-04-12 20:38:55 +000018 _etext = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070020 . = ALIGN(4096);
21 .data :
22 {
Olaf Hering06cf26b2005-10-28 17:46:44 -070023 *(.rodata*)
24 *(.data*)
25 *(.sdata*)
Cédric Le Goater147c0512014-04-24 09:23:39 +020026#ifndef CONFIG_PPC64_BOOT_WRAPPER
Olaf Heringa4497232005-10-28 17:46:48 -070027 *(.got2)
Cédric Le Goater147c0512014-04-24 09:23:39 +020028#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070029 }
Michael Ellerman6975a782011-04-12 20:38:55 +000030 .dynsym : { *(.dynsym) }
31 .dynstr : { *(.dynstr) }
32 .dynamic :
33 {
34 __dynamic_start = .;
35 *(.dynamic)
36 }
37 .hash : { *(.hash) }
38 .interp : { *(.interp) }
Cédric Le Goater147c0512014-04-24 09:23:39 +020039 .rela.dyn :
40 {
41#ifdef CONFIG_PPC64_BOOT_WRAPPER
42 __rela_dyn_start = .;
43#endif
44 *(.rela*)
45 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070046
Paul Mackerras621da0f2006-11-09 16:00:06 +110047 . = ALIGN(8);
Michael Ellerman6975a782011-04-12 20:38:55 +000048 .kernel:dtb :
49 {
50 _dtb_start = .;
51 *(.kernel:dtb)
52 _dtb_end = .;
53 }
Paul Mackerras621da0f2006-11-09 16:00:06 +110054
Linus Torvalds1da177e2005-04-16 15:20:36 -070055 . = ALIGN(4096);
Michael Ellerman6975a782011-04-12 20:38:55 +000056 .kernel:vmlinux.strip :
57 {
58 _vmlinux_start = .;
59 *(.kernel:vmlinux.strip)
60 _vmlinux_end = .;
61 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070062
63 . = ALIGN(4096);
Michael Ellerman6975a782011-04-12 20:38:55 +000064 .kernel:initrd :
65 {
66 _initrd_start = .;
67 *(.kernel:initrd)
68 _initrd_end = .;
69 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070070
Cédric Le Goater147c0512014-04-24 09:23:39 +020071#ifdef CONFIG_PPC64_BOOT_WRAPPER
Michael Ellerman97ee3512017-03-07 16:14:49 +110072 . = ALIGN(256);
Cédric Le Goater147c0512014-04-24 09:23:39 +020073 .got :
74 {
75 __toc_start = .;
76 *(.got)
77 *(.toc)
78 }
79#endif
80
Linus Torvalds1da177e2005-04-16 15:20:36 -070081 . = ALIGN(4096);
Linus Torvalds1da177e2005-04-16 15:20:36 -070082 .bss :
83 {
Michael Ellerman6975a782011-04-12 20:38:55 +000084 _edata = .;
85 __bss_start = .;
86 *(.sbss)
87 *(.bss)
88 *(COMMON)
89 _end = . ;
Linus Torvalds1da177e2005-04-16 15:20:36 -070090 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070091}