0001
0002 #include <asm-generic/vmlinux.lds.h>
0003 #include <asm/vmlinux.lds.h>
0004 #include <asm/thread_info.h>
0005 #include <asm/page.h>
0006 #include <asm/sclp.h>
0007 #include "boot.h"
0008
0009 OUTPUT_FORMAT("elf64-s390", "elf64-s390", "elf64-s390")
0010 OUTPUT_ARCH(s390:64-bit)
0011
0012 ENTRY(startup)
0013
0014 SECTIONS
0015 {
0016 . = 0;
0017 .ipldata : {
0018 *(.ipldata)
0019 }
0020 . = IPL_START;
0021 .head.text : {
0022 _head = . ;
0023 HEAD_TEXT
0024 _ehead = . ;
0025 }
0026 . = PARMAREA;
0027 .parmarea : {
0028 *(.parmarea)
0029 }
0030 .text : {
0031 _text = .;
0032 *(.text)
0033 *(.text.*)
0034 _etext = . ;
0035 }
0036 .rodata : {
0037 _rodata = . ;
0038 *(.rodata)
0039 *(.rodata.*)
0040 _erodata = . ;
0041 }
0042 NOTES
0043 .data : {
0044 _data = . ;
0045 *(.data)
0046 *(.data.*)
0047 _edata = . ;
0048 }
0049
0050 BOOT_DATA
0051 BOOT_DATA_PRESERVED
0052
0053
0054
0055
0056
0057 . = ALIGN(8);
0058 .bss : {
0059 _bss = . ;
0060 *(.bss)
0061 *(.bss.*)
0062 *(COMMON)
0063
0064
0065
0066 . = ALIGN(PAGE_SIZE);
0067 _dump_info_stack_start = .;
0068 . += PAGE_SIZE;
0069 _dump_info_stack_end = .;
0070 . = ALIGN(PAGE_SIZE);
0071 _stack_start = .;
0072 . += BOOT_STACK_SIZE;
0073 _stack_end = .;
0074 _ebss = .;
0075 }
0076
0077
0078
0079
0080
0081
0082 . = ALIGN(8);
0083 .vmlinux.info : {
0084 _vmlinux_info = .;
0085 *(.vmlinux.info)
0086 }
0087
0088 .decompressor.syms : {
0089 . += 1;
0090 . = ALIGN(2);
0091 _decompressor_syms_start = .;
0092 *(.decompressor.syms)
0093 _decompressor_syms_end = .;
0094 }
0095
0096 #ifdef CONFIG_KERNEL_UNCOMPRESSED
0097 . = 0x100000;
0098 #else
0099 . = ALIGN(8);
0100 #endif
0101 .rodata.compressed : {
0102 _compressed_start = .;
0103 *(.vmlinux.bin.compressed)
0104 _compressed_end = .;
0105 FILL(0xff);
0106 . = ALIGN(4096);
0107 }
0108 _end = .;
0109
0110
0111 /DISCARD/ : {
0112 *(.eh_frame)
0113 *(__ex_table)
0114 *(*__ksymtab*)
0115 *(___kcrctab*)
0116 }
0117 }