1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
2b3266bd6SJarkko Sakkinen/*
3b3266bd6SJarkko Sakkinen * realmode.lds.S
4b3266bd6SJarkko Sakkinen *
5b3266bd6SJarkko Sakkinen * Linker script for the real-mode code
6b3266bd6SJarkko Sakkinen */
7b3266bd6SJarkko Sakkinen
8b3266bd6SJarkko Sakkinen#include <asm/page_types.h>
9b3266bd6SJarkko Sakkinen
10b3266bd6SJarkko Sakkinen#undef i386
11b3266bd6SJarkko Sakkinen
12b3266bd6SJarkko SakkinenOUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
13b3266bd6SJarkko SakkinenOUTPUT_ARCH(i386)
14b3266bd6SJarkko Sakkinen
15b3266bd6SJarkko SakkinenSECTIONS
16b3266bd6SJarkko Sakkinen{
17b3266bd6SJarkko Sakkinen	real_mode_seg = 0;
18b3266bd6SJarkko Sakkinen
19b3266bd6SJarkko Sakkinen	. = 0;
20b3266bd6SJarkko Sakkinen	.header : {
21b3266bd6SJarkko Sakkinen		pa_real_mode_base = .;
22b3266bd6SJarkko Sakkinen		*(.header)
23b3266bd6SJarkko Sakkinen	}
24b3266bd6SJarkko Sakkinen
25b3266bd6SJarkko Sakkinen	. = ALIGN(4);
26b3266bd6SJarkko Sakkinen	.rodata : {
27b3266bd6SJarkko Sakkinen		*(.rodata)
28b3266bd6SJarkko Sakkinen		*(.rodata.*)
29c9b77ccbSJarkko Sakkinen		. = ALIGN(16);
30c9b77ccbSJarkko Sakkinen		video_cards = .;
31c9b77ccbSJarkko Sakkinen		*(.videocards)
32c9b77ccbSJarkko Sakkinen		video_cards_end = .;
33b3266bd6SJarkko Sakkinen	}
34b3266bd6SJarkko Sakkinen
35b3266bd6SJarkko Sakkinen	. = ALIGN(PAGE_SIZE);
36b3266bd6SJarkko Sakkinen	pa_text_start = .;
37487f50ffSH. Peter Anvin	.text : {
38b3266bd6SJarkko Sakkinen		*(.text)
39b3266bd6SJarkko Sakkinen		*(.text.*)
40b3266bd6SJarkko Sakkinen	}
41b3266bd6SJarkko Sakkinen
42b3266bd6SJarkko Sakkinen	.text32 : {
43b3266bd6SJarkko Sakkinen		*(.text32)
44b3266bd6SJarkko Sakkinen		*(.text32.*)
45b3266bd6SJarkko Sakkinen	}
46b3266bd6SJarkko Sakkinen
47487f50ffSH. Peter Anvin	.text64 : {
48487f50ffSH. Peter Anvin		*(.text64)
49487f50ffSH. Peter Anvin		*(.text64.*)
50487f50ffSH. Peter Anvin	}
51487f50ffSH. Peter Anvin	pa_ro_end = .;
52487f50ffSH. Peter Anvin
53b3266bd6SJarkko Sakkinen	. = ALIGN(PAGE_SIZE);
54b3266bd6SJarkko Sakkinen	.data : {
55b3266bd6SJarkko Sakkinen		*(.data)
56b3266bd6SJarkko Sakkinen		*(.data.*)
57b3266bd6SJarkko Sakkinen	}
58b3266bd6SJarkko Sakkinen
59b3266bd6SJarkko Sakkinen	. = ALIGN(128);
60b3266bd6SJarkko Sakkinen	.bss : {
61b3266bd6SJarkko Sakkinen		*(.bss*)
62b3266bd6SJarkko Sakkinen	}
63b3266bd6SJarkko Sakkinen
64b3266bd6SJarkko Sakkinen	/* End signature for integrity checking */
65b3266bd6SJarkko Sakkinen	. = ALIGN(4);
66b3266bd6SJarkko Sakkinen	.signature : {
67b3266bd6SJarkko Sakkinen		*(.signature)
68b3266bd6SJarkko Sakkinen	}
69b3266bd6SJarkko Sakkinen
70b3266bd6SJarkko Sakkinen	/DISCARD/ : {
71b3266bd6SJarkko Sakkinen		*(.note*)
72b3266bd6SJarkko Sakkinen		*(.debug*)
73b3266bd6SJarkko Sakkinen		*(.eh_frame*)
74b3266bd6SJarkko Sakkinen	}
75b3266bd6SJarkko Sakkinen
76b3266bd6SJarkko Sakkinen#include "pasyms.h"
77b3266bd6SJarkko Sakkinen}
78