From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1RvDIa-0003lH-Fs for mharc-grub-devel@gnu.org; Wed, 08 Feb 2012 14:35:24 -0500 Received: from eggs.gnu.org ([140.186.70.92]:51672) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvDIU-0003l9-Ty for grub-devel@gnu.org; Wed, 08 Feb 2012 14:35:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RvDIQ-0006ie-JB for grub-devel@gnu.org; Wed, 08 Feb 2012 14:35:18 -0500 Received: from mail-wi0-f169.google.com ([209.85.212.169]:48769) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RvDIQ-0006iH-E9 for grub-devel@gnu.org; Wed, 08 Feb 2012 14:35:14 -0500 Received: by wibhj13 with SMTP id hj13so857277wib.0 for ; Wed, 08 Feb 2012 11:35:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=J4Ek58IO251uzsxJM3GluiMNXZfVT0rzeZQTNjpJ6SY=; b=mOOYUXPXfZ9PVUD75svrP2sZ1eDJqDv+SrfSrhbeIM8K57S0CWeY1V6wnSdNgDA7Ns 5yJiLcz9fH5YOblLCBob+m67jXB5wQh/9SXfXpuGTqu5Wyoz6VgfX0cI1Rv+PJUlQiRA 3caFt3vsUlDg4SSutDvh33/YEfA7WgOR4RLfs= Received: by 10.216.136.155 with SMTP id w27mr13940206wei.8.1328729713223; Wed, 08 Feb 2012 11:35:13 -0800 (PST) Received: from debian.x201.phnet (202-41.62-81.cust.bluewin.ch. [81.62.41.202]) by mx.google.com with ESMTPS id dw7sm2024535wib.4.2012.02.08.11.35.10 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 08 Feb 2012 11:35:11 -0800 (PST) Message-ID: <4F32CE6D.5090703@gmail.com> Date: Wed, 08 Feb 2012 20:35:09 +0100 From: =?UTF-8?B?VmxhZGltaXIgJ8+GLWNvZGVyL3BoY29kZXInIFNlcmJpbmVua28=?= User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20120104 Icedove/8.0 MIME-Version: 1.0 To: The development of GNU GRUB Subject: Re: [PATCH V3 1/3] Update the Linux boot protocol References: <1328720102-4914-1-git-send-email-mjg@redhat.com> In-Reply-To: <1328720102-4914-1-git-send-email-mjg@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 209.85.212.169 Cc: Matthew Garrett X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Feb 2012 19:35:23 -0000 Go ahead. On 08.02.2012 17:55, Matthew Garrett wrote: > 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 > + > + * include/grub/i386/linux.h (linux_kernel_header): Update to > + boot protocol 2.10. > + (linux_kernel_params): Likewise > + > 2012-02-07 Vladimir Serbinenko > > * 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)); -- Regards Vladimir 'φ-coder/phcoder' Serbinenko