|
@@ -283,7 +283,7 @@ _start:
|
|
# Part 2 of the header, from the old setup.S
|
|
# Part 2 of the header, from the old setup.S
|
|
|
|
|
|
.ascii "HdrS" # header signature
|
|
.ascii "HdrS" # header signature
|
|
- .word 0x020c # header version number (>= 0x0105)
|
|
|
|
|
|
+ .word 0x020d # header version number (>= 0x0105)
|
|
# or else old loadlin-1.5 will fail)
|
|
# or else old loadlin-1.5 will fail)
|
|
.globl realmode_swtch
|
|
.globl realmode_swtch
|
|
realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
|
|
realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
|
|
@@ -375,7 +375,8 @@ xloadflags:
|
|
# define XLF0 0
|
|
# define XLF0 0
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-#if defined(CONFIG_RELOCATABLE) && defined(CONFIG_X86_64)
|
|
|
|
|
|
+#if defined(CONFIG_RELOCATABLE) && defined(CONFIG_X86_64) && \
|
|
|
|
+ !defined(CONFIG_EFI_MIXED)
|
|
/* kernel/boot_param/ramdisk could be loaded above 4g */
|
|
/* kernel/boot_param/ramdisk could be loaded above 4g */
|
|
# define XLF1 XLF_CAN_BE_LOADED_ABOVE_4G
|
|
# define XLF1 XLF_CAN_BE_LOADED_ABOVE_4G
|
|
#else
|
|
#else
|
|
@@ -383,10 +384,14 @@ xloadflags:
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_EFI_STUB
|
|
#ifdef CONFIG_EFI_STUB
|
|
-# ifdef CONFIG_X86_64
|
|
|
|
-# define XLF23 XLF_EFI_HANDOVER_64 /* 64-bit EFI handover ok */
|
|
|
|
|
|
+# ifdef CONFIG_EFI_MIXED
|
|
|
|
+# define XLF23 (XLF_EFI_HANDOVER_32|XLF_EFI_HANDOVER_64)
|
|
# else
|
|
# else
|
|
-# define XLF23 XLF_EFI_HANDOVER_32 /* 32-bit EFI handover ok */
|
|
|
|
|
|
+# ifdef CONFIG_X86_64
|
|
|
|
+# define XLF23 XLF_EFI_HANDOVER_64 /* 64-bit EFI handover ok */
|
|
|
|
+# else
|
|
|
|
+# define XLF23 XLF_EFI_HANDOVER_32 /* 32-bit EFI handover ok */
|
|
|
|
+# endif
|
|
# endif
|
|
# endif
|
|
#else
|
|
#else
|
|
# define XLF23 0
|
|
# define XLF23 0
|