1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Real-mode blob header; this should match realmode.h and be |
4 | * readonly; for mutable data instead add pointers into the .data |
5 | * or .bss sections as appropriate. |
6 | */ |
7 | |
8 | #include <linux/linkage.h> |
9 | #include <asm/page_types.h> |
10 | #include <asm/segment.h> |
11 | |
12 | #include "realmode.h" |
13 | |
14 | .section ".header" , "a" |
15 | |
16 | .balign 16 |
17 | SYM_DATA_START() |
18 | .long pa_text_start |
19 | .long pa_ro_end |
20 | /* SMP trampoline */ |
21 | .long pa_trampoline_start |
22 | .long pa_trampoline_header |
23 | #ifdef CONFIG_AMD_MEM_ENCRYPT |
24 | .long pa_sev_es_trampoline_start |
25 | #endif |
26 | #ifdef CONFIG_X86_64 |
27 | .long pa_trampoline_start64 |
28 | .long pa_trampoline_pgd; |
29 | #endif |
30 | /* ACPI S3 wakeup */ |
31 | #ifdef CONFIG_ACPI_SLEEP |
32 | .long pa_wakeup_start |
33 | .long pa_wakeup_header |
34 | #endif |
35 | /* APM/BIOS reboot */ |
36 | .long pa_machine_real_restart_asm |
37 | #ifdef CONFIG_X86_64 |
38 | .long __KERNEL32_CS |
39 | #endif |
40 | SYM_DATA_END(real_mode_header) |
41 | |
42 | /* End signature, used to verify integrity */ |
43 | .section ".signature" ,"a" |
44 | .balign 4 |
45 | SYM_DATA(end_signature, .long REALMODE_END_SIGNATURE) |
46 | |