![H. Peter Anvin](/assets/img/avatar_default.png)
The end signature was defined in wakeup_asm.S as it originally came from the ACPI wakeup code. However, we rely on the existence of the .signature section to expand .bss, otherwise we would have to include code to explicitly zero the .bss depending on the configuration. Since the expanded .bss is just in .init.data anyway, it's easier to always have it expanded. This fixes failures when compiled without CONFIG_ACPI_SLEEP. Reported-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Cc: Jarkko Sakkinen <jarkko.sakkinen@intel.com>
42 lines
878 B
ArmAsm
42 lines
878 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 "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 */
|
|
#ifdef CONFIG_X86_32
|
|
.long pa_machine_real_restart_asm
|
|
#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)
|