xref: /kvm-unit-tests/s390x/snippets/c/flat.lds.S (revision cd719531ee2b3aae62a52cfe97aa6aa5286e4051)
1acc93cbfSJanosch FrankSECTIONS
2acc93cbfSJanosch Frank{
3acc93cbfSJanosch Frank	.lowcore : {
4acc93cbfSJanosch Frank		/*
5acc93cbfSJanosch Frank		 * Initial short psw for disk boot, with 31 bit addressing for
6acc93cbfSJanosch Frank		 * non z/Arch environment compatibility and the instruction
7acc93cbfSJanosch Frank		 * address 0x4000 (cstart.S .init).
8acc93cbfSJanosch Frank		 */
9acc93cbfSJanosch Frank		. = 0;
10*cd719531SJanis Schoetterl-Glausch		lowcore = .;
11acc93cbfSJanosch Frank		 LONG(0x00080000)
12acc93cbfSJanosch Frank		 LONG(0x80004000)
13acc93cbfSJanosch Frank		 /* Restart new PSW for booting via PSW restart. */
14acc93cbfSJanosch Frank		 . = 0x1a0;
15acc93cbfSJanosch Frank		 QUAD(0x0000000180000000)
16acc93cbfSJanosch Frank		 QUAD(0x0000000000004000)
17acc93cbfSJanosch Frank	}
18acc93cbfSJanosch Frank	. = 0x4000;
19a6c15401SJanosch Frank	stackptr = . - 160;
20a6c15401SJanosch Frank	stacktop = .;
21acc93cbfSJanosch Frank	.text : {
22acc93cbfSJanosch Frank		*(.init)
23acc93cbfSJanosch Frank		*(.text)
24acc93cbfSJanosch Frank		*(.text.*)
25acc93cbfSJanosch Frank	}
26acc93cbfSJanosch Frank	. = ALIGN(64K);
27acc93cbfSJanosch Frank	etext = .;
28acc93cbfSJanosch Frank	.opd : { *(.opd) }
29acc93cbfSJanosch Frank	. = ALIGN(16);
30acc93cbfSJanosch Frank	.dynamic : {
31acc93cbfSJanosch Frank		dynamic_start = .;
32acc93cbfSJanosch Frank		*(.dynamic)
33acc93cbfSJanosch Frank	}
34acc93cbfSJanosch Frank	.dynsym : {
35acc93cbfSJanosch Frank		dynsym_start = .;
36acc93cbfSJanosch Frank		*(.dynsym)
37acc93cbfSJanosch Frank	}
38acc93cbfSJanosch Frank	.rela.dyn : { *(.rela*) }
39acc93cbfSJanosch Frank	. = ALIGN(16);
40acc93cbfSJanosch Frank	.data : {
41acc93cbfSJanosch Frank		*(.data)
42acc93cbfSJanosch Frank		*(.data.rel*)
43acc93cbfSJanosch Frank	}
44acc93cbfSJanosch Frank	. = ALIGN(16);
45acc93cbfSJanosch Frank	.rodata : { *(.rodata) *(.rodata.*) }
46acc93cbfSJanosch Frank	. = ALIGN(16);
47acc93cbfSJanosch Frank	__bss_start = .;
48acc93cbfSJanosch Frank	.bss : { *(.bss) }
49acc93cbfSJanosch Frank	__bss_end = .;
50acc93cbfSJanosch Frank	. = ALIGN(64K);
51acc93cbfSJanosch Frank	edata = .;
52acc93cbfSJanosch Frank	. += 64K;
53acc93cbfSJanosch Frank	. = ALIGN(64K);
54acc93cbfSJanosch Frank}
55