From: Don Slutz <dslutz@verizon.com>
To: Ian Campbell <ijc@hellion.org.uk>
Cc: 759018@bugs.debian.org, Ian Jackson <Ian.Jackson@eu.citrix.com>,
Colin Watson <cjwatson@debian.org>,
xen-devel@lists.xen.org
Subject: Re: [PATCH] docs: Introduce specification for pv bootloader chainloading paths/formats.
Date: Tue, 26 Aug 2014 17:45:28 -0400 [thread overview]
Message-ID: <53FCFFF8.3090704@terremark.com> (raw)
In-Reply-To: <1409078818-4034-1-git-send-email-ijc@hellion.org.uk>
On 08/26/14 14:46, Ian Campbell wrote:
> In order to support pvgrub (or other bootloader) from dom0 chainloading a
> pvgrub (or other) from within the domU filesystem we need a standard for where
> the stage 1 bootloader should look and what it should expect to find there.
>
> Add a document along those lines.
Looks good to me, so
Reviewed-by: Don Slutz <dslutz@verizon.com>
-Don Slutz
> Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
> Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
> Cc: Colin Watson <cjwatson@debian.org>
> Cc: 759018@bugs.debian.org
> ---
> docs/misc/xenpv-bootloader.markdown | 58 +++++++++++++++++++++++++++++++++++++
> 1 file changed, 58 insertions(+)
> create mode 100644 docs/misc/xenpv-bootloader.markdown
>
> diff --git a/docs/misc/xenpv-bootloader.markdown b/docs/misc/xenpv-bootloader.markdown
> new file mode 100644
> index 0000000..a5a0665
> --- /dev/null
> +++ b/docs/misc/xenpv-bootloader.markdown
> @@ -0,0 +1,58 @@
> +# Xen PV Bootloader Protocol
> +
> +## Introduction
> +
> +One method for booting a Xen PV guest is to use a PV bootloader, that
> +is, a bootloader which is itself a PV kernel but which behaves as a
> +bootloader (examples include the pvgrub-legacy and grub2 targeting
> +Xen).
> +
> +In many cases the user wishes to manage this PV bootloader from within
> +the guest, and therefore wishes to chainload something from the guest
> +filesystem, most likely via a stage 1 PV bootloader provided by dom0.
> +
> +The purpose of this document is to define the paths within the guest
> +filesystem where a stage 1 bootloader should look for the in-guest PV
> +bootloader to load and the protocol/format expected from the
> +to-be-chainloaded bootloader.
> +
> +## Protocol
> +
> +### x86
> +
> +The bootloader binary should be an ELF file of the appropriate type
> +(32- or 64-bit). It should contain the standard Xen ELF notes allowing
> +it to be loaded by the Xen toolstack domain builder (TBD: Reference).
> +
> +### ARM
> +
> +TBD
> +
> +## Paths
> +
> +The second stage bootloader should be installed into the guest filesystem as:
> +
> + * `/boot/xen/pvboot-<ARCH>.elf`
> +
> +Where `<ARCH>` is the first element of the GNU triplet e.g. one of:
> +
> + * i386 (nb only i386, not i686 etc), corresponding to the Xen x86\_32(p) arch;
> + * x86\_64, corresponding to the Xen x86\_64 arch;
> + * arm, corresponding to the Xen arm32 arch;
> + * aarch64 corresponding to the Xen arm64 arch;
> +
> +It is allowable for `/boot` to be a separate filesystem from `/` and
> +therefore stage 1 bootloaders should search
> +`/boot/xen/pvboot-<ARCH>.elf` and `/xen/pvboot-<ARCH>.elf` (in that
> +order). The `xen` directory should be on the same filesystem as /boot
> +and therefore it is not necessary to search for /pvboot-<ARCH>.elf.
> +
> +On processors which have 32- and 64-bit variants (i.e. x86\_32/x86\_64
> +or arm32/arm64) it is not in general possible under Xen for a
> +bootloader to boot a kernel of a different width from itself, and this
> +extends to chainloading from a stage one. Therefore it is permissible
> +to have both `/boot/xen/pvboot-i386.elf` and
> +`/boot/xen/pvboot-x86\_64.elf` present in a guest to be used by the
> +appropriate stage 1 (e.g. for systems with 32-bit userspace and an
> +optional 64-bit kernel).
> +
next prev parent reply other threads:[~2014-08-26 21:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-26 18:46 [PATCH] docs: Introduce specification for pv bootloader chainloading paths/formats Ian Campbell
2014-08-26 21:45 ` Don Slutz [this message]
2014-08-26 23:02 ` Colin Watson
2014-08-26 23:16 ` Ian Campbell
2014-08-29 0:44 ` Ian Campbell
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=53FCFFF8.3090704@terremark.com \
--to=dslutz@verizon.com \
--cc=759018@bugs.debian.org \
--cc=Ian.Jackson@eu.citrix.com \
--cc=cjwatson@debian.org \
--cc=ijc@hellion.org.uk \
--cc=xen-devel@lists.xen.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.