grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [MULTIBOOT2 SPEC PATCH V2] multiboot2: Add module load and preferenc


From: Chen, Zide
Subject: RE: [MULTIBOOT2 SPEC PATCH V2] multiboot2: Add module load and preference tag
Date: Wed, 13 May 2020 22:46:33 +0000

Hi Daniel,

> -----Original Message-----
> From: Daniel Kiper <address@hidden>
> Sent: Wednesday, May 13, 2020 8:54 AM
> To: Chen, Zide <address@hidden>
> Cc: address@hidden
> Subject: Re: [MULTIBOOT2 SPEC PATCH V2] multiboot2: Add module load and 
> preference tag
> 
> > diff --git a/doc/multiboot.texi b/doc/multiboot.texi
> > index df8a0d056e76..758ef7fd1e2d 100644
> > --- a/doc/multiboot.texi
> > +++ b/doc/multiboot.texi
> > @@ -356,6 +356,7 @@ executable header.
> >  * Module alignment tag::
> >  * EFI boot services tag::
> >  * Relocatable header tag::
> > +* Module load preferences tag::
> 
> Please bump spec version to 2.1.

OK, will do it, also will add 2020 to the copyright in configure.ac.

 
> >  @end menu
> >
> > @@ -730,6 +731,46 @@ Boot loader should follow it. @samp{0} means none, 
> > @samp{1} means
> >  load image at lowest possible address but not lower than min_addr
> >  and @samp{2} means load image at highest possible address but not
> >  higher than max_addr.
> > +
> > +@node Module load preferences tag
> > +@subsection Module load preferences tag
> > +
> > +@example
> > +@group
> > +        +-------------------+
> > +u16     | type = 11         |
> > +u16     | flags             |
> > +u32     | size = 20         |
> > +u32     | min_addr          |
> > +u32     | max_addr          |
> 
> I have an itching to add "align" member here like in the relocatable
> header tag. I can imagine that some kernels may want aligned modules. If
> you do that then we have to resolve conflict with the module alignment
> tag. I think if both tags are in the image header then the bootloader
> should use max(align, PAGE_SIZE). This behavior should be described in
> one way or another next to both tags.

Yes, I thought about the align member.
Sure, I can add the it to the spec. Since we give user the flexibility to 
specify alignment,
why we would overwrite user's choice to force it to minimum PAGE_SIZE aligned?
How about pick the maximum alignment of the two tags?

But in GRUB's implementation, since GRUB ignores the module alignment tag, the 
behavior 
Could be these:

If align is zero in this tag: module alignment is PAGE_SIZE (

If align is none-zero, Grub will use whatever value it is to load modules.
 
> > +u32     | preference        |
> > +        +-------------------+
> > +@end group
> > +@end example
> > +
> 
> Please describe shortly what this tag does. You can find good example in
> relocatable header tag.

OK.

> > +This tag is independent to the relocatable header tag. All of the
> 
> This sentence should go to the end of the tag description.

OK.

 
> > +address fields in this tag are physical addresses.
> > +
> > +The meaning of each field is as follows:
> > +
> > +@table @code
> > +@item min_addr
> > +Lowest possible physical address at which any modules should be
> > +loaded. The bootloader cannot load any part of any modules below
> > +this address.
> > +
> > +@item max_addr
> > +Highest possible physical address at which any loaded modules should
> > +end. The bootloader cannot load any part of any modules above this
> > +address.
> > +
> > +@item preference
> > +It contains load address placement suggestion for boot loader.
> > +Boot loader should follow it. @samp{0} means load modules not lower
> > +than min_addr and not higher than max_addr, but no preference on either
> > +lower or higher address. @samp{1} means load modules at lowest possible
> > +address but not lower than min_addr. @samp{2} means load modules at
> > +highest possible address but not higher than max_addr.
> 
> Please copy preference description from relocatable header tag and
> replace "image" with "module".

Will do.

Best Regards,
Zide

> Daniel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]