1/* SPDX-License-Identifier: GPL-2.0 */ 2#include <asm-generic/vmlinux.lds.h> 3#include <asm/vmlinux.lds.h> 4 5OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390") 6OUTPUT_ARCH(s390:64-bit) 7 8ENTRY(startup) 9 10SECTIONS 11{ 12 . = 0; 13 .head.text : { 14 _head = . ; 15 HEAD_TEXT 16 _ehead = . ; 17 } 18 .text : { 19 _text = .; /* Text */ 20 *(.text) 21 *(.text.*) 22 _etext = . ; 23 } 24 .rodata : { 25 _rodata = . ; 26 *(.rodata) /* read-only data */ 27 *(.rodata.*) 28 _erodata = . ; 29 } 30 .data : { 31 _data = . ; 32 *(.data) 33 *(.data.*) 34 _edata = . ; 35 } 36 /* 37 * .dma section for code, data, ex_table that need to stay below 2 GB, 38 * even when the kernel is relocate: above 2 GB. 39 */ 40 . = ALIGN(PAGE_SIZE); 41 _sdma = .; 42 .dma.text : { 43 _stext_dma = .; 44 *(.dma.text) 45 . = ALIGN(PAGE_SIZE); 46 _etext_dma = .; 47 } 48 . = ALIGN(16); 49 .dma.ex_table : { 50 _start_dma_ex_table = .; 51 KEEP(*(.dma.ex_table)) 52 _stop_dma_ex_table = .; 53 } 54 .dma.data : { *(.dma.data) } 55 . = ALIGN(PAGE_SIZE); 56 _edma = .; 57 58 BOOT_DATA 59 BOOT_DATA_PRESERVED 60 61 /* 62 * uncompressed image info used by the decompressor it should match 63 * struct vmlinux_info. It comes from .vmlinux.info section of 64 * uncompressed vmlinux in a form of info.o 65 */ 66 . = ALIGN(8); 67 .vmlinux.info : { 68 _vmlinux_info = .; 69 *(.vmlinux.info) 70 } 71 72#ifdef CONFIG_KERNEL_UNCOMPRESSED 73 . = 0x100000; 74#else 75 . = ALIGN(8); 76#endif 77 .rodata.compressed : { 78 _compressed_start = .; 79 *(.vmlinux.bin.compressed) 80 _compressed_end = .; 81 FILL(0xff); 82 . = ALIGN(4096); 83 } 84 . = ALIGN(256); 85 .bss : { 86 _bss = . ; 87 *(.bss) 88 *(.bss.*) 89 *(COMMON) 90 . = ALIGN(8); /* For convenience during zeroing */ 91 _ebss = .; 92 } 93 _end = .; 94 95 /* Sections to be discarded */ 96 /DISCARD/ : { 97 *(.eh_frame) 98 *(__ex_table) 99 *(*__ksymtab*) 100 *(___kcrctab*) 101 } 102} 103