aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/boot/head.S
diff options
context:
space:
mode:
Diffstat (limited to 'xen/arch/x86/boot/head.S')
-rw-r--r--xen/arch/x86/boot/head.S19
1 files changed, 19 insertions, 0 deletions
diff --git a/xen/arch/x86/boot/head.S b/xen/arch/x86/boot/head.S
index b12eefb8be..8c0a80e41d 100644
--- a/xen/arch/x86/boot/head.S
+++ b/xen/arch/x86/boot/head.S
@@ -32,6 +32,15 @@ ENTRY(start)
/* Checksum: must be the negated sum of the first two fields. */
.long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
+ .align 8
+ /*Magic number */
+ .quad 0xdeadbeefef104ead
+ .quad sym_phys(efi_loader_signature)
+ .quad sym_phys(efi_system_table_addr)
+ .quad sym_phys(realmode_available)
+ .quad sym_phys(boot_vid_mode)
+ .quad sym_phys(boot_vid_info)
+
.section .init.text, "ax"
.Lbad_cpu_msg: .asciz "ERR: Not a 64-bit CPU!"
@@ -195,6 +204,16 @@ __start:
reloc:
#include "reloc.S"
+ .align 8
+
+ .globl efi_loader_signature
+efi_loader_signature:
+ .quad 0x1 /* Non zero - must not be in bss, as xen resets the bss on init */
+
+ .globl efi_system_table_addr
+efi_system_table_addr:
+ .quad 0x1 /* Non zero - must not be in bss, as xen resets the bss on init */
+
ENTRY(trampoline_start)
#include "trampoline.S"
GLOBAL(trampoline_end)