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