xref: /openbmc/linux/arch/x86/include/asm/realmode.h (revision 48927bbb97c7d4cf343c05827ab9ac30c60678cb)
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;
11084ee1c6SJarkko Sakkinen 	u32	end;
125a8c9aebSJarkko Sakkinen 	/* reboot */
135a8c9aebSJarkko Sakkinen #ifdef CONFIG_X86_32
145a8c9aebSJarkko Sakkinen 	u32	machine_real_restart_asm;
155a8c9aebSJarkko Sakkinen #endif
16*48927bbbSJarkko Sakkinen 	/* SMP trampoline */
17*48927bbbSJarkko Sakkinen 	u32	trampoline_data;
18*48927bbbSJarkko Sakkinen 	u32	trampoline_status;
19*48927bbbSJarkko Sakkinen #ifdef CONFIG_X86_32
20*48927bbbSJarkko Sakkinen 	u32	startup_32_smp;
21*48927bbbSJarkko Sakkinen 	u32	boot_gdt;
22*48927bbbSJarkko Sakkinen #else
23*48927bbbSJarkko Sakkinen 	u32	startup_64_smp;
24*48927bbbSJarkko Sakkinen 	u32	level3_ident_pgt;
25*48927bbbSJarkko Sakkinen 	u32	level3_kernel_pgt;
26*48927bbbSJarkko Sakkinen #endif
27084ee1c6SJarkko Sakkinen } __attribute__((__packed__));
28084ee1c6SJarkko Sakkinen 
29084ee1c6SJarkko Sakkinen extern struct real_mode_header real_mode_header;
30084ee1c6SJarkko Sakkinen extern unsigned char *real_mode_base;
31084ee1c6SJarkko Sakkinen 
32084ee1c6SJarkko Sakkinen extern unsigned long init_rsp;
33084ee1c6SJarkko Sakkinen extern unsigned long initial_code;
34084ee1c6SJarkko Sakkinen extern unsigned long initial_gs;
35084ee1c6SJarkko Sakkinen 
36084ee1c6SJarkko Sakkinen extern unsigned char real_mode_blob[];
37084ee1c6SJarkko Sakkinen extern unsigned char real_mode_relocs[];
38084ee1c6SJarkko Sakkinen 
39*48927bbbSJarkko Sakkinen #ifdef CONFIG_X86_32
40*48927bbbSJarkko Sakkinen extern unsigned char startup_32_smp[];
41*48927bbbSJarkko Sakkinen extern unsigned char boot_gdt[];
42*48927bbbSJarkko Sakkinen #else
43*48927bbbSJarkko Sakkinen extern unsigned char secondary_startup_64[];
44*48927bbbSJarkko Sakkinen #endif
45*48927bbbSJarkko Sakkinen 
46084ee1c6SJarkko Sakkinen extern void __init setup_real_mode(void);
47084ee1c6SJarkko Sakkinen 
48084ee1c6SJarkko Sakkinen #endif /* _ARCH_X86_REALMODE_H */
49