[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH V2 1/3] Update the Linux boot protocol
From: |
Matthew Garrett |
Subject: |
[PATCH V2 1/3] Update the Linux boot protocol |
Date: |
Mon, 6 Feb 2012 10:53:03 -0500 |
The Linux boot header includes information on the kernel's desired load
address and alignment. Add support for that.
---
ChangeLog | 6 ++++++
include/grub/i386/linux.h | 28 +++++++++++++++++++++++-----
2 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 313d135..943efe1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-06 Matthew Garrett <address@hidden>
+
+ * include/grub/i386/linux.h (linux_kernel_header): Update to
+ boot protocol 2.10.
+ (linux_kernel_params): Likewise
+
2012-02-05 Vladimir Serbinenko <address@hidden>
* grub-core/commands/minicmd.c (GRUB_MOD_INIT): Add missing SIZE
diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h
index 6aa2391..8e27b93 100644
--- a/include/grub/i386/linux.h
+++ b/include/grub/i386/linux.h
@@ -86,7 +86,7 @@ enum
GRUB_VIDEO_LINUX_TYPE_SIMPLE = 0x70 /* Linear framebuffer without any
additional functions. */
};
-/* For the Linux/i386 boot protocol version 2.03. */
+/* For the Linux/i386 boot protocol version 2.10. */
struct linux_kernel_header
{
grub_uint8_t code1[0x0020];
@@ -131,8 +131,16 @@ struct linux_kernel_header
grub_uint32_t initrd_addr_max; /* Highest address for initrd */
grub_uint32_t kernel_alignment;
grub_uint8_t relocatable;
- grub_uint8_t pad[3];
+ grub_uint8_t min_alignment;
+ grub_uint8_t pad[2];
grub_uint32_t cmdline_size;
+ grub_uint32_t hardware_subarch;
+ grub_uint64_t hardware_subarch_data;
+ grub_uint32_t payload_offset;
+ grub_uint32_t payload_length;
+ grub_uint64_t setup_data;
+ grub_uint64_t pref_address;
+ grub_uint64_t init_size;
} __attribute__ ((packed));
/* Boot parameters for Linux based on 2.6.12. This is used by the setup
@@ -276,10 +284,20 @@ struct linux_kernel_params
grub_uint32_t ramdisk_size; /* initrd size */
grub_uint32_t bootsect_kludge; /* obsolete */
grub_uint16_t heap_end_ptr; /* Free memory after setup end */
- grub_uint16_t pad1; /* Unused */
+ grub_uint8_t ext_loader_ver; /* Extended loader version */
+ grub_uint8_t ext_loader_type; /* Extended loader type */
grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */
-
- grub_uint8_t pad2[164]; /* 22c */
+ grub_uint32_t initrd_addr_max; /* Maximum initrd address */
+ grub_uint32_t kernel_alignment; /* Alignment of the kernel */
+ grub_uint8_t relocatable_kernel; /* Is the kernel relocatable */
+ grub_uint8_t pad1[3];
+ grub_uint32_t cmdline_size; /* Size of the kernel command line */
+ grub_uint32_t hardware_subarch;
+ grub_uint64_t hardware_subarch_data;
+ grub_uint32_t payload_offset;
+ grub_uint32_t payload_length;
+ grub_uint64_t setup_data;
+ grub_uint8_t pad2[120]; /* 258 */
struct grub_e820_mmap e820_map[GRUB_E820_MAX_ENTRY]; /* 2d0 */
} __attribute__ ((packed));
--
1.7.7.6
- [PATCH V2 1/3] Update the Linux boot protocol,
Matthew Garrett <=
- [PATCH V2 2/3] Add support for avoiding firmware in relocations, Matthew Garrett, 2012/02/06
- [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Matthew Garrett, 2012/02/06
- Re: [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Keshav P R, 2012/02/06
- Re: [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Keshav P R, 2012/02/06
- Re: [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Matthew Garrett, 2012/02/06
- Re: [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Keshav P R, 2012/02/06
- Re: [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Keshav P R, 2012/02/06
- Re: [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Keshav P R, 2012/02/08
- Re: [PATCH V2 3/3] Update Linux loader to follow the kernel's preferences, Keshav P R, 2012/02/08