1b3266bd6SJarkko Sakkinen/* 2b3266bd6SJarkko Sakkinen * Real-mode blob header; this should match realmode.h and be 3b3266bd6SJarkko Sakkinen * readonly; for mutable data instead add pointers into the .data 4b3266bd6SJarkko Sakkinen * or .bss sections as appropriate. 5b3266bd6SJarkko Sakkinen */ 6b3266bd6SJarkko Sakkinen 7b3266bd6SJarkko Sakkinen#include <linux/linkage.h> 8b3266bd6SJarkko Sakkinen#include <asm/page_types.h> 9*65051397SH. Peter Anvin#include <asm/segment.h> 10b3266bd6SJarkko Sakkinen 1161f54461SH. Peter Anvin#include "realmode.h" 1261f54461SH. Peter Anvin 13b3266bd6SJarkko Sakkinen .section ".header", "a" 14b3266bd6SJarkko Sakkinen 15cda846f1SJarkko Sakkinen .balign 16 168e029fcdSJarkko SakkinenGLOBAL(real_mode_header) 17b3266bd6SJarkko Sakkinen .long pa_text_start 18b3266bd6SJarkko Sakkinen .long pa_ro_end 1948927bbbSJarkko Sakkinen /* SMP trampoline */ 20f37240f1SJarkko Sakkinen .long pa_trampoline_start 2148927bbbSJarkko Sakkinen .long pa_trampoline_status 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 33*65051397SH. Peter Anvin#ifdef CONFIG_X86_64 34*65051397SH. Peter Anvin .long __KERNEL32_CS 35f37240f1SJarkko Sakkinen#endif 36b3266bd6SJarkko SakkinenEND(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 4161f54461SH. Peter AnvinGLOBAL(end_signature) 4261f54461SH. Peter Anvin .long REALMODE_END_SIGNATURE 4361f54461SH. Peter AnvinEND(end_signature) 44