xref: /linux/arch/x86/realmode/rm/realmode.lds.S (revision ead5d1f4d877e92c051e1a1ade623d0d30e71619)
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
12e6d7bc0bSBorislav PetkovOUTPUT_FORMAT("elf32-i386")
13b3266bd6SJarkko SakkinenOUTPUT_ARCH(i386)
14*6a181e33SNick DesaulniersENTRY(pa_text_start)
15b3266bd6SJarkko Sakkinen
16b3266bd6SJarkko SakkinenSECTIONS
17b3266bd6SJarkko Sakkinen{
18b3266bd6SJarkko Sakkinen	real_mode_seg = 0;
19b3266bd6SJarkko Sakkinen
20b3266bd6SJarkko Sakkinen	. = 0;
21b3266bd6SJarkko Sakkinen	.header : {
22b3266bd6SJarkko Sakkinen		pa_real_mode_base = .;
23b3266bd6SJarkko Sakkinen		*(.header)
24b3266bd6SJarkko Sakkinen	}
25b3266bd6SJarkko Sakkinen
26b3266bd6SJarkko Sakkinen	. = ALIGN(4);
27b3266bd6SJarkko Sakkinen	.rodata : {
28b3266bd6SJarkko Sakkinen		*(.rodata)
29b3266bd6SJarkko Sakkinen		*(.rodata.*)
30c9b77ccbSJarkko Sakkinen		. = ALIGN(16);
31c9b77ccbSJarkko Sakkinen		video_cards = .;
32c9b77ccbSJarkko Sakkinen		*(.videocards)
33c9b77ccbSJarkko Sakkinen		video_cards_end = .;
34b3266bd6SJarkko Sakkinen	}
35b3266bd6SJarkko Sakkinen
36b3266bd6SJarkko Sakkinen	. = ALIGN(PAGE_SIZE);
37b3266bd6SJarkko Sakkinen	pa_text_start = .;
38487f50ffSH. Peter Anvin	.text : {
39b3266bd6SJarkko Sakkinen		*(.text)
40b3266bd6SJarkko Sakkinen		*(.text.*)
41b3266bd6SJarkko Sakkinen	}
42b3266bd6SJarkko Sakkinen
43b3266bd6SJarkko Sakkinen	.text32 : {
44b3266bd6SJarkko Sakkinen		*(.text32)
45b3266bd6SJarkko Sakkinen		*(.text32.*)
46b3266bd6SJarkko Sakkinen	}
47b3266bd6SJarkko Sakkinen
48487f50ffSH. Peter Anvin	.text64 : {
49487f50ffSH. Peter Anvin		*(.text64)
50487f50ffSH. Peter Anvin		*(.text64.*)
51487f50ffSH. Peter Anvin	}
52487f50ffSH. Peter Anvin	pa_ro_end = .;
53487f50ffSH. Peter Anvin
54b3266bd6SJarkko Sakkinen	. = ALIGN(PAGE_SIZE);
55b3266bd6SJarkko Sakkinen	.data : {
56b3266bd6SJarkko Sakkinen		*(.data)
57b3266bd6SJarkko Sakkinen		*(.data.*)
58b3266bd6SJarkko Sakkinen	}
59b3266bd6SJarkko Sakkinen
60b3266bd6SJarkko Sakkinen	. = ALIGN(128);
61b3266bd6SJarkko Sakkinen	.bss : {
62b3266bd6SJarkko Sakkinen		*(.bss*)
63b3266bd6SJarkko Sakkinen	}
64b3266bd6SJarkko Sakkinen
65b3266bd6SJarkko Sakkinen	/* End signature for integrity checking */
66b3266bd6SJarkko Sakkinen	. = ALIGN(4);
67b3266bd6SJarkko Sakkinen	.signature : {
68b3266bd6SJarkko Sakkinen		*(.signature)
69b3266bd6SJarkko Sakkinen	}
70b3266bd6SJarkko Sakkinen
71b3266bd6SJarkko Sakkinen	/DISCARD/ : {
72b3266bd6SJarkko Sakkinen		*(.note*)
73b3266bd6SJarkko Sakkinen		*(.debug*)
74b3266bd6SJarkko Sakkinen	}
75b3266bd6SJarkko Sakkinen
76b3266bd6SJarkko Sakkinen#include "pasyms.h"
77b3266bd6SJarkko Sakkinen}
78