mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 07:30:26 +09:00
x86: Update the bootparam header
This header is missing a few of the newer features from the specification. Add these as well as a link to the spec. Also use the BIT() macros where appropriate. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
e119de72e3
commit
6e04cb76db
@ -24,6 +24,11 @@ struct setup_data {
|
|||||||
__u8 data[0];
|
__u8 data[0];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct setup_header - Information needed by Linux to boot
|
||||||
|
*
|
||||||
|
* See https://www.kernel.org/doc/html/latest/x86/boot.html
|
||||||
|
*/
|
||||||
struct setup_header {
|
struct setup_header {
|
||||||
__u8 setup_sects;
|
__u8 setup_sects;
|
||||||
__u16 root_flags;
|
__u16 root_flags;
|
||||||
@ -43,15 +48,16 @@ struct setup_header {
|
|||||||
__u16 kernel_version;
|
__u16 kernel_version;
|
||||||
__u8 type_of_loader;
|
__u8 type_of_loader;
|
||||||
__u8 loadflags;
|
__u8 loadflags;
|
||||||
#define LOADED_HIGH (1<<0)
|
#define LOADED_HIGH BIT(0)
|
||||||
#define QUIET_FLAG (1<<5)
|
#define KASLR_FLAG BIT(1)
|
||||||
#define KEEP_SEGMENTS (1<<6)
|
#define QUIET_FLAG BIT(5)
|
||||||
#define CAN_USE_HEAP (1<<7)
|
#define KEEP_SEGMENTS BIT(6) /* Obsolete */
|
||||||
|
#define CAN_USE_HEAP BIT(7)
|
||||||
__u16 setup_move_size;
|
__u16 setup_move_size;
|
||||||
__u32 code32_start;
|
__u32 code32_start;
|
||||||
__u32 ramdisk_image;
|
__u32 ramdisk_image;
|
||||||
__u32 ramdisk_size;
|
__u32 ramdisk_size;
|
||||||
__u32 bootsect_kludge;
|
__u32 bootsect_kludge; /* Obsolete */
|
||||||
__u16 heap_end_ptr;
|
__u16 heap_end_ptr;
|
||||||
__u8 ext_loader_ver;
|
__u8 ext_loader_ver;
|
||||||
__u8 ext_loader_type;
|
__u8 ext_loader_type;
|
||||||
@ -59,7 +65,13 @@ struct setup_header {
|
|||||||
__u32 initrd_addr_max;
|
__u32 initrd_addr_max;
|
||||||
__u32 kernel_alignment;
|
__u32 kernel_alignment;
|
||||||
__u8 relocatable_kernel;
|
__u8 relocatable_kernel;
|
||||||
__u8 _pad2[3];
|
u8 min_alignment;
|
||||||
|
#define XLF_KERNEL_64 BIT(0)
|
||||||
|
#define XLF_CAN_BE_LOADED_ABOVE_4G BIT(1)
|
||||||
|
#define XLF_EFI_HANDOVER_32 BIT(2)
|
||||||
|
#define XLF_EFI_HANDOVER_64 BIT(3)
|
||||||
|
#define XLF_EFI_KEXEC BIT(4)
|
||||||
|
u16 xloadflags;
|
||||||
__u32 cmdline_size;
|
__u32 cmdline_size;
|
||||||
__u32 hardware_subarch;
|
__u32 hardware_subarch;
|
||||||
__u64 hardware_subarch_data;
|
__u64 hardware_subarch_data;
|
||||||
@ -69,6 +81,7 @@ struct setup_header {
|
|||||||
__u64 pref_address;
|
__u64 pref_address;
|
||||||
__u32 init_size;
|
__u32 init_size;
|
||||||
__u32 handover_offset;
|
__u32 handover_offset;
|
||||||
|
u32 kernel_info_offset;
|
||||||
} __attribute__((packed));
|
} __attribute__((packed));
|
||||||
|
|
||||||
struct sys_desc_table {
|
struct sys_desc_table {
|
||||||
|
Loading…
Reference in New Issue
Block a user