From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Anthony PERARD <anthony.perard@citrix.com>, xen-devel@lists.xen.org
Subject: Re: [RFC PATCH 0/5] Load BIOS via toolstack instead of been embedded in hvmloader.
Date: Wed, 16 Sep 2015 19:56:44 +0100 [thread overview]
Message-ID: <55F9BB6C.4020404@citrix.com> (raw)
In-Reply-To: <1442423987-14956-1-git-send-email-anthony.perard@citrix.com>
On 16/09/2015 18:19, Anthony PERARD wrote:
> Hi all,
>
> I've start to look at loading the BIOS and the ACPI tables via the
> toolstack instead of having them embedded in the hvmloader binary. This is
> done by using the same mechanics as the one used to load extra ACPI tables
> or SMBIOS.
>
> - libxl load the blob into it's memory and add it to
> struct xc_hvm_build_args.bios_module
> - libxc load the blob into the guest memory and give back the guest address
> of the blob.
> - libxl store the location of the blob (and it's lenght) into xenstore, in
> /local/domain/$domid/hvmloader/$blob_name/{address,length} ($blob_name
> would be "bios" or "acpi_table"; there is already "acpi" and "smbios"
> that exist)
> - hvmloader read the addresses from xenstore and put the blob at the right
> place.
>
> How this is looking?
>
> Right now, this patch series would only work for SeaBIOS.
I highly recommend that you build on top of Rogers DMlite series, which
already offers a multiboot-style way of adding extra modules to HVM
guests. (That was the way I was planning to do this in some copious
free time).
In particular, storing the address/length in xenstore is conceptually
incorrect as the information turns stale as soon as hvmloader starts
running.
* Modify hvmloader to have a DMLite entry, which gives it a command line
and module list
* Modify libxc to be able to take an arbitrary quantity of modules,
rather than the currently limit of 1
Once the above work times are in place, the actual splitting-up of
hvmloader can occur.
I recommend a command line way of telling hvmloader which module is
what, such as a legacy bios image, (other firmware image?), supplemental
acpi table, supplemental smbios table, nvram blob? (This last one will
require a bit of extra work so the toolstack can pull the blob back out
of the guest on destruction)
~Andrew
next prev parent reply other threads:[~2015-09-16 18:56 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-16 17:19 [RFC PATCH 0/5] Load BIOS via toolstack instead of been embedded in hvmloader Anthony PERARD
2015-09-16 17:19 ` [RFC PATCH 1/5] libxc: Load BIOS and ACPI table into guest memory Anthony PERARD
2015-09-16 17:19 ` [RFC PATCH 2/5] libxl: Load guest BIOS and ACPI table from file Anthony PERARD
2015-09-16 17:19 ` [RFC PATCH 3/5] hvmloader: Load BIOS from where libxc left it Anthony PERARD
2015-09-16 17:19 ` [RFC PATCH 4/5] hvmloader: Load ACPI table from here " Anthony PERARD
2015-09-16 17:19 ` [RFC PATCH 5/5] hvmloader: Keep BIOS and ACPI blob in separated files Anthony PERARD
2015-09-16 18:56 ` Andrew Cooper [this message]
2015-09-17 9:49 ` [RFC PATCH 0/5] Load BIOS via toolstack instead of been embedded in hvmloader Anthony PERARD
2015-09-25 15:37 ` Ian Campbell
2015-09-25 15:45 ` Anthony PERARD
2015-09-25 16:28 ` 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=55F9BB6C.4020404@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=anthony.perard@citrix.com \
--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.