xref: /openbmc/linux/arch/x86/include/asm/realmode.h (revision b429dbf6e866bd6dadb56fae66f61f611cde57ff)
1084ee1c6SJarkko Sakkinen #ifndef _ARCH_X86_REALMODE_H
2084ee1c6SJarkko Sakkinen #define _ARCH_X86_REALMODE_H
3084ee1c6SJarkko Sakkinen 
4084ee1c6SJarkko Sakkinen #include <linux/types.h>
5084ee1c6SJarkko Sakkinen #include <asm/io.h>
6084ee1c6SJarkko Sakkinen 
7084ee1c6SJarkko Sakkinen /* This must match data at realmode.S */
8084ee1c6SJarkko Sakkinen struct real_mode_header {
9084ee1c6SJarkko Sakkinen 	u32	text_start;
10084ee1c6SJarkko Sakkinen 	u32	ro_end;
115a8c9aebSJarkko Sakkinen 	/* reboot */
125a8c9aebSJarkko Sakkinen #ifdef CONFIG_X86_32
135a8c9aebSJarkko Sakkinen 	u32	machine_real_restart_asm;
145a8c9aebSJarkko Sakkinen #endif
1548927bbbSJarkko Sakkinen 	/* SMP trampoline */
1648927bbbSJarkko Sakkinen 	u32	trampoline_data;
1748927bbbSJarkko Sakkinen 	u32	trampoline_status;
1848927bbbSJarkko Sakkinen #ifdef CONFIG_X86_32
1948927bbbSJarkko Sakkinen 	u32	startup_32_smp;
2048927bbbSJarkko Sakkinen 	u32	boot_gdt;
2148927bbbSJarkko Sakkinen #else
2248927bbbSJarkko Sakkinen 	u32	startup_64_smp;
2348927bbbSJarkko Sakkinen 	u32	level3_ident_pgt;
2448927bbbSJarkko Sakkinen 	u32	level3_kernel_pgt;
2548927bbbSJarkko Sakkinen #endif
26c9b77ccbSJarkko Sakkinen #ifdef CONFIG_ACPI_SLEEP
27c9b77ccbSJarkko Sakkinen 	u32	wakeup_start;
28c9b77ccbSJarkko Sakkinen 	u32	wakeup_header;
29c9b77ccbSJarkko Sakkinen #endif
30084ee1c6SJarkko Sakkinen } __attribute__((__packed__));
31084ee1c6SJarkko Sakkinen 
32*b429dbf6SJarkko Sakkinen extern struct real_mode_header *real_mode_header;
33*b429dbf6SJarkko Sakkinen extern unsigned char real_mode_blob_end[];
34084ee1c6SJarkko Sakkinen 
35084ee1c6SJarkko Sakkinen extern unsigned long init_rsp;
36084ee1c6SJarkko Sakkinen extern unsigned long initial_code;
37084ee1c6SJarkko Sakkinen extern unsigned long initial_gs;
38084ee1c6SJarkko Sakkinen 
39084ee1c6SJarkko Sakkinen extern unsigned char real_mode_blob[];
40084ee1c6SJarkko Sakkinen extern unsigned char real_mode_relocs[];
41084ee1c6SJarkko Sakkinen 
4248927bbbSJarkko Sakkinen #ifdef CONFIG_X86_32
4348927bbbSJarkko Sakkinen extern unsigned char startup_32_smp[];
4448927bbbSJarkko Sakkinen extern unsigned char boot_gdt[];
4548927bbbSJarkko Sakkinen #else
4648927bbbSJarkko Sakkinen extern unsigned char secondary_startup_64[];
4748927bbbSJarkko Sakkinen #endif
4848927bbbSJarkko Sakkinen 
49084ee1c6SJarkko Sakkinen extern void __init setup_real_mode(void);
50084ee1c6SJarkko Sakkinen 
51084ee1c6SJarkko Sakkinen #endif /* _ARCH_X86_REALMODE_H */
52