From: Ian Campbell <ian.campbell@citrix.com>
To: Roger Pau Monne <roger.pau@citrix.com>, xen-devel@lists.xenproject.org
Cc: Tim Deegan <tim@xen.org>, Ian Jackson <ian.jackson@eu.citrix.com>,
Jan Beulich <jbeulich@suse.com>,
Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH] hvmlite: document the BSP/AP boot ABI
Date: Wed, 16 Dec 2015 11:04:39 +0000 [thread overview]
Message-ID: <1450263879.4053.30.camel@citrix.com> (raw)
In-Reply-To: <1450200445-29402-1-git-send-email-roger.pau@citrix.com>
On Tue, 2015-12-15 at 18:27 +0100, Roger Pau Monne wrote:
> The discussion in [1] lead to an agreement of the missing pieces in PVH
> (or HVM without a device-model) in order to progress with it's
> implementation.
>
> One of the missing pieces is a new boot ABI, that replaces the PV boot
> ABI. The aim of this new boot ABI is to remove the limitations of the
> PV boot ABI, that are no longer present when using auto-translated
> guests. The new boot protocol should allow to use the same entry point
> for both 32bit and 64bit guests, and let the guest choose it's bitness
> at run time without the domain builder knowing in advance.
>
> This patch introduces a new document called hvmlite.markdown, with the
> intention of merging it into pvh.markdown once the HVMlite implementation
> has feature parity with PVH and the old PVH ABI is replaced with the
> HVMlite one.
>
> [1] http://lists.xen.org/archives/html/xen-devel/2015-06/msg00258.html
>
> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
> ---
> Cc: Ian Campbell <ian.campbell@citrix.com>
> Cc: Ian Jackson <ian.jackson@eu.citrix.com>
> Cc: Jan Beulich <jbeulich@suse.com>
> Cc: Tim Deegan <tim@xen.org>
> Cc: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
> docs/misc/hvmlite.markdown | 82
> ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 82 insertions(+)
> create mode 100644 docs/misc/hvmlite.markdown
>
> diff --git a/docs/misc/hvmlite.markdown b/docs/misc/hvmlite.markdown
> new file mode 100644
> index 0000000..00ae423
> --- /dev/null
> +++ b/docs/misc/hvmlite.markdown
> @@ -0,0 +1,82 @@
> +**NOTE**: this document will be merged into `pvh.markdown` once PVH is
> replaced
> +with the HVMlite implementation.
> +
> +# HVM direct boot ABI #
> +
> +Since the Xen entry point into the kernel can be different from the
> +native entry point, a `ELFNOTE` is used in order to tell the domain
> +builder how to load and jump into the kernel entry point:
> +
> + ELFNOTE(Xen, XEN_ELFNOTE_PHYS32_ENTRY, .long, xen_start32)
> +
> +The presence of the `XEN_ELFNOTE_PHYS32_ENTRY` note indicates that the
> +kernel supports the boot ABI described in this document.
> +
> +The domain builder will load the kernel into the guest memory space and
> +jump into the entry point defined at `XEN_ELFNOTE_PHYS32_ENTRY` with the
> +following machine state:
> +
> + * `ebx`: contains the physical memory address where the loader has
> placed
> + the boot start info structure.
> +
> + * `cr0`: bit 0 (PE) will be set. All the other writeable bits are
> cleared.
> +
> + * `cr4`: all bits are cleared.
> +
> + * `cs`: must be a 32-bit read/execute code segment with a base of ‘0’
> + and a limit of ‘0xFFFFFFFF’. The selector value is unspecified.
> +
> + * `ds`, `es`: must be a 32-bit read/write data segment with a base of
> + ‘0’ and a limit of ‘0xFFFFFFFF’. The selector values are all
> unspecified.
> +
> + * `tr`: must be a 32-bit TSS (active) with a base of '0' and a limit of
> '0x67'.
> +
> + * `eflags`: bit 17 (VM) must be cleared. Bit 9 (IF) must be cleared.
> + Bit 8 (TF) must be cleared. Other bits are all unspecified.
This list uses a mixture of "will be" and "must be", i.e. flips between
producer's and consumer's point of view.
I have no opinion on the technical content. Might be nice to prepend x86/
to the "HVM direct boot ABI" title, but meh.
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
prev parent reply other threads:[~2015-12-16 11:05 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-15 17:27 [PATCH] hvmlite: document the BSP/AP boot ABI Roger Pau Monne
2015-12-16 11:04 ` Ian Campbell [this message]
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=1450263879.4053.30.camel@citrix.com \
--to=ian.campbell@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=roger.pau@citrix.com \
--cc=tim@xen.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.