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