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

Re: [Xen-devel] [PATCH for-xen-4.5 v4 00/18] xen: Break multiboot (v1) dependency and add multiboot2 support

On Thu, Oct 23, 2014 at 04:26:22PM +0100, Jan Beulich wrote:
> >>> On 23.10.14 at 16:57, <daniel.kiper@xxxxxxxxxx> wrote:
> > multiboot1 and multiboot2 are completely different things. If we do what
> > you suggest then at least we will be forced to complicate assembly code
> > parsing cmdline in xen/arch/x86/boot/cmdline.S. We could also stay with
> > multiboot1 stuff but then we will be forced to put all stuff which we are
> > able to put in multiboot1. However, we are not able to put at least
> > and EFI_SYSTEM_TABLE from multiboot2 (which are a must on EFI; maybe we
> > want other data from multiboot2 protocol too) in multiboot1 struct because
> > there is not designed place for that. It means that we must add another
> > global variables which will appear from nowhere in Xen code (as usual
> > in case of global variables).
> There's nothing wrong with adding global variables, even less so
> when they're __initdata.
> > I understand that gains are not clearly visible at this stage of development
> > because there is lack of relevant multiboot2 + EFI code on top of this
> > patches.
> > However, I hope that above explanation and earlier ones will clear some
> > of your doubts.
> >
> > Guys, if you wish I can do what Jan suggest. However, personally I think
> > that it will complicate things more which are already complicated enough.
> > I can understand that Xen was tied to multiboot1 protocol at early stage of
> > development. Even I am able to understand that this thing was not changed
> > during introduction of EFI code. However, I think that right know, when we
> > introduce third boot protocol, mutliboot2, there is not longer any excuse to
> > have it build in early and in main Xen code especially. So, IMO we should
> > do all cleanups and fixes first and then put all multiboot2 + EFI stuff
> > on top of it. If we reverse the order then I do not believe that cleanup
> > will be done in foreseeable future.
> Repeating the same arguments over and over won't make them any
> better. And if MB1, MB2, and EFI are (reasonably) separate rather than
> all intermixed, maybe that's going to be the more maintainable state in
> the end anyway? We just can't tell without the MB2 pieces (separately)
> in place yet.

OK, AIUI you suggest that I should parse all multiboot2 data in reloc.c
and put all things in multiboot1 struct which lives on trampoline. Then
I should add global variables for EFI_HANDLE and EFI_SYSTEM_TABLE somewhere
in x86_64.S and initialize them from reloc.c. After that I should call
efi_start() immediately after reloc() if Xen runs on EFI platform.
Am I right?


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.