From: "Huang, Ying" <ying.huang@intel.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andi Kleen <ak@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
"Eric W. Biederman" <ebiederm@xmission.com>,
Chandramouli Narayanan <mouli@linux.intel.com>,
linux-kernel@vger.kernel.org, Aaron Durbin <adurbin@google.com>
Subject: Re: [PATCH 0/3] x86_64 EFI runtime service support
Date: Tue, 21 Aug 2007 09:44:49 +0800 [thread overview]
Message-ID: <1187660689.20920.27.camel@caritas-dev.intel.com> (raw)
In-Reply-To: <46C9CB89.7020603@zytor.com>
On Mon, 2007-08-20 at 10:12 -0700, H. Peter Anvin wrote:
> Huang, Ying wrote:
> >>
> >> I propose that, in addition to the aforementioned version number and
> >> magic fields, we add a pointer, which should be the last pointer added
> >> that doesn't point into I/O space or reserved memory (i.e. memory that
> >> is off limit anyway for the operating system.)
> >>
> >> This pointer should point to a linked list of suggested form:
> >>
> >> struct setup_data {
> >> u64 next;
> >> u32 type;
> >> u32 len;
> >> u8 data[];
> >> };
> >>
I think the "next" field can be u32 instead of u64. Because the linked
list of struct setup_data is prepared by bootloader, which can control
the memory location.
To facilitate the kernel early mapping, I think the memory location of
"linked list" should be kept to a predefined range (in the real mode
memory area?).
> > So, we need not define a new boot protocol, just extend the standard
> > boot protocol. The version number and magic need not to be added to
> > "zero page". But, at the same time, the bootloader on EFI, LinuxBIOS and
> > kexec must be changed accordingly.
> >
>
> I think this is too radical of a change to be practical. Instead, I
> propose the following:
>
> - "struct boot_params" (the zeropage) is kept as a legacy interface.
> %esi will continue to point to it on entry to the 32-bit entrypoint
> (presumably that is %rsi on entry to a 64-bit entrypoint?)
>
> - We add a magic number and a pointer chain to the zeropage. The
> presence of the magic number indicates that:
>
> - Any unused fields in the zeropage is zero;
> - The pointer chain is valid (unless zero);
> - The old "HD info" fields (and possibly the EDD fields)
> can be recycled.
Previously, I think the "zero page" is not external formally, so we can
ignore the user. But it is used by some bootloaders. So your proposal
may be better, especially for these bootloaders.
I think something others need to be done:
- Increase the version number of standard boot protocol.
- Add the contents of zero page into standard boot protocol document as
a optional part for 32-bit entry (and 64-bit entry?).
- Make 32-bit (64-bit?) boot protocol formal in standard boot protocol
document.
> What a post-upgrade kernel should do upon encountering an old structure
> (sans magic) is to zero out any fields that wasn't present in the legacy
> structure definition, including the pointer chain, then it can use it as-is.
As for the magic number in zero page, do you think it should be used
only by 16-bit kernel setup code?
> We should avoid adding fields to the zero_page after that, unless
> necessary for backwards compatibility reasons. In general, new data
> items should be added as pointer capabilities.
Yes.
> Compare this to the legacy PCI header vs. PCI capabilities.
Best Regards,
Huang Ying
next prev parent reply other threads:[~2007-08-21 1:44 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-13 7:30 [PATCH 0/3] x86_64 EFI runtime service support Huang, Ying
2007-08-15 22:42 ` Andrew Morton
2007-08-16 7:51 ` Huang, Ying
2007-08-16 14:11 ` Andi Kleen
2007-08-17 1:25 ` Huang, Ying
2007-08-17 16:11 ` H. Peter Anvin
2007-08-20 3:20 ` Huang, Ying
2007-08-20 17:12 ` H. Peter Anvin
2007-08-21 1:44 ` Huang, Ying [this message]
2007-08-21 3:54 ` H. Peter Anvin
2007-08-21 4:53 ` Huang, Ying
2007-08-21 11:33 ` Andi Kleen
2007-08-21 10:41 ` H. Peter Anvin
2007-08-21 11:45 ` Andi Kleen
2007-08-21 23:58 ` Yinghai Lu
2007-08-22 1:22 ` Andi Kleen
2007-08-22 6:43 ` Yinghai Lu
2007-08-22 11:11 ` Andi Kleen
2007-08-22 14:23 ` huang ying
2007-08-22 16:28 ` H. Peter Anvin
2007-08-23 2:21 ` Huang, Ying
2007-08-23 2:46 ` H. Peter Anvin
2007-08-22 14:41 ` Eric W. Biederman
2007-08-22 16:44 ` H. Peter Anvin
2007-08-22 7:20 ` Yinghai Lu
2007-08-15 23:16 ` Andrew Morton
2007-08-15 23:22 ` H. Peter Anvin
2007-08-16 8:00 ` Huang, Ying
2007-08-16 16:09 ` H. Peter Anvin
2007-08-19 22:27 ` Eric W. Biederman
2007-08-19 22:25 ` Eric W. Biederman
2007-08-19 23:46 ` Yinghai Lu
2007-08-20 17:05 ` H. Peter Anvin
2007-08-20 17:20 ` San Mehat
2007-08-20 20:13 ` Matthew Garrett
2007-08-20 5:14 ` Huang, Ying
2007-08-16 7:52 ` Huang, Ying
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=1187660689.20920.27.camel@caritas-dev.intel.com \
--to=ying.huang@intel.com \
--cc=adurbin@google.com \
--cc=ak@suse.de \
--cc=akpm@linux-foundation.org \
--cc=ebiederm@xmission.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mouli@linux.intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox