From: Yinghai Lu <yinghai@kernel.org>
To: Simon Horman <horms@verge.net.au>,
"H. Peter Anvin" <hpa@zytor.com>, Vivek Goyal <vgoyal@redhat.com>,
Haren Myneni <hbabu@us.ibm.com>,
"Eric W. Biederman" <ebiederm@xmission.com>
Cc: Yinghai Lu <yinghai@kernel.org>, kexec@lists.infradead.org
Subject: [PATCH v6 1/6] kexec, x86: add boot header member for version 2.12
Date: Thu, 13 Dec 2012 14:18:27 -0800 [thread overview]
Message-ID: <1355437112-9250-2-git-send-email-yinghai@kernel.org> (raw)
In-Reply-To: <1355437112-9250-1-git-send-email-yinghai@kernel.org>
will use ext_ramdisk_image/size, and xloadflags to put
ramdisk and bzImage high for 64bit.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
include/x86/x86-linux.h | 32 +++++++++++++++++++++++++++-----
1 file changed, 27 insertions(+), 5 deletions(-)
diff --git a/include/x86/x86-linux.h b/include/x86/x86-linux.h
index 27af02b..a2452f2 100644
--- a/include/x86/x86-linux.h
+++ b/include/x86/x86-linux.h
@@ -32,7 +32,7 @@ struct drive_info_struct {
};
struct sys_desc_table {
uint16_t length;
- uint8_t table[318];
+ uint8_t table[30];
};
struct apm_bios_info {
@@ -112,6 +112,10 @@ struct x86_linux_param_header {
struct apm_bios_info apm_bios_info; /* 0x40 */
struct drive_info_struct drive_info; /* 0x80 */
struct sys_desc_table sys_desc_table; /* 0xa0 */
+ uint32_t ext_ramdisk_image; /* 0xc0 */
+ uint32_t ext_ramdisk_size; /* 0xc4 */
+ uint32_t ext_cmd_line_ptr; /* 0xc8 */
+ uint8_t reserved4_1[0x1e0 - 0xcc]; /* 0xcc */
uint32_t alt_mem_k; /* 0x1e0 */
uint8_t reserved5[4]; /* 0x1e4 */
uint8_t e820_map_nr; /* 0x1e8 */
@@ -174,11 +178,18 @@ struct x86_linux_param_header {
/* 2.04+ */
uint32_t kernel_alignment; /* 0x230 */
uint8_t relocatable_kernel; /* 0x234 */
- uint8_t reserved15[3]; /* 0x235 */
+ uint8_t min_alignment; /* 0x235 */
+ uint16_t xloadflags; /* 0x236 */
uint32_t cmdline_size; /* 0x238 */
uint32_t hardware_subarch; /* 0x23C */
uint64_t hardware_subarch_data; /* 0x240 */
- uint8_t reserved16[0x290 - 0x248]; /* 0x248 */
+ uint32_t payload_offset; /* 0x248 */
+ uint32_t payload_length; /* 0x24C */
+ uint64_t setup_data; /* 0x250 */
+ uint64_t pref_address; /* 0x258 */
+ uint32_t init_size; /* 0x260 */
+ uint32_t handover_offset; /* 0x264 */
+ uint8_t reserved16[0x290 - 0x268]; /* 0x268 */
uint32_t edd_mbr_sig_buffer[EDD_MBR_SIG_MAX]; /* 0x290 */
#endif
struct e820entry e820_map[E820MAX]; /* 0x2d0 */
@@ -195,7 +206,11 @@ struct x86_linux_faked_param_header {
};
struct x86_linux_header {
- uint8_t reserved1[0x1f1]; /* 0x000 */
+ uint8_t reserved1[0xc0]; /* 0x000 */
+ uint32_t ext_ramdisk_image; /* 0x0c0 */
+ uint32_t ext_ramdisk_size; /* 0x0c4 */
+ uint32_t ext_cmd_line_ptr; /* 0x0c8 */
+ uint8_t reserved1_1[0x1f1-0xcc]; /* 0x0cc */
uint8_t setup_sects; /* 0x1f1 */
uint16_t root_flags; /* 0x1f2 */
uint16_t syssize; /* 0x1f4 */
@@ -241,10 +256,17 @@ struct x86_linux_header {
#else
uint32_t kernel_alignment; /* 0x230 */
uint8_t relocatable_kernel; /* 0x234 */
- uint8_t reserved6[3]; /* 0x235 */
+ uint8_t min_alignment; /* 0x235 */
+ uint16_t xloadflags; /* 0x236 */
uint32_t cmdline_size; /* 0x238 */
uint32_t hardware_subarch; /* 0x23C */
uint64_t hardware_subarch_data; /* 0x240 */
+ uint32_t payload_offset; /* 0x248 */
+ uint32_t payload_length; /* 0x24C */
+ uint64_t setup_data; /* 0x250 */
+ uint64_t pref_address; /* 0x258 */
+ uint32_t init_size; /* 0x260 */
+ uint32_t handover_offset; /* 0x264 */
#endif
} PACKED;
--
1.7.10.4
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2012-12-13 22:18 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-13 22:18 [PATCH v6 0/6] kexec: put bzImage and ramdisk above 4G for x86 64bit Yinghai Lu
2012-12-13 22:18 ` Yinghai Lu [this message]
2012-12-13 22:18 ` [PATCH v6 2/6] kexec, x86: clean boot_params area for entry-32bit path Yinghai Lu
2012-12-13 22:18 ` [PATCH v6 3/6] kexec, x86: Fix bzImage real-mode booting Yinghai Lu
2012-12-13 23:42 ` H. Peter Anvin
2012-12-14 0:06 ` Yinghai Lu
2012-12-13 22:18 ` [PATCH v6 4/6] kexec, x86: put ramdisk/cmd_line above 4G for 64bit bzImage Yinghai Lu
2012-12-13 22:18 ` [PATCH v6 5/6] kexec, x86_64: Load bzImage64 above 4G Yinghai Lu
2012-12-13 22:18 ` [PATCH v6 6/6] kexec, x86: handle Crash low kernel range Yinghai Lu
2012-12-14 0:41 ` [PATCH v6 0/6] kexec: put bzImage and ramdisk above 4G for x86 64bit H. Peter Anvin
2012-12-14 0:47 ` Yinghai Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1355437112-9250-2-git-send-email-yinghai@kernel.org \
--to=yinghai@kernel.org \
--cc=ebiederm@xmission.com \
--cc=hbabu@us.ibm.com \
--cc=horms@verge.net.au \
--cc=hpa@zytor.com \
--cc=kexec@lists.infradead.org \
--cc=vgoyal@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.