]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blob - arch/s390/boot/compressed/vmlinux.lds.S
Merge tag 'powerpc-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc...
[mirror_ubuntu-hirsute-kernel.git] / arch / s390 / boot / compressed / vmlinux.lds.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <asm-generic/vmlinux.lds.h>
3 #include <asm/vmlinux.lds.h>
4
5 OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
6 OUTPUT_ARCH(s390:64-bit)
7
8 ENTRY(startup)
9
10 SECTIONS
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 _sdma = .;
41 .dma.text : {
42 . = ALIGN(PAGE_SIZE);
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 _edma = .;
56
57 BOOT_DATA
58 BOOT_DATA_PRESERVED
59
60 /*
61 * uncompressed image info used by the decompressor it should match
62 * struct vmlinux_info. It comes from .vmlinux.info section of
63 * uncompressed vmlinux in a form of info.o
64 */
65 . = ALIGN(8);
66 .vmlinux.info : {
67 _vmlinux_info = .;
68 *(.vmlinux.info)
69 }
70
71 #ifdef CONFIG_KERNEL_UNCOMPRESSED
72 . = 0x100000;
73 #else
74 . = ALIGN(8);
75 #endif
76 .rodata.compressed : {
77 _compressed_start = .;
78 *(.vmlinux.bin.compressed)
79 _compressed_end = .;
80 FILL(0xff);
81 . = ALIGN(4096);
82 }
83 . = ALIGN(256);
84 .bss : {
85 _bss = . ;
86 *(.bss)
87 *(.bss.*)
88 *(COMMON)
89 . = ALIGN(8); /* For convenience during zeroing */
90 _ebss = .;
91 }
92 _end = .;
93
94 /* Sections to be discarded */
95 /DISCARD/ : {
96 *(.eh_frame)
97 *(__ex_table)
98 *(*__ksymtab*)
99 *(___kcrctab*)
100 }
101 }