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