xref: /kvm-unit-tests/s390x/snippets/c/flat.lds.S (revision e521b10727bd6233dfc94b1ef4058a0d19b791e3) !
1#include <asm/asm-offsets.h>
2
3PHDRS
4{
5    text PT_LOAD FLAGS(5);
6    data PT_LOAD FLAGS(6);
7}
8
9SECTIONS
10{
11	.lowcore : {
12		/*
13		 * Initial short psw for disk boot, with 31 bit addressing for
14		 * non z/Arch environment compatibility and the instruction
15		 * address 0x4000 (cstart.S .init).
16		 */
17		. = 0;
18		lowcore = .;
19		 LONG(0x00080000)
20		 LONG(0x80004000)
21		 /* Restart new PSW for booting via PSW restart. */
22		 . = 0x1a0;
23		 QUAD(0x0000000180000000)
24		 QUAD(0x0000000000004000)
25	}
26	. = 0x4000;
27	/*
28	 * The stack grows down from 0x4000 to 0x2000, we pre-allocoate
29	 * a frame via the -STACK_FRAME_SIZE.
30	 */
31	stackptr = . - STACK_FRAME_SIZE;
32	stacktop = .;
33	/* Start text 0x4000 */
34	.text : {
35		*(.init)
36		*(.text)
37		*(.text.*)
38	} :text
39	. = ALIGN(4K);
40	etext = .;
41	/* End text */
42	/* Start data */
43	.data : {
44		*(.data)
45		*(.data.rel*)
46	} :data
47	. = ALIGN(16);
48	.rodata : { *(.rodata) *(.rodata.*) } :data
49	. = ALIGN(16);
50	.bss : { *(.bss) }
51	/* End data */
52}
53