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