All of lore.kernel.org
 help / color / mirror / Atom feed
From: Doug Goldstein <cardoe@cardoe.com>
To: Daniel Kiper <daniel.kiper@oracle.com>
Cc: jgross@suse.com, sstabellini@kernel.org,
	andrew.cooper3@citrix.com, pgnet.dev@gmail.com,
	ning.sun@intel.com, julien.grall@arm.com, jbeulich@suse.com,
	xen-devel@lists.xenproject.org, qiaowei.ren@intel.com,
	gang.wei@intel.com, fu.wei@linaro.org
Subject: Re: [PATCH v11 07/13] x86: add multiboot2 protocol support for EFI platforms
Date: Thu, 12 Jan 2017 13:46:41 -0600	[thread overview]
Message-ID: <adb29af4-c381-9c47-0476-9cd6212299a0@cardoe.com> (raw)
In-Reply-To: <20170112193037.GI32675@olila.local.net-space.pl>


[-- Attachment #1.1.1: Type: text/plain, Size: 2897 bytes --]

On 1/12/17 1:30 PM, Daniel Kiper wrote:
> On Thu, Jan 12, 2017 at 09:44:59AM -0600, Doug Goldstein wrote:

> 
>> view there's no reason for adding MB2 support for BIOS since it provides
>> no advantage over MB1 when booting from the BIOS. Now MB2 solves a
> 
> From your point of view maybe it does not. However, from user point of view it may.
> If you have support for MB2 on legacy BIOS and EFI platforms then you can boot Xen
> on both platforms without changing anything in boot config files. Otherwise you have
> to prepare separate configuration for different platforms.

Neither Grub nor iPXE require different configs for MB1 vs MB2 so I'm
not seeing the validity of this logic.

> 
>> problem with booting over EFI vs MB1 so they'll be willing to take a
>> change there. I'll also disagree that BIOS is easier than EFI since with
>> EFI its just load the ELF into memory and set a few pointers in tags.
>> With BIOS it requires me to build up the memory map into a MB2 structure.
> 
> Xen uses only these tags on legacy BIOS platforms: MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO
> (well, nice to have but it can be also not provided), MULTIBOOT2_TAG_TYPE_MMAP (same
> as MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO), MULTIBOOT2_TAG_TYPE_BOOT_LOADER_NAME
> (same as MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO) ,MULTIBOOT2_TAG_TYPE_CMDLINE,
> MULTIBOOT2_TAG_TYPE_MODULE. I do not mention MULTIBOOT2_TAG_TYPE_END which
> is obvious. So, if you are real hardcore minimalist then you have to provide
> MULTIBOOT2_TAG_TYPE_CMDLINE and MULTIBOOT2_TAG_TYPE_MODULE. All of them
> are provided also on EFI. So, I do not see any reason to not provide MB2
> for legacy BIOS. And I do not think that it is very difficult to provide
> all optional tags mentioned above.

I don't understand what you're attempting to convey here. You've listed
out a number of tags that I mentioned in my message that I don't have to
implement for EFI. You've basically reinforced my point that its easier
to implement this for EFI than BIOS. MULTIBOOT2_TAG_TYPE_BASIC_MEMINFO
and MULTIBOOT2_TAG_TYPE_MMAP are unused by Xen on EFI. It gets this info
from a call to GetMemoryMap(). You actually reminded me of another bug.
Calling ExitBootServices() on Grub and letting it pass the memory info
causes Xen to fail to load.

Andrew helped me troubleshoot this and he discovered the fix. You've got
code:

/* Store Xen image load base address in place accessible for 32-bit code. */
mov %r15d,%esi

But if any of the checks under the run_bs: label specifically:
- /* Are EFI boot services available? */
- /* Is EFI SystemTable address provided by boot loader? */
- /* Is EFI ImageHandle address provided by boot loader? */

Will not run the mov instruction and then fail to boot. Its only if any
of these are false will it attempt to use the tags mentioned above as well.

-- 
Doug Goldstein


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 959 bytes --]

[-- Attachment #2: Type: text/plain, Size: 127 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

  reply	other threads:[~2017-01-12 20:53 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-05 22:25 [PATCH v11 00/13] x86: multiboot2 protocol support Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 01/13] x86: add " Daniel Kiper
2017-01-10  1:21   ` Doug Goldstein
2017-01-10  8:38     ` Jan Beulich
2017-01-10 15:19       ` Doug Goldstein
2016-12-05 22:25 ` [PATCH v11 02/13] efi: create efi_enabled() Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 03/13] x86: allow EFI reboot method neither on EFI platforms Daniel Kiper
2016-12-07 13:18   ` Jan Beulich
2016-12-07 17:25     ` Daniel Kiper
2017-01-10  1:24     ` Doug Goldstein
2017-01-10  8:21       ` Jan Beulich
2016-12-05 22:25 ` [PATCH v11 04/13] x86: properly calculate xen ELF end of image address Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 05/13] efi: build xen.gz with EFI code Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 06/13] efi: create new early memory allocator Daniel Kiper
2016-12-06  8:27   ` Jan Beulich
2016-12-09 18:03   ` Julien Grall
2016-12-12 14:27     ` Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 07/13] x86: add multiboot2 protocol support for EFI platforms Daniel Kiper
2016-12-16 13:38   ` Andrew Cooper
2016-12-16 13:50     ` Jan Beulich
2017-01-10  1:37   ` Doug Goldstein
2017-01-10 20:51     ` Doug Goldstein
2017-01-11 19:47       ` Daniel Kiper
2017-01-11 20:20         ` Doug Goldstein
2017-01-12 10:22           ` Jan Beulich
2017-01-12 12:50           ` Daniel Kiper
2017-01-12 15:52             ` Doug Goldstein
2017-01-12 20:28               ` Daniel Kiper
2017-01-12 22:23                 ` Doug Goldstein
2017-01-13  0:04                   ` Daniel Kiper
2017-01-13  0:35                     ` Doug Goldstein
2017-01-13  0:37                     ` Doug Goldstein
2017-01-11 19:08     ` Daniel Kiper
2017-01-11 19:50       ` Doug Goldstein
2017-01-11 20:36         ` Daniel Kiper
2017-01-11 20:31       ` Doug Goldstein
2017-01-12 12:18         ` Daniel Kiper
2017-01-12 15:44           ` Doug Goldstein
2017-01-12 19:30             ` Daniel Kiper
2017-01-12 19:46               ` Doug Goldstein [this message]
2017-01-12 21:45                 ` Daniel Kiper
2017-01-12 22:20                   ` Doug Goldstein
2017-01-12 23:44                     ` Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 08/13] x86/boot: implement early command line parser in C Daniel Kiper
2016-12-07 13:43   ` Jan Beulich
2016-12-07 17:27     ` Daniel Kiper
2016-12-08 23:08       ` Daniel Kiper
2016-12-09  8:19         ` Jan Beulich
2016-12-09 13:32           ` Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 09/13] x86: change default load address from 1 MiB to 2 MiB Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 10/13] x86/setup: use XEN_IMG_OFFSET instead of Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 11/13] x86: make Xen early boot code relocatable Daniel Kiper
2017-01-10  2:05   ` Doug Goldstein
2017-01-11 20:05     ` Daniel Kiper
2017-01-11 20:23       ` Doug Goldstein
2016-12-05 22:25 ` [PATCH v11 12/13] x86/boot: rename sym_phys() to sym_offs() Daniel Kiper
2016-12-05 22:25 ` [PATCH v11 13/13] x86: add multiboot2 protocol support for relocatable images Daniel Kiper
2016-12-16 15:59 ` [PATCH v11 00/13] x86: multiboot2 protocol support Doug Goldstein
2017-01-10 23:12 ` [PATCH 2/??] memory allocation fix Doug Goldstein
2017-01-11 20:46 ` [PATCH v11 00/13] x86: multiboot2 protocol support Daniel Kiper
2017-01-13 15:45   ` Doug Goldstein
2017-01-13 16:18     ` Daniel Kiper
2017-01-12 17:46 ` Doug Goldstein
2017-01-12 18:26   ` Daniel Kiper

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=adb29af4-c381-9c47-0476-9cd6212299a0@cardoe.com \
    --to=cardoe@cardoe.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=daniel.kiper@oracle.com \
    --cc=fu.wei@linaro.org \
    --cc=gang.wei@intel.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=julien.grall@arm.com \
    --cc=ning.sun@intel.com \
    --cc=pgnet.dev@gmail.com \
    --cc=qiaowei.ren@intel.com \
    --cc=sstabellini@kernel.org \
    --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: 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.