From: "Roger Pau Monné" <roger.pau@citrix.com> To: Ross Lagerwall <ross.lagerwall@citrix.com> Cc: grub-devel@gnu.org, xen-devel@lists.xenproject.org, Andrew Cooper <andrew.cooper3@citrix.com>, Daniel Kiper <daniel.kiper@oracle.com> Subject: Re: [PATCH 2/7] multiboot2: Allow 64-bit entry tags Date: Tue, 19 Mar 2024 11:07:18 +0100 [thread overview] Message-ID: <Zflj1gEwdeAU45US@macbook> (raw) In-Reply-To: <20240313150748.791236-3-ross.lagerwall@citrix.com> On Wed, Mar 13, 2024 at 03:07:43PM +0000, Ross Lagerwall wrote: > Binaries may be built with entry points above 4G. While bootloaders may > relocate them below 4G, it should be possible for the binary to specify > those entry points. Therefore, extend the multiboot2 protocol such that > 64 bit addresses are allowed for entry points. The extension is done in > a backwards-compatible way. > > Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com> > --- > doc/multiboot.texi | 32 +++++++++++++++++++------------- > doc/multiboot2.h | 6 +++++- > 2 files changed, 24 insertions(+), 14 deletions(-) > > diff --git a/doc/multiboot.texi b/doc/multiboot.texi > index d12719c744eb..049afab53c1f 100644 > --- a/doc/multiboot.texi > +++ b/doc/multiboot.texi > @@ -522,12 +522,12 @@ header. > > @example > @group > - +-------------------+ > -u16 | type = 3 | > -u16 | flags | > -u32 | size | > -u32 | entry_addr | > - +-------------------+ > + +-------------------+ > +u16 | type = 3 | > +u16 | flags | > +u32 | size | > +u32 / u64 | entry_addr | > + +-------------------+ I might be confused, but this entry point is used in 32bit protected mode, and hence a 64bit value is simply impossible to use according to the protocol in "3.3 I386 machine state". Unless that section is expanded to describe other protocols that use the entry address in a way where 64bits could be meaningful it seems pointless to expand the field. > @end group > @end example > > @@ -538,7 +538,10 @@ The meaning of each is as follows: > > @item entry_addr > The physical address to which the boot loader should jump in order to > -start running the operating system. > +start running the operating system. @samp{entry_addr} may be specified > +either as a @samp{u32} or @samp{u64}. The bootloader should use the > +header size to determine the size of @samp{entry_addr}. > + > @end table > > @subsection EFI i386 entry address tag of Multiboot2 header > @@ -573,12 +576,12 @@ tag of Multiboot2 header are ignored. > > @example > @group > - +-------------------+ > -u16 | type = 9 | > -u16 | flags | > -u32 | size | > -u32 | entry_addr | > - +-------------------+ > + +-------------------+ > +u16 | type = 9 | > +u16 | flags | > +u32 | size | > +u32 / u64 | entry_addr | > + +-------------------+ This does seem sensible. Thanks, Roger.
WARNING: multiple messages have this Message-ID (diff)
From: "Roger Pau Monné via Grub-devel" <grub-devel@gnu.org> To: Ross Lagerwall <ross.lagerwall@citrix.com> Cc: "Roger Pau Monné" <roger.pau@citrix.com>, grub-devel@gnu.org, xen-devel@lists.xenproject.org, "Andrew Cooper" <andrew.cooper3@citrix.com>, "Daniel Kiper" <daniel.kiper@oracle.com> Subject: Re: [PATCH 2/7] multiboot2: Allow 64-bit entry tags Date: Tue, 19 Mar 2024 11:07:18 +0100 [thread overview] Message-ID: <Zflj1gEwdeAU45US@macbook> (raw) In-Reply-To: <20240313150748.791236-3-ross.lagerwall@citrix.com> On Wed, Mar 13, 2024 at 03:07:43PM +0000, Ross Lagerwall wrote: > Binaries may be built with entry points above 4G. While bootloaders may > relocate them below 4G, it should be possible for the binary to specify > those entry points. Therefore, extend the multiboot2 protocol such that > 64 bit addresses are allowed for entry points. The extension is done in > a backwards-compatible way. > > Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com> > --- > doc/multiboot.texi | 32 +++++++++++++++++++------------- > doc/multiboot2.h | 6 +++++- > 2 files changed, 24 insertions(+), 14 deletions(-) > > diff --git a/doc/multiboot.texi b/doc/multiboot.texi > index d12719c744eb..049afab53c1f 100644 > --- a/doc/multiboot.texi > +++ b/doc/multiboot.texi > @@ -522,12 +522,12 @@ header. > > @example > @group > - +-------------------+ > -u16 | type = 3 | > -u16 | flags | > -u32 | size | > -u32 | entry_addr | > - +-------------------+ > + +-------------------+ > +u16 | type = 3 | > +u16 | flags | > +u32 | size | > +u32 / u64 | entry_addr | > + +-------------------+ I might be confused, but this entry point is used in 32bit protected mode, and hence a 64bit value is simply impossible to use according to the protocol in "3.3 I386 machine state". Unless that section is expanded to describe other protocols that use the entry address in a way where 64bits could be meaningful it seems pointless to expand the field. > @end group > @end example > > @@ -538,7 +538,10 @@ The meaning of each is as follows: > > @item entry_addr > The physical address to which the boot loader should jump in order to > -start running the operating system. > +start running the operating system. @samp{entry_addr} may be specified > +either as a @samp{u32} or @samp{u64}. The bootloader should use the > +header size to determine the size of @samp{entry_addr}. > + > @end table > > @subsection EFI i386 entry address tag of Multiboot2 header > @@ -573,12 +576,12 @@ tag of Multiboot2 header are ignored. > > @example > @group > - +-------------------+ > -u16 | type = 9 | > -u16 | flags | > -u32 | size | > -u32 | entry_addr | > - +-------------------+ > + +-------------------+ > +u16 | type = 9 | > +u16 | flags | > +u32 | size | > +u32 / u64 | entry_addr | > + +-------------------+ This does seem sensible. Thanks, Roger. _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel
next prev parent reply other threads:[~2024-03-19 10:07 UTC|newest] Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-03-13 15:07 [PATCH 0/7] GRUB: Supporting Secure Boot of xen.gz Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-13 15:07 ` [PATCH 1/7] multiboot2: Add load type header and support for the PE binary type Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-14 7:24 ` Jan Beulich 2024-03-14 7:24 ` Jan Beulich via Grub-devel 2024-03-14 8:12 ` Damien Zammit via Grub-devel 2024-03-14 8:12 ` Damien Zammit 2024-03-14 8:49 ` Vladimir 'phcoder' Serbinenko 2024-03-14 9:30 ` Ross Lagerwall 2024-03-14 9:30 ` Ross Lagerwall via Grub-devel 2024-03-14 13:37 ` Jan Beulich 2024-03-14 13:37 ` Jan Beulich via Grub-devel 2024-03-14 14:24 ` Ross Lagerwall 2024-03-14 14:24 ` Ross Lagerwall via Grub-devel 2024-03-14 14:33 ` Jan Beulich 2024-03-14 14:33 ` Jan Beulich via Grub-devel 2024-03-19 12:12 ` Roger Pau Monné 2024-03-19 12:12 ` Roger Pau Monné via Grub-devel 2024-03-19 13:18 ` Roger Pau Monné 2024-03-19 13:18 ` Roger Pau Monné via Grub-devel 2024-03-19 14:46 ` Ross Lagerwall 2024-03-19 14:46 ` Ross Lagerwall via Grub-devel 2024-03-20 11:04 ` Roger Pau Monné 2024-03-20 11:04 ` Roger Pau Monné via Grub-devel 2024-03-13 15:07 ` [PATCH 2/7] multiboot2: Allow 64-bit entry tags Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-19 10:07 ` Roger Pau Monné [this message] 2024-03-19 10:07 ` Roger Pau Monné via Grub-devel 2024-03-28 15:05 ` Ross Lagerwall 2024-03-28 15:05 ` Ross Lagerwall via Grub-devel 2024-03-28 15:41 ` Roger Pau Monné 2024-03-28 15:41 ` Roger Pau Monné via Grub-devel 2024-03-13 15:07 ` [PATCH 3/7] multiboot2: Add support for the load type header tag Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-15 7:30 ` Vladimir 'phcoder' Serbinenko 2024-03-15 7:30 ` Vladimir 'phcoder' Serbinenko 2024-03-28 14:58 ` Ross Lagerwall 2024-03-28 14:58 ` Ross Lagerwall via Grub-devel 2024-03-13 15:07 ` [PATCH 4/7] multiboot2: Add PE load support Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-13 15:07 ` [PATCH 5/7] multiboot2: Add support for 64-bit entry addresses Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-13 15:07 ` [PATCH 6/7] efi: Allow loading multiboot modules without verification Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-13 15:07 ` [PATCH 7/7] verifiers: Verify after decompression Ross Lagerwall 2024-03-13 15:07 ` Ross Lagerwall via Grub-devel 2024-03-15 3:50 ` Michael Chang 2024-03-15 3:50 ` Michael Chang via Grub-devel 2024-03-15 7:25 ` Vladimir 'phcoder' Serbinenko 2024-03-28 14:55 ` Ross Lagerwall via Grub-devel
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=Zflj1gEwdeAU45US@macbook \ --to=roger.pau@citrix.com \ --cc=andrew.cooper3@citrix.com \ --cc=daniel.kiper@oracle.com \ --cc=grub-devel@gnu.org \ --cc=ross.lagerwall@citrix.com \ --cc=xen-devel@lists.xenproject.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: linkBe 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.