From: Anthony PERARD <anthony.perard@citrix.com>
To: xen-devel@lists.xen.org
Cc: Wei Liu <wei.liu2@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Jan Beulich <jbeulich@suse.com>,
Anthony PERARD <anthony.perard@citrix.com>
Subject: [PATCH v3 00/16] Load BIOS via toolstack instead of been embedded in hvmloader.
Date: Thu, 25 Feb 2016 14:55:58 +0000 [thread overview]
Message-ID: <1456412174-20162-1-git-send-email-anthony.perard@citrix.com> (raw)
Hi all,
Many changes in V3:
no more cmdline, but use each modules' cmdline to provide a name for it.
in libxc:
- use xc_dom_alloc_segment() to load modules. see patch #1.
- avoid duplication of code between PVHv2 and hvmloader for the
initialisation of hvm_start_info.
in xl/libxl:
- only one new option, bios_firmware. acpi_firmware is reused, see
patch #6.
in hvmloader:
- handle rombios as separate case.
more detail in each patches.
I've look at loading the BIOS and the ACPI tables via the toolstack instead
of having them embedded in the hvmloader binary. After this patch series,
hvmloader compilation would be indenpendant from SeaBIOS and OVMF
compilation.
Here is a general view of the few step to load the BIOS:
- libxl load the BIOS 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 fill the struct
hvm_start_info and store a name for each module into the module cmdline.
- hvmloader read the addresses from the hvm_start_info, find out which
module to load and copy the blob to the right place.
A git tree can be found here:
git://xenbits.xen.org/people/aperard/xen-unstable.git
tag: hvmloader-with-separated-bios-v3
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Regards,
Anthony PERARD (16):
libxc: Rework extra module initialisation
libxc: Load BIOS and ACPI table into guest memory
configure: #define SEABIOS_PATH and OVMF_PATH
firmware/makefile: install BIOS and ACPI blob ...
libxl: Load guest BIOS from file
libxl: Load guest ACPI table from file
hvmloader: Grab the hvm_start_info pointer
hvmloader: Locate the BIOS blob
hvmloader: Check modules whereabouts
hvmloader: Load SeaBIOS from hvm_start_info modules
hvmloader: Load OVMF from modules
hvmloader: Specific bios_load function required
hvmloader: Load ACPI tables from hvm_start_info module
hvmloader: Compile out the qemu-xen ACPI tables
hvmloader: Always build-in SeaBIOS and OVMF loader
hvmloader: do not depend on SEABIOS_PATH or OVMF_PATH ...
.gitignore | 1 +
tools/configure.ac | 12 ++-
tools/firmware/Makefile | 15 +++-
tools/firmware/hvmloader/Makefile | 39 +--------
tools/firmware/hvmloader/acpi/Makefile | 9 ++-
tools/firmware/hvmloader/config.h | 4 +-
tools/firmware/hvmloader/hvm_start_info.h | 32 ++++++++
tools/firmware/hvmloader/hvmloader.c | 85 ++++++++++++++++---
tools/firmware/hvmloader/ovmf.c | 39 ++++-----
tools/firmware/hvmloader/rombios.c | 6 +-
tools/firmware/hvmloader/seabios.c | 33 ++++----
tools/firmware/hvmloader/util.h | 2 +
tools/libxc/include/xc_dom.h | 4 +
tools/libxc/xc_dom_hvmloader.c | 128 ++++++++---------------------
tools/libxc/xc_dom_x86.c | 130 ++++++++++++++++++++----------
tools/libxl/libxl.h | 8 ++
tools/libxl/libxl_dom.c | 83 +++++++++++++++++++
tools/libxl/libxl_internal.h | 2 +
tools/libxl/libxl_paths.c | 10 +++
tools/libxl/libxl_types.idl | 1 +
tools/libxl/xl_cmdimpl.c | 11 ++-
21 files changed, 415 insertions(+), 239 deletions(-)
create mode 100644 tools/firmware/hvmloader/hvm_start_info.h
--
Anthony PERARD
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next reply other threads:[~2016-02-25 14:55 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-25 14:55 Anthony PERARD [this message]
2016-02-25 14:55 ` [PATCH v3 01/16] libxc: Rework extra module initialisation Anthony PERARD
2016-03-01 11:51 ` Wei Liu
2016-03-03 16:27 ` Anthony PERARD
2016-02-25 14:56 ` [PATCH v3 02/16] libxc: Load BIOS and ACPI table into guest memory Anthony PERARD
2016-03-01 11:51 ` Wei Liu
2016-03-03 16:57 ` Anthony PERARD
2016-02-25 14:56 ` [PATCH v3 03/16] configure: #define SEABIOS_PATH and OVMF_PATH Anthony PERARD
2016-03-01 11:51 ` Wei Liu
2016-03-03 17:03 ` Anthony PERARD
2016-03-08 15:55 ` Wei Liu
2016-02-25 14:56 ` [PATCH v3 04/16] firmware/makefile: install BIOS and ACPI blob Anthony PERARD
2016-02-29 16:31 ` Jan Beulich
2016-03-03 15:44 ` Anthony PERARD
2016-02-25 14:56 ` [PATCH v3 05/16] libxl: Load guest BIOS from file Anthony PERARD
2016-03-01 11:51 ` Wei Liu
2016-03-03 17:16 ` Anthony PERARD
2016-02-25 14:56 ` [PATCH v3 06/16] libxl: Load guest ACPI table " Anthony PERARD
2016-03-01 11:51 ` Wei Liu
2016-03-03 17:12 ` Anthony PERARD
2016-03-08 15:55 ` Wei Liu
2016-02-25 14:56 ` [PATCH v3 07/16] hvmloader: Grab the hvm_start_info pointer Anthony PERARD
2016-02-29 16:37 ` Jan Beulich
2016-02-29 16:48 ` Jan Beulich
2016-02-25 14:56 ` [PATCH v3 08/16] hvmloader: Locate the BIOS blob Anthony PERARD
2016-02-29 16:56 ` Jan Beulich
2016-03-03 16:21 ` Anthony PERARD
2016-02-25 14:56 ` [PATCH v3 09/16] hvmloader: Check modules whereabouts Anthony PERARD
2016-02-29 16:58 ` Jan Beulich
2016-03-03 16:00 ` Anthony PERARD
2016-03-03 16:18 ` Jan Beulich
2016-03-03 16:34 ` Andrew Cooper
2016-02-25 14:56 ` [PATCH v3 10/16] hvmloader: Load SeaBIOS from hvm_start_info modules Anthony PERARD
2016-02-29 17:02 ` Jan Beulich
2016-03-03 16:15 ` Anthony PERARD
2016-02-25 14:56 ` [PATCH v3 11/16] hvmloader: Load OVMF from modules Anthony PERARD
2016-03-01 16:03 ` Jan Beulich
2016-03-03 17:39 ` Anthony PERARD
2016-03-05 18:05 ` Wei Liu
2016-02-25 14:56 ` [PATCH v3 12/16] hvmloader: Specific bios_load function required Anthony PERARD
2016-03-01 16:07 ` Jan Beulich
2016-02-25 14:56 ` [PATCH v3 13/16] hvmloader: Load ACPI tables from hvm_start_info module Anthony PERARD
2016-03-01 16:17 ` Jan Beulich
2016-03-03 17:59 ` Anthony PERARD
2016-03-04 8:39 ` Jan Beulich
2016-03-08 11:15 ` Anthony PERARD
2016-02-25 14:56 ` [PATCH v3 14/16] hvmloader: Compile out the qemu-xen ACPI tables Anthony PERARD
2016-03-01 16:19 ` Jan Beulich
2016-02-25 14:56 ` [PATCH v3 15/16] hvmloader: Always build-in SeaBIOS and OVMF loader Anthony PERARD
2016-03-01 16:20 ` Jan Beulich
2016-02-25 14:56 ` [PATCH v3 16/16] hvmloader: do not depend on SEABIOS_PATH or OVMF_PATH Anthony PERARD
2016-03-01 16:24 ` Jan Beulich
2016-03-03 11:38 ` Wei Liu
2016-02-25 16:16 ` [PATCH v3 00/16] Load BIOS via toolstack instead of been embedded in hvmloader Boris Ostrovsky
2016-02-25 16:43 ` Anthony PERARD
2016-03-03 18:03 ` Anthony PERARD
2016-03-04 10:57 ` Andrew Cooper
2016-03-08 11:21 ` Anthony PERARD
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=1456412174-20162-1-git-send-email-anthony.perard@citrix.com \
--to=anthony.perard@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@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.