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> 9b3266bd6SJarkko Sakkinen 10*61f54461SH. Peter Anvin#include "realmode.h" 11*61f54461SH. Peter Anvin 12b3266bd6SJarkko Sakkinen .section ".header", "a" 13b3266bd6SJarkko Sakkinen 14cda846f1SJarkko Sakkinen .balign 16 158e029fcdSJarkko SakkinenGLOBAL(real_mode_header) 16b3266bd6SJarkko Sakkinen .long pa_text_start 17b3266bd6SJarkko Sakkinen .long pa_ro_end 1848927bbbSJarkko Sakkinen /* SMP trampoline */ 19f37240f1SJarkko Sakkinen .long pa_trampoline_start 2048927bbbSJarkko Sakkinen .long pa_trampoline_status 21f37240f1SJarkko Sakkinen .long pa_trampoline_header 22f37240f1SJarkko Sakkinen#ifdef CONFIG_X86_64 23f37240f1SJarkko Sakkinen .long pa_trampoline_pgd; 2448927bbbSJarkko Sakkinen#endif 25f37240f1SJarkko Sakkinen /* ACPI S3 wakeup */ 26c9b77ccbSJarkko Sakkinen#ifdef CONFIG_ACPI_SLEEP 27c9b77ccbSJarkko Sakkinen .long pa_wakeup_start 28c9b77ccbSJarkko Sakkinen .long pa_wakeup_header 29c9b77ccbSJarkko Sakkinen#endif 30f37240f1SJarkko Sakkinen /* APM/BIOS reboot */ 31f37240f1SJarkko Sakkinen#ifdef CONFIG_X86_32 32f37240f1SJarkko Sakkinen .long pa_machine_real_restart_asm 33f37240f1SJarkko Sakkinen#endif 34b3266bd6SJarkko SakkinenEND(real_mode_header) 35*61f54461SH. Peter Anvin 36*61f54461SH. Peter Anvin /* End signature, used to verify integrity */ 37*61f54461SH. Peter Anvin .section ".signature","a" 38*61f54461SH. Peter Anvin .balign 4 39*61f54461SH. Peter AnvinGLOBAL(end_signature) 40*61f54461SH. Peter Anvin .long REALMODE_END_SIGNATURE 41*61f54461SH. Peter AnvinEND(end_signature) 42