xref: /kvm-unit-tests/s390x/snippets/asm/flat.lds.S (revision 5be877f208f17a07a2d8f1bd86f254705029d061)
1*b36f35a8SJanosch FrankSECTIONS
2*b36f35a8SJanosch Frank{
3*b36f35a8SJanosch Frank	.lowcore : {
4*b36f35a8SJanosch Frank		/*
5*b36f35a8SJanosch Frank		 * Initial short psw for disk boot, with 31 bit addressing for
6*b36f35a8SJanosch Frank		 * non z/Arch environment compatibility and the instruction
7*b36f35a8SJanosch Frank		 * address 0x4000.
8*b36f35a8SJanosch Frank		 */
9*b36f35a8SJanosch Frank		. = 0;
10*b36f35a8SJanosch Frank		 LONG(0x00080000)
11*b36f35a8SJanosch Frank		 LONG(0x80004000)
12*b36f35a8SJanosch Frank		 /* Restart new PSW for booting via PSW restart. */
13*b36f35a8SJanosch Frank		 . = 0x1a0;
14*b36f35a8SJanosch Frank		 QUAD(0x0000000180000000)
15*b36f35a8SJanosch Frank		 QUAD(0x0000000000004000)
16*b36f35a8SJanosch Frank		 /*
17*b36f35a8SJanosch Frank		  * Invalid PGM new PSW so we hopefully get a code 8
18*b36f35a8SJanosch Frank		  * intercept on a PGM
19*b36f35a8SJanosch Frank		  */
20*b36f35a8SJanosch Frank		 . = 0x1d0;
21*b36f35a8SJanosch Frank		 QUAD(0x0008000000000000)
22*b36f35a8SJanosch Frank		 QUAD(0x0000000000000001)
23*b36f35a8SJanosch Frank	}
24*b36f35a8SJanosch Frank	. = 0x4000;
25*b36f35a8SJanosch Frank	/* Start text 0x4000 */
26*b36f35a8SJanosch Frank	.text : {
27*b36f35a8SJanosch Frank		*(.text)
28*b36f35a8SJanosch Frank		*(.text.*)
29*b36f35a8SJanosch Frank	}
30*b36f35a8SJanosch Frank	. = ALIGN(16);
31*b36f35a8SJanosch Frank	etext = .;
32*b36f35a8SJanosch Frank	/* End text */
33*b36f35a8SJanosch Frank	/* Start data */
34*b36f35a8SJanosch Frank	.data : {
35*b36f35a8SJanosch Frank		*(.data)
36*b36f35a8SJanosch Frank		*(.data.rel*)
37*b36f35a8SJanosch Frank	}
38*b36f35a8SJanosch Frank	. = ALIGN(16);
39*b36f35a8SJanosch Frank	.rodata : { *(.rodata) *(.rodata.*) }
40*b36f35a8SJanosch Frank	/* End data */
41*b36f35a8SJanosch Frank}
42