1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */ 2b3266bd6SJarkko Sakkinen/* 3b3266bd6SJarkko Sakkinen * Real-mode blob header; this should match realmode.h and be 4b3266bd6SJarkko Sakkinen * readonly; for mutable data instead add pointers into the .data 5b3266bd6SJarkko Sakkinen * or .bss sections as appropriate. 6b3266bd6SJarkko Sakkinen */ 7b3266bd6SJarkko Sakkinen 8b3266bd6SJarkko Sakkinen#include <linux/linkage.h> 9b3266bd6SJarkko Sakkinen#include <asm/page_types.h> 1065051397SH. Peter Anvin#include <asm/segment.h> 11b3266bd6SJarkko Sakkinen 1261f54461SH. Peter Anvin#include "realmode.h" 1361f54461SH. Peter Anvin 14b3266bd6SJarkko Sakkinen .section ".header", "a" 15b3266bd6SJarkko Sakkinen 16cda846f1SJarkko Sakkinen .balign 16 17*78f44330SJiri SlabySYM_DATA_START(real_mode_header) 18b3266bd6SJarkko Sakkinen .long pa_text_start 19b3266bd6SJarkko Sakkinen .long pa_ro_end 2048927bbbSJarkko Sakkinen /* SMP trampoline */ 21f37240f1SJarkko Sakkinen .long pa_trampoline_start 22f37240f1SJarkko Sakkinen .long pa_trampoline_header 23f37240f1SJarkko Sakkinen#ifdef CONFIG_X86_64 24f37240f1SJarkko Sakkinen .long pa_trampoline_pgd; 2548927bbbSJarkko Sakkinen#endif 26f37240f1SJarkko Sakkinen /* ACPI S3 wakeup */ 27c9b77ccbSJarkko Sakkinen#ifdef CONFIG_ACPI_SLEEP 28c9b77ccbSJarkko Sakkinen .long pa_wakeup_start 29c9b77ccbSJarkko Sakkinen .long pa_wakeup_header 30c9b77ccbSJarkko Sakkinen#endif 31f37240f1SJarkko Sakkinen /* APM/BIOS reboot */ 32f37240f1SJarkko Sakkinen .long pa_machine_real_restart_asm 3365051397SH. Peter Anvin#ifdef CONFIG_X86_64 3465051397SH. Peter Anvin .long __KERNEL32_CS 35f37240f1SJarkko Sakkinen#endif 36*78f44330SJiri SlabySYM_DATA_END(real_mode_header) 3761f54461SH. Peter Anvin 3861f54461SH. Peter Anvin /* End signature, used to verify integrity */ 3961f54461SH. Peter Anvin .section ".signature","a" 4061f54461SH. Peter Anvin .balign 4 41*78f44330SJiri SlabySYM_DATA(end_signature, .long REALMODE_END_SIGNATURE) 42