linux/arch/x86/realmode/rm/header.S
H. Peter Anvin 650513979a x86-64, reboot: Allow reboot=bios and reboot-cpu override on x86-64
With the revamped realmode trampoline code, it is trivial to extend
support for reboot=bios to x86-64.  Furthermore, while we are at it,
remove the restriction that only we can only override the reboot CPU
on 32 bits.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Link: http://lkml.kernel.org/n/tip-jopx7y6g6dbcx4tpal8q0jlr@git.kernel.org
2012-06-17 10:51:01 -07:00

44 lines
924 B
ArmAsm

/*
* Real-mode blob header; this should match realmode.h and be
* readonly; for mutable data instead add pointers into the .data
* or .bss sections as appropriate.
*/
#include <linux/linkage.h>
#include <asm/page_types.h>
#include <asm/segment.h>
#include "realmode.h"
.section ".header", "a"
.balign 16
GLOBAL(real_mode_header)
.long pa_text_start
.long pa_ro_end
/* SMP trampoline */
.long pa_trampoline_start
.long pa_trampoline_status
.long pa_trampoline_header
#ifdef CONFIG_X86_64
.long pa_trampoline_pgd;
#endif
/* ACPI S3 wakeup */
#ifdef CONFIG_ACPI_SLEEP
.long pa_wakeup_start
.long pa_wakeup_header
#endif
/* APM/BIOS reboot */
.long pa_machine_real_restart_asm
#ifdef CONFIG_X86_64
.long __KERNEL32_CS
#endif
END(real_mode_header)
/* End signature, used to verify integrity */
.section ".signature","a"
.balign 4
GLOBAL(end_signature)
.long REALMODE_END_SIGNATURE
END(end_signature)