From: Yinghai Lu <yinghai@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
"H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>,
Rob Landley <rob@landley.net>,
Matt Fleming <matt.fleming@intel.com>
Subject: [PATCH 7/9] x86, boot: add field to support load bzImage and ramdisk high
Date: Fri, 16 Nov 2012 00:53:07 -0800 [thread overview]
Message-ID: <1353055989-31939-8-git-send-email-yinghai@kernel.org> (raw)
In-Reply-To: <1353055989-31939-1-git-send-email-yinghai@kernel.org>
ext_ramdisk_image/size will record high 32bits for ramdisk info.
code64_start_offset will be set for bzImage that support 64bit.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: Rob Landley <rob@landley.net>
Cc: Matt Fleming <matt.fleming@intel.com>
---
Documentation/x86/boot.txt | 4 ++++
| 11 ++++++++++-
arch/x86/include/asm/bootparam.h | 3 +++
arch/x86/kernel/setup.c | 6 ++++++
4 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt
index 9efceff..26c7dcc 100644
--- a/Documentation/x86/boot.txt
+++ b/Documentation/x86/boot.txt
@@ -193,6 +193,10 @@ Offset Proto Name Meaning
0258/8 2.10+ pref_address Preferred loading address
0260/4 2.10+ init_size Linear memory required during initialization
0264/4 2.11+ handover_offset Offset of handover entry point
+0268/4 2.12+ ext_ramdisk_image initrd load address high 32 bits
+ (set by boot loader)
+026C/4 2.12+ ext_ramdisk_size initrd size high 32 bits (set by boot loader)
+0270/4 2.12+ code64_start_offset 64bit start offset for bzImage
(1) For backwards compatibility, if the setup_sects field contains 0, the
real value is 4.
--git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index 2a01744..85ce1a4 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -279,7 +279,7 @@ _start:
# Part 2 of the header, from the old setup.S
.ascii "HdrS" # header signature
- .word 0x020b # header version number (>= 0x0105)
+ .word 0x020c # header version number (>= 0x0105)
# or else old loadlin-1.5 will fail)
.globl realmode_swtch
realmode_swtch: .word 0, 0 # default_switch, SETUPSEG
@@ -400,6 +400,15 @@ init_size: .long INIT_SIZE # kernel initialization size
handover_offset: .long 0x30 # offset to the handover
# protocol entry point
+ext_ramdisk_image: .long 0 # address of loaded ramdisk image
+ # Here the loader puts the high 32 bits
+ # address where it loaded the image.
+ # This only will be read by the kernel.
+
+ext_ramdisk_size: .long 0 # its size in bytes high 32 bits.
+code64_start_offset: .long BOOT_CODE64_START_OFFSET # startup_64 in
+ # arch/x86/boot/compressed/head_64.S
+
# End of setup header #####################################################
.section ".entrytext", "ax"
diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h
index 2ad874c..4e42fd1 100644
--- a/arch/x86/include/asm/bootparam.h
+++ b/arch/x86/include/asm/bootparam.h
@@ -67,6 +67,9 @@ struct setup_header {
__u64 pref_address;
__u32 init_size;
__u32 handover_offset;
+ __u32 ext_ramdisk_image;
+ __u32 ext_ramdisk_size;
+ __u32 code64_start_offset;
} __attribute__((packed));
struct sys_desc_table {
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 194e151..c2eb535 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -302,12 +302,18 @@ static u64 __init get_ramdisk_image(void)
{
u64 ramdisk_image = boot_params.hdr.ramdisk_image;
+ if (boot_params.hdr.version >= 0x020c)
+ ramdisk_image |= (u64)boot_params.hdr.ext_ramdisk_image << 32;
+
return ramdisk_image;
}
static u64 __init get_ramdisk_size(void)
{
u64 ramdisk_size = boot_params.hdr.ramdisk_size;
+ if (boot_params.hdr.version >= 0x020c)
+ ramdisk_size |= (u64)boot_params.hdr.ext_ramdisk_size << 32;
+
return ramdisk_size;
}
--
1.7.7
next prev parent reply other threads:[~2012-11-16 8:54 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-16 8:53 [PATCH 0/9] x86, boot, 64bit: Add support for loading ramdisk and bzImage high Yinghai Lu
2012-11-16 8:53 ` [PATCH 1/9] x86, boot: Move lldt/ltr out of 64bit only path Yinghai Lu
2012-11-16 15:55 ` H. Peter Anvin
2012-11-16 18:15 ` Yinghai Lu
2012-11-16 8:53 ` [PATCH 2/9] x86: Add macro for 64bit entry for bzImage Yinghai Lu
2012-11-16 15:56 ` H. Peter Anvin
2012-11-16 8:53 ` [PATCH 3/9] x86, 64bit: set extra ident page table for whole kernel range Yinghai Lu
2012-11-16 8:53 ` [PATCH 4/9] x86, 64bit: add support for loading kernel above 512G Yinghai Lu
2012-11-16 8:53 ` [PATCH 5/9] x86: Merge early_reserve_initrd for 32bit and 64bit Yinghai Lu
2012-11-16 8:53 ` [PATCH 6/9] x86: add get_ramdisk_image/size Yinghai Lu
2012-11-16 8:53 ` Yinghai Lu [this message]
2012-11-16 8:53 ` [PATCH 8/9] x86: ramdisk info print with high bits Yinghai Lu
2012-11-16 16:05 ` H. Peter Anvin
2012-11-16 19:21 ` Yinghai Lu
2012-11-16 19:32 ` Yinghai Lu
2012-11-16 19:39 ` H. Peter Anvin
2012-11-20 1:38 ` Valdis.Kletnieks
2012-11-16 19:39 ` H. Peter Anvin
2012-11-16 19:59 ` Yinghai Lu
2012-11-16 20:08 ` H. Peter Anvin
2012-11-16 20:12 ` Yinghai Lu
2012-11-16 20:25 ` H. Peter Anvin
2012-11-16 20:40 ` Yinghai Lu
2012-11-16 8:53 ` [PATCH 9/9] x86: remove 1024g limitation for kexec buffer on 64bit Yinghai Lu
2012-11-16 16:17 ` [PATCH 0/9] x86, boot, 64bit: Add support for loading ramdisk and bzImage high H. Peter Anvin
2012-11-17 0:40 ` 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=1353055989-31939-8-git-send-email-yinghai@kernel.org \
--to=yinghai@kernel.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matt.fleming@intel.com \
--cc=mingo@elte.hu \
--cc=rob@landley.net \
--cc=tglx@linutronix.de \
/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.