@@ -57,6 +57,10 @@ Protocol 2.10: (Kernel 2.6.31) Added a protocol for relaxed alignment
5757Protocol 2.11: (Kernel 3.6) Added a field for offset of EFI handover
5858 protocol entry point.
5959
60+ Protocol 2.12: (Kernel 3.8) Added the xloadflags field and extension fields
61+ to struct boot_params for for loading bzImage and ramdisk
62+ above 4G in 64bit.
63+
6064**** MEMORY LAYOUT
6165
6266The traditional memory map for the kernel loader, used for Image or
@@ -182,7 +186,7 @@ Offset Proto Name Meaning
1821860230/4 2.05+ kernel_alignment Physical addr alignment required for kernel
1831870234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
1841880235/1 2.10+ min_alignment Minimum alignment, as a power of two
185- 0236/2 N/A pad3 Unused
189+ 0236/2 2.12+ xloadflags Boot protocol option flags
1861900238/4 2.06+ cmdline_size Maximum size of the kernel command line
187191023C/4 2.07+ hardware_subarch Hardware subarchitecture
1881920240/8 2.07+ hardware_subarch_data Subarchitecture-specific data
@@ -582,6 +586,27 @@ Protocol: 2.10+
582586 misaligned kernel. Therefore, a loader should typically try each
583587 power-of-two alignment from kernel_alignment down to this alignment.
584588
589+ Field name: xloadflags
590+ Type: read
591+ Offset/size: 0x236/2
592+ Protocol: 2.12+
593+
594+ This field is a bitmask.
595+
596+ Bit 0 (read): XLF_KERNEL_64
597+ - If 1, this kernel has the legacy 64-bit entry point at 0x200.
598+
599+ Bit 1 (read): XLF_CAN_BE_LOADED_ABOVE_4G
600+ - If 1, kernel/boot_params/cmdline/ramdisk can be above 4G.
601+
602+ Bit 2 (read): XLF_EFI_HANDOVER_32
603+ - If 1, the kernel supports the 32-bit EFI handoff entry point
604+ given at handover_offset.
605+
606+ Bit 3 (read): XLF_EFI_HANDOVER_64
607+ - If 1, the kernel supports the 64-bit EFI handoff entry point
608+ given at handover_offset + 0x200.
609+
585610Field name: cmdline_size
586611Type: read
587612Offset/size: 0x238/4
0 commit comments