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