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