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