x86, realmode: header for trampoline code
Added header for trampoline code that can be used to supply input data to it. This makes interface between real mode code and kernel cleaner and simpler. Replaced two confusing pointers to level4 pgt in trampoline_64.S with a single pointer to the beginning of the page table. Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com> Link: http://lkml.kernel.org/r/1336501366-28617-21-git-send-email-jarkko.sakkinen@intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:

committed by
H. Peter Anvin

parent
c4845474a0
commit
f37240f16b
@@ -8,24 +8,32 @@
|
||||
struct real_mode_header {
|
||||
u32 text_start;
|
||||
u32 ro_end;
|
||||
/* reboot */
|
||||
#ifdef CONFIG_X86_32
|
||||
u32 machine_real_restart_asm;
|
||||
#endif
|
||||
/* SMP trampoline */
|
||||
u32 trampoline_data;
|
||||
u32 trampoline_start;
|
||||
u32 trampoline_status;
|
||||
#ifdef CONFIG_X86_32
|
||||
u32 startup_32_smp;
|
||||
u32 boot_gdt;
|
||||
#else
|
||||
u32 startup_64_smp;
|
||||
u32 level3_ident_pgt;
|
||||
u32 level3_kernel_pgt;
|
||||
u32 trampoline_header;
|
||||
#ifdef CONFIG_X86_64
|
||||
u32 trampoline_pgd;
|
||||
#endif
|
||||
/* ACPI S3 wakeup */
|
||||
#ifdef CONFIG_ACPI_SLEEP
|
||||
u32 wakeup_start;
|
||||
u32 wakeup_header;
|
||||
#endif
|
||||
/* APM/BIOS reboot */
|
||||
#ifdef CONFIG_X86_32
|
||||
u32 machine_real_restart_asm;
|
||||
#endif
|
||||
} __attribute__((__packed__));
|
||||
|
||||
/* This must match data at trampoline_32/64.S */
|
||||
struct trampoline_header {
|
||||
#ifdef CONFIG_X86_32
|
||||
u32 start;
|
||||
u16 gdt_limit;
|
||||
u32 gdt_base;
|
||||
#else
|
||||
u64 start;
|
||||
#endif
|
||||
} __attribute__((__packed__));
|
||||
|
||||
|
Reference in New Issue
Block a user