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 1648927bbbSJarkko Sakkinen /* SMP trampoline */ 1748927bbbSJarkko Sakkinen u32 trampoline_data; 1848927bbbSJarkko Sakkinen u32 trampoline_status; 1948927bbbSJarkko Sakkinen #ifdef CONFIG_X86_32 2048927bbbSJarkko Sakkinen u32 startup_32_smp; 2148927bbbSJarkko Sakkinen u32 boot_gdt; 2248927bbbSJarkko Sakkinen #else 2348927bbbSJarkko Sakkinen u32 startup_64_smp; 2448927bbbSJarkko Sakkinen u32 level3_ident_pgt; 2548927bbbSJarkko Sakkinen u32 level3_kernel_pgt; 2648927bbbSJarkko Sakkinen #endif 27*c9b77ccbSJarkko Sakkinen #ifdef CONFIG_ACPI_SLEEP 28*c9b77ccbSJarkko Sakkinen u32 wakeup_start; 29*c9b77ccbSJarkko Sakkinen u32 wakeup_header; 30*c9b77ccbSJarkko Sakkinen #endif 31084ee1c6SJarkko Sakkinen } __attribute__((__packed__)); 32084ee1c6SJarkko Sakkinen 33084ee1c6SJarkko Sakkinen extern struct real_mode_header real_mode_header; 34084ee1c6SJarkko Sakkinen extern unsigned char *real_mode_base; 35084ee1c6SJarkko Sakkinen 36084ee1c6SJarkko Sakkinen extern unsigned long init_rsp; 37084ee1c6SJarkko Sakkinen extern unsigned long initial_code; 38084ee1c6SJarkko Sakkinen extern unsigned long initial_gs; 39084ee1c6SJarkko Sakkinen 40084ee1c6SJarkko Sakkinen extern unsigned char real_mode_blob[]; 41084ee1c6SJarkko Sakkinen extern unsigned char real_mode_relocs[]; 42084ee1c6SJarkko Sakkinen 4348927bbbSJarkko Sakkinen #ifdef CONFIG_X86_32 4448927bbbSJarkko Sakkinen extern unsigned char startup_32_smp[]; 4548927bbbSJarkko Sakkinen extern unsigned char boot_gdt[]; 4648927bbbSJarkko Sakkinen #else 4748927bbbSJarkko Sakkinen extern unsigned char secondary_startup_64[]; 4848927bbbSJarkko Sakkinen #endif 4948927bbbSJarkko Sakkinen 50084ee1c6SJarkko Sakkinen extern void __init setup_real_mode(void); 51084ee1c6SJarkko Sakkinen 52084ee1c6SJarkko Sakkinen #endif /* _ARCH_X86_REALMODE_H */ 53