From: "H. Peter Anvin" <hpa@zytor.com>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
"Eric W. Biederman" <ebiederm@xmission.com>,
linux-kernel@vger.kernel.org, Rob Landley <rob@landley.net>,
Matt Fleming <matt.fleming@intel.com>
Subject: Re: [PATCH v3 11/12] x86, boot: add fields to support load bzImage and ramdisk high
Date: Wed, 21 Nov 2012 09:17:21 -0800 [thread overview]
Message-ID: <50AD0CA1.8000904@zytor.com> (raw)
In-Reply-To: <1353482170-10160-12-git-send-email-yinghai@kernel.org>
On 11/20/2012 11:16 PM, Yinghai Lu wrote:
>
> diff --git a/Documentation/x86/boot.txt b/Documentation/x86/boot.txt
> index 9efceff..a8263f7 100644
> --- a/Documentation/x86/boot.txt
> +++ b/Documentation/x86/boot.txt
> @@ -57,6 +57,9 @@ Protocol 2.10: (Kernel 2.6.31) Added a protocol for relaxed alignment
> Protocol 2.11: (Kernel 3.6) Added a field for offset of EFI handover
> protocol entry point.
>
> +Protocol 2.12: (Kernel 3.9) Added three fields for loading bzImage and
> + ramdisk above 4G with 64bit.
> +
> **** MEMORY LAYOUT
>
> The traditional memory map for the kernel loader, used for Image or
> @@ -182,7 +185,7 @@ Offset Proto Name Meaning
> 0230/4 2.05+ kernel_alignment Physical addr alignment required for kernel
> 0234/1 2.05+ relocatable_kernel Whether kernel is relocatable or not
> 0235/1 2.10+ min_alignment Minimum alignment, as a power of two
> -0236/2 N/A pad3 Unused
> +0236/2 2.12+ xloadflags Boot protocal option flags
^^^^^^^^
> 0238/4 2.06+ cmdline_size Maximum size of the kernel command line
> 023C/4 2.07+ hardware_subarch Hardware subarchitecture
> 0240/8 2.07+ hardware_subarch_data Subarchitecture-specific data
> @@ -193,6 +196,9 @@ 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 ramdisk_image 32 bits
"high 32 bits" presumably...
> +026C/4 2.12+ ext_ramdisk_size ramdisk_size high 32 bits
> +0270/4 2.12+ ext_cmd_line_ptr cmd_line_ptr high 32 bits
I'm looking at these three fields and I'm getting worried about space --
there are only two more word-sized fields possible in this structure.
Since these fields are not initialized (default to zero) and almost
certainly aren't useful for people entering via the 16-bit entry point I
think we should move them out of struct setup_header and into the
remainder of struct boot_param.
> diff --git a/arch/x86/boot/compressed/cmdline.c b/arch/x86/boot/compressed/cmdline.c
> index b4c913c..00678d3 100644
> --- a/arch/x86/boot/compressed/cmdline.c
> +++ b/arch/x86/boot/compressed/cmdline.c
> @@ -17,6 +17,9 @@ static unsigned long get_cmd_line_ptr(void)
> {
> unsigned long cmd_line_ptr = real_mode->hdr.cmd_line_ptr;
>
> + if (real_mode->hdr.version >= 0x020c)
> + cmd_line_ptr |= (u64)real_mode->hdr.ext_cmd_line_ptr << 32;
> +
> return cmd_line_ptr;
> }
No. hdr.version is information from the kernel to the bootloader; it is
meaningless to look at it inside the kernel.
Same in a bunch of other places.
-hpa
--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.
next prev parent reply other threads:[~2012-11-21 17:17 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-21 7:15 [PATCH v3 00/12] x86, boot, 64bit: Add support for loading ramdisk and bzImage high Yinghai Lu
2012-11-21 7:15 ` [PATCH v3 01/12] x86, boot: move verify_cpu.S after 0x200 Yinghai Lu
2012-11-21 17:23 ` H. Peter Anvin
2012-11-21 19:45 ` Yinghai Lu
2012-11-21 19:50 ` H. Peter Anvin
2012-11-21 20:15 ` Yinghai Lu
2012-11-22 5:48 ` Eric W. Biederman
[not found] ` <3178cb29-0e9e-44d2-b21f-45c53f38980a@email.android.com>
2012-11-22 11:27 ` Eric W. Biederman
2012-11-24 7:00 ` Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 02/12] x86, boot: Move lldt/ltr out of 64bit code section Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 03/12] x86, 64bit: set extra ident page table for whole kernel range Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 04/12] x86, 64bit: add support for loading kernel above 512G Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 05/12] x86: Merge early_reserve_initrd for 32bit and 64bit Yinghai Lu
2012-11-21 7:40 ` Pekka Enberg
2012-11-21 7:16 ` [PATCH v3 06/12] x86: add get_ramdisk_image/size Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 07/12] x86, boot: add get_cmd_line_ptr() Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 08/12] x86, boot: Don't check if cmd_line_ptr is accessible in misc/decompressor() Yinghai Lu
2012-11-21 17:21 ` H. Peter Anvin
2012-11-21 19:18 ` Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 09/12] x86, boot: update cmd_line_ptr to unsigned long Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 10/12] x86: use io_remap to access real_mode_data Yinghai Lu
2012-11-21 7:16 ` [PATCH v3 11/12] x86, boot: add fields to support load bzImage and ramdisk high Yinghai Lu
2012-11-21 17:17 ` H. Peter Anvin [this message]
2012-11-21 18:59 ` Yinghai Lu
2012-11-21 19:18 ` H. Peter Anvin
2012-11-22 5:56 ` Yinghai Lu
[not found] ` <a1ca794a-09d4-4d36-8c8c-67100cb3696e@email.android.com>
2012-11-22 6:47 ` Yinghai Lu
2012-11-22 6:58 ` Yinghai Lu
2012-11-22 15:59 ` H. Peter Anvin
2012-11-22 18:28 ` Yinghai Lu
2012-11-22 18:37 ` H. Peter Anvin
2012-11-22 18:50 ` Yinghai Lu
2012-11-22 18:51 ` H. Peter Anvin
2012-11-22 20:18 ` Yinghai Lu
2012-11-22 20:20 ` H. Peter Anvin
2012-11-22 20:29 ` Yinghai Lu
2012-11-22 20:50 ` H. Peter Anvin
2012-11-22 21:02 ` H. Peter Anvin
2012-11-22 22:13 ` Yinghai Lu
2012-11-24 12:37 ` Eric W. Biederman
2012-11-24 17:32 ` H. Peter Anvin
[not found] ` <CAE9FiQV0Q0fi7TrNjihdsUt0ueT4LLON4o+JEmX6ry9S6AU-ug@mail.gmail.com>
2012-11-24 18:24 ` H. Peter Anvin
2012-11-24 19:50 ` H. Peter Anvin
2012-11-24 21:30 ` Yinghai Lu
2012-11-24 21:38 ` H. Peter Anvin
2012-11-24 22:18 ` Yinghai Lu
2012-11-24 22:32 ` H. Peter Anvin
2012-11-24 23:24 ` Yinghai Lu
2012-11-24 23:50 ` Eric W. Biederman
2012-11-25 0:04 ` H. Peter Anvin
2012-11-25 0:11 ` Yinghai Lu
2012-11-25 5:50 ` Yinghai Lu
2012-11-25 5:52 ` H. Peter Anvin
2012-11-25 6:09 ` Yinghai Lu
2012-11-25 0:04 ` Yinghai Lu
2012-11-25 0:06 ` H. Peter Anvin
2012-11-21 7:16 ` [PATCH v3 12/12] x86: remove 1024g limitation for kexec buffer on 64bit 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=50AD0CA1.8000904@zytor.com \
--to=hpa@zytor.com \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matt.fleming@intel.com \
--cc=mingo@elte.hu \
--cc=rob@landley.net \
--cc=tglx@linutronix.de \
--cc=yinghai@kernel.org \
/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.