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
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			924 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			43 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)
 |