Skip to content

xen: add pvh guest support

Juergen Gross grub-devel xen-devel 7 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v7 Latest20 patches 2 repliesIn review
  2. v620 patches 11 repliesSuperseded
  3. v520 patches 23 repliesSuperseded
Earlier versions · 4
VersionPostedPatchesRepliesStatus
v419 patches52 repliesSuperseded
v318 patches4 repliesSuperseded
v218 patches95 repliesSuperseded
v18 patches35 repliesSuperseded

Changes in v7 from the cover letter

- fix build failures for various targets (patch 9)

Patches in v7 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/20xen: add some xen headersinclude/xen/hvm/hvm_op.h include/xen/hvm/params.h include/xen/hvm/start_info.h +4 more+2142 -310 replies
2/20loader/linux: support passing rsdp address via boot paramsgrub-core/loader/i386/linux.c include/grub/i386/linux.h+6 -10 replies
2/20loader/linux: support passing rsdp address via boot paramsgrub-core/loader/i386/linux.c include/grub/i386/linux.h+6 -10 replies
3/20xen: carve out grant tab initialization into dedicated functiongrub-core/kern/xen/init.c+21 -140 replies
3/20xen: carve out grant tab initialization into dedicated functiongrub-core/kern/xen/init.c+21 -140 replies
4/20xen: prepare common code for Xen PVH supportgrub-core/kern/i386/tsc.c grub-core/mmap/i386/pc/mmap.c include/grub/i386/memory.h +5 more+76 -470 replies
5/20xen: add some dummy headers for PVH modeinclude/grub/i386/xen_pvh/boot.h include/grub/i386/xen_pvh/console.h include/grub/i386/xen_pvh/int.h +2 more+5 -00 replies
6/20xen: rearrange xen/init.c to prepare it for Xen PVH modegrub-core/kern/xen/init.c+34 -260 replies
7/20xen: modify grub_xen_ptr2mfn() for xen-pvhgrub-core/kern/xen/init.c+2 -00 replies
8/20xen: add PVH specific defines to offset.hinclude/grub/offsets.h+12 -90 replies
8/20xen: add PVH specific defines to offset.hinclude/grub/offsets.h+12 -90 replies
9/20xen: add basic hooks for PVH in current codegrub-core/Makefile.am grub-core/kern/i386/xen/pvh.c grub-core/kern/i386/xen/startup_pvh.S +9 more+112 -00 replies
10/20xen: add PVH boot entry codegrub-core/kern/i386/xen/startup_pvh.S+52 -00 replies
11/20xen: setup hypercall page for PVHgrub-core/kern/i386/xen/pvh.c include/xen/arch-x86/xen.h+87 -00 replies
12/20xen: get memory map from hypervisor for PVHgrub-core/kern/i386/xen/pvh.c+94 -00 replies
13/20xen: setup Xen specific data for PVHgrub-core/kern/i386/xen/pvh.c+123 -00 replies
14/20xen: init memory regions for PVHgrub-core/kern/i386/xen/pvh.c+35 -00 replies
15/20xen_pvh: add build runes for grub-coregentpl.py grub-core/Makefile.am grub-core/Makefile.core.def+49 -20 replies
16/20grub-module-verifier: Ignore all_video for xenpvhutil/grub-module-verifier.c+1 -00 replies
17/20xen: use elfnote defines instead of plain numbersutil/grub-mkimagexx.c+8 -60 replies
18/20xen_pvh: support building a standalone imageinclude/grub/util/mkimage.h util/grub-mkimage32.c util/grub-mkimage64.c +2 more+70 -80 replies
19/20xen_pvh: support grub-install for xen_pvhinclude/grub/util/install.h util/grub-install-common.c util/grub-install.c+9 -00 replies
20/20xen_pvh: add support to configureconfigure.ac+3 -00 replies

Reviews trailers per patch

All 23 patches have a Reviewed-by or Acked-by.

PatchDaniel KiperRoger Pau Monné
1/20R-b
2/20R-b R-b
2/20R-b R-b
3/20R-b R-b
3/20R-b R-b
4/20R-b
5/20R-b
6/20R-b
7/20R-b
8/20R-b R-b
8/20R-b R-b
9/20R-b
10/20R-b
11/20R-b
12/20R-b
13/20R-b R-b
14/20R-b
15/20R-b
16/20R-b
17/20R-b
18/20R-b
19/20R-b
20/20R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v7 thread

Cover letter [PATCH v7 00/20] xen: add pvh guest support

This patch series adds support for booting Linux as PVH guest.

Similar to i386/xen and x86_64/xen platforms the new i386/xenpvh platform grub is booted as a standalone image directly by Xen.

For booting Linux kernel it is using the standard linux kernel loader. The only modification of the linux loader is to pass the ACPI RSDP address via boot parameters to the kernel, as that table might not be located at the usual physical address just below 1MB.

The related Linux kernel patches have been accepted for 4.20-rc4

Changes in V7:
- fix build failures for various targets (patch 9)

Changes in V6:
- addressed a few comments, see individual patches (only minor changes)

Changes in V5:
- added new patches 7, 17
- removed (old) patch 12 again
- modified boot params interface for passing rsdp address on request by Peter Anvin (patch 2)
- addressed various comments, see individual patches

Changes in V4:
- added new patch 12
- write modified memory map back to Xen

Changes in V3:
- addressed lots of comments, most by Daniel and some by Roger, details are mentioned in the individual patches

Changes in V2:
- extend linux boot protocol version 2.14 to report back the protocol version supported by grub2 (needed as there are grub2 downstream variants in some distros which clobber data after the setup_header)
- split former patch 4 into 10 patches
- fix memmap handling for >4GB of memory
- added new patch from Hans (thanks for that one)
- addressed most of Daniel's comments (see individual patches)

Hans van Kranenburg (1):
grub-module-verifier: Ignore all_video for xenpvh

Juergen Gross (19):
xen: add some xen headers
loader/linux: support passing rsdp address via boot params
xen: carve out grant tab initialization into dedicated function
xen: prepare common code for Xen PVH support
xen: add some dummy headers for PVH mode
xen: rearrange xen/init.c to prepare it for Xen PVH mode
xen: modify grub_xen_ptr2mfn() for xen-pvh
xen: add PVH specific defines to offset.h
xen: add basic hooks for PVH in current code
xen: add PVH boot entry code
xen: setup hypercall page for PVH
xen: get memory map from hypervisor for PVH
xen: setup Xen specific data for PVH
xen: init memory regions for PVH
xen_pvh: add build runes for grub-core
xen: use elfnote defines instead of plain numbers
xen_pvh: support building a standalone image
xen_pvh: support grub-install for xen_pvh
xen_pvh: add support to configure

 configure.ac                          |   3 +
 gentpl.py                             |   4 +-
 grub-core/Makefile.am                 |  18 +
 grub-core/Makefile.core.def           |  35 ++
 grub-core/kern/i386/tsc.c             |   2 +-
 grub-core/kern/i386/xen/pvh.c         | 369 +++++++++++++++++++
 grub-core/kern/i386/xen/startup_pvh.S |  81 +++++
 grub-core/kern/xen/init.c             | 101 ++++--
 grub-core/loader/i386/linux.c         |   5 +
 grub-core/mmap/i386/pc/mmap.c         |   8 -
 include/grub/i386/coreboot/kernel.h   |   0
 include/grub/i386/efi/kernel.h        |   0
 include/grub/i386/ieee1275/kernel.h   |   0
 include/grub/i386/linux.h             |   3 +-
 include/grub/i386/memory.h            |   7 +
 include/grub/i386/pc/int.h            |  36 +-
 include/grub/i386/pc/int_types.h      |  59 +++
 include/grub/i386/tsc.h               |   2 +-
 include/grub/i386/xen/hypercall.h     |   5 +-
 include/grub/i386/xen/kernel.h        |   0
 include/grub/i386/xen_pvh/boot.h      |   1 +
 include/grub/i386/xen_pvh/console.h   |   1 +
 include/grub/i386/xen_pvh/int.h       |   1 +
 include/grub/i386/xen_pvh/kernel.h    |  30 ++
 include/grub/i386/xen_pvh/memory.h    |   1 +
 include/grub/i386/xen_pvh/time.h      |   1 +
 include/grub/kernel.h                 |   4 +-
 include/grub/offsets.h                |  21 +-
 include/grub/util/install.h           |   1 +
 include/grub/util/mkimage.h           |   3 +-
 include/grub/x86_64/efi/kernel.h      |   0
 include/grub/xen.h                    |   5 +
 include/xen/arch-x86/xen.h            |   7 +
 include/xen/hvm/hvm_op.h              | 296 +++++++++++++++
 include/xen/hvm/params.h              | 284 +++++++++++++++
 include/xen/hvm/start_info.h          |  98 +++++
 include/xen/memory.h                  | 665 ++++++++++++++++++++++++++++++++++
 include/xen/physdev.h                 | 387 ++++++++++++++++++++
 include/xen/trace.h                   | 339 +++++++++++++++++
 include/xen/xen.h                     | 104 ++++--
 util/grub-install-common.c            |   1 +
 util/grub-install.c                   |   7 +
 util/grub-mkimage32.c                 |   4 +-
 util/grub-mkimage64.c                 |   4 +-
 util/grub-mkimagexx.c                 |  58 ++-
 util/grub-module-verifier.c           |   1 +
 util/mkimage.c                        |  23 +-
 47 files changed, 2941 insertions(+), 144 deletions(-)
 create mode 100644 grub-core/kern/i386/xen/pvh.c
 create mode 100644 grub-core/kern/i386/xen/startup_pvh.S
 create mode 100644 include/grub/i386/coreboot/kernel.h
 create mode 100644 include/grub/i386/efi/kernel.h
 create mode 100644 include/grub/i386/ieee1275/kernel.h
 create mode 100644 include/grub/i386/pc/int_types.h
 create mode 100644 include/grub/i386/xen/kernel.h
 create mode 100644 include/grub/i386/xen_pvh/boot.h
 create mode 100644 include/grub/i386/xen_pvh/console.h
 create mode 100644 include/grub/i386/xen_pvh/int.h
 create mode 100644 include/grub/i386/xen_pvh/kernel.h
 create mode 100644 include/grub/i386/xen_pvh/memory.h
 create mode 100644 include/grub/i386/xen_pvh/time.h
 create mode 100644 include/grub/x86_64/efi/kernel.h
 create mode 100644 include/xen/hvm/hvm_op.h
 create mode 100644 include/xen/hvm/params.h
 create mode 100644 include/xen/hvm/start_info.h
 create mode 100644 include/xen/memory.h
 create mode 100644 include/xen/physdev.h
 create mode 100644 include/xen/trace.h
Signature · 7 lines
2.16.4


_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel