All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V3 1/3] Update the Linux boot protocol
@ 2012-02-08 16:55 Matthew Garrett
  2012-02-08 16:55 ` [PATCH V3 2/3] Add support for avoiding firmware in relocations Matthew Garrett
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Matthew Garrett @ 2012-02-08 16:55 UTC (permalink / raw)
  To: grub-devel; +Cc: Matthew Garrett

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 ede7f8e..2bdb3a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-08  Matthew Garrett  <mjg@redhat.com>
+
+	* include/grub/i386/linux.h (linux_kernel_header): Update to
+	boot protocol 2.10.
+	(linux_kernel_params): Likewise
+
 2012-02-07  Vladimir Serbinenko  <phcoder@gmail.com>
 
 	* grub-core/lib/i386/relocator16.S: Revert moving A20 code into PM
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



^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2012-02-26 21:34 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-08 16:55 [PATCH V3 1/3] Update the Linux boot protocol Matthew Garrett
2012-02-08 16:55 ` [PATCH V3 2/3] Add support for avoiding firmware in relocations Matthew Garrett
2012-02-08 19:41   ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-08 22:22   ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-08 22:25   ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-08 16:55 ` [PATCH V3 3/3] Update Linux loader to follow the kernel's preferences Matthew Garrett
2012-02-08 19:49   ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-08 19:35 ` [PATCH V3 1/3] Update the Linux boot protocol Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-26 21:01   ` Keshav P R
2012-02-26 21:12     ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-26 21:18       ` Keshav P R
2012-02-26 21:22         ` Keshav P R
2012-02-26 21:29           ` Vladimir 'φ-coder/phcoder' Serbinenko
2012-02-26 21:34         ` Vladimir 'φ-coder/phcoder' Serbinenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.