diff options
Diffstat (limited to 'arch/x86/boot/header.S')
-rw-r--r-- | arch/x86/boot/header.S | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S index ec3b8ba68096..0ca9a5c362bc 100644 --- a/arch/x86/boot/header.S +++ b/arch/x86/boot/header.S | |||
@@ -283,7 +283,7 @@ _start: | |||
283 | # Part 2 of the header, from the old setup.S | 283 | # Part 2 of the header, from the old setup.S |
284 | 284 | ||
285 | .ascii "HdrS" # header signature | 285 | .ascii "HdrS" # header signature |
286 | .word 0x020c # header version number (>= 0x0105) | 286 | .word 0x020d # header version number (>= 0x0105) |
287 | # or else old loadlin-1.5 will fail) | 287 | # or else old loadlin-1.5 will fail) |
288 | .globl realmode_swtch | 288 | .globl realmode_swtch |
289 | realmode_swtch: .word 0, 0 # default_switch, SETUPSEG | 289 | realmode_swtch: .word 0, 0 # default_switch, SETUPSEG |
@@ -350,7 +350,7 @@ cmd_line_ptr: .long 0 # (Header version 0x0202 or later) | |||
350 | # can be located anywhere in | 350 | # can be located anywhere in |
351 | # low memory 0x10000 or higher. | 351 | # low memory 0x10000 or higher. |
352 | 352 | ||
353 | ramdisk_max: .long 0x7fffffff | 353 | initrd_addr_max: .long 0x7fffffff |
354 | # (Header version 0x0203 or later) | 354 | # (Header version 0x0203 or later) |
355 | # The highest safe address for | 355 | # The highest safe address for |
356 | # the contents of an initrd | 356 | # the contents of an initrd |
@@ -375,7 +375,8 @@ xloadflags: | |||
375 | # define XLF0 0 | 375 | # define XLF0 0 |
376 | #endif | 376 | #endif |
377 | 377 | ||
378 | #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_X86_64) | 378 | #if defined(CONFIG_RELOCATABLE) && defined(CONFIG_X86_64) && \ |
379 | !defined(CONFIG_EFI_MIXED) | ||
379 | /* kernel/boot_param/ramdisk could be loaded above 4g */ | 380 | /* kernel/boot_param/ramdisk could be loaded above 4g */ |
380 | # define XLF1 XLF_CAN_BE_LOADED_ABOVE_4G | 381 | # define XLF1 XLF_CAN_BE_LOADED_ABOVE_4G |
381 | #else | 382 | #else |
@@ -383,10 +384,14 @@ xloadflags: | |||
383 | #endif | 384 | #endif |
384 | 385 | ||
385 | #ifdef CONFIG_EFI_STUB | 386 | #ifdef CONFIG_EFI_STUB |
386 | # ifdef CONFIG_X86_64 | 387 | # ifdef CONFIG_EFI_MIXED |
387 | # define XLF23 XLF_EFI_HANDOVER_64 /* 64-bit EFI handover ok */ | 388 | # define XLF23 (XLF_EFI_HANDOVER_32|XLF_EFI_HANDOVER_64) |
388 | # else | 389 | # else |
389 | # define XLF23 XLF_EFI_HANDOVER_32 /* 32-bit EFI handover ok */ | 390 | # ifdef CONFIG_X86_64 |
391 | # define XLF23 XLF_EFI_HANDOVER_64 /* 64-bit EFI handover ok */ | ||
392 | # else | ||
393 | # define XLF23 XLF_EFI_HANDOVER_32 /* 32-bit EFI handover ok */ | ||
394 | # endif | ||
390 | # endif | 395 | # endif |
391 | #else | 396 | #else |
392 | # define XLF23 0 | 397 | # define XLF23 0 |
@@ -426,13 +431,7 @@ pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr | |||
426 | #define INIT_SIZE VO_INIT_SIZE | 431 | #define INIT_SIZE VO_INIT_SIZE |
427 | #endif | 432 | #endif |
428 | init_size: .long INIT_SIZE # kernel initialization size | 433 | init_size: .long INIT_SIZE # kernel initialization size |
429 | handover_offset: | 434 | handover_offset: .long 0 # Filled in by build.c |
430 | #ifdef CONFIG_EFI_STUB | ||
431 | .long 0x30 # offset to the handover | ||
432 | # protocol entry point | ||
433 | #else | ||
434 | .long 0 | ||
435 | #endif | ||
436 | 435 | ||
437 | # End of setup header ##################################################### | 436 | # End of setup header ##################################################### |
438 | 437 | ||