Vikram Garhwal <vikram.garhwal@amd.com> writes:
> Hi,
> This series add xenpv machine for aarch64. Motivation behind creating xenpv
> machine with IOREQ and TPM was to enable each guest on Xen aarch64 to have it's
> own unique and emulated TPM.
>
> This series does following:
> 1. Moved common xen functionalities from hw/i386/xen to hw/xen/ so those can
> be used for aarch64.
> 2. We added a minimal xenpv arm machine which creates an IOREQ server and
> support TPM.
So I've managed to test the basics:
16:02:33 [root@latte:~] # xl create simple-guest.conf
Parsing config from simple-guest.conf
libxl: info: libxl_create.c:120:libxl__domain_build_info_setdefault: qemu-xen is unavailable, using qemu-xen-traditional instead: No such file or directory
16:02:43 [root@latte:~] # xl list
Name ID Mem VCPUs State Time(s)
Domain-0 0 4096 4 r----- 25.6
xenpv-test-guest 2 4095 2 r----- 14.9
16:02:51 [root@latte:~] # ps ax | grep qemu
578 ? Sl 0:00 /home/alex/lsrc/qemu.git/builds/xen/qemu-system-aarch64 -xen-domid 0 -xen-attach -name dom0 -nographic -M xenpv -daemonize -monitor /dev/null -serial /dev/null -parallel /dev/null -pidfile /var/run/xen/qemu-dom0.pid
2053 pts/2 S+ 0:00 grep --color=auto qemu
However I'm a little lost on how to add HW to this machine. Is it all
via the guest configuration?
I think it would be worthwhile adding some documentation for this
machine to the manual, maybe docs/system/xen/xenpv.rst and then it can
be linked to from the appropriate target-arm.rst.
>
> Also, checkpatch.pl fails for 03/12 and 06/12. These fails are due to
> moving old code to new place which was not QEMU code style compatible.
> No new add code was added.
>
> Regards,
> Vikram
>
> ChangeLog:
> v1 -> v2
> Merged patch 05 and 06.
> 04/12: xen-hvm-common.c:
> 1. Moved xen_be_init() and xen_be_register_common() from
> xen_register_ioreq() to xen_register_backend().
> 2. Changed g_malloc to g_new and perror -> error_setg_errno.
> 3. Created a local subroutine function for Xen_IOREQ_register.
> 4. Fixed build issues with inclusion of xenstore.h.
> 5. Fixed minor errors.
>
> Stefano Stabellini (5):
> hw/i386/xen/xen-hvm: move x86-specific fields out of XenIOState
> xen-hvm: reorganize xen-hvm and move common function to xen-hvm-common
> include/hw/xen/xen_common: return error from xen_create_ioreq_server
> hw/xen/xen-hvm-common: skip ioreq creation on ioreq registration
> failure
> meson.build: do not set have_xen_pci_passthrough for aarch64 targets
>
> Vikram Garhwal (6):
> hw/i386/xen/: move xen-mapcache.c to hw/xen/
> hw/i386/xen: rearrange xen_hvm_init_pc
> hw/xen/xen-hvm-common: Use g_new and error_setg_errno
> accel/xen/xen-all: export xenstore_record_dm_state
> hw/arm: introduce xenpv machine
> meson.build: enable xenpv machine build for ARM
>
> accel/xen/xen-all.c | 2 +-
> hw/arm/meson.build | 2 +
> hw/arm/xen_arm.c | 175 +++++
> hw/i386/meson.build | 1 +
> hw/i386/xen/meson.build | 1 -
> hw/i386/xen/trace-events | 19 -
> hw/i386/xen/xen-hvm.c | 1084 +++---------------------------
> hw/xen/meson.build | 7 +
> hw/xen/trace-events | 19 +
> hw/xen/xen-hvm-common.c | 888 ++++++++++++++++++++++++
> hw/{i386 => }/xen/xen-mapcache.c | 0
> include/hw/arm/xen_arch_hvm.h | 9 +
> include/hw/i386/xen_arch_hvm.h | 11 +
> include/hw/xen/arch_hvm.h | 5 +
> include/hw/xen/xen-hvm-common.h | 98 +++
> include/hw/xen/xen.h | 2 +
> include/hw/xen/xen_common.h | 13 +-
> meson.build | 4 +-
> 18 files changed, 1323 insertions(+), 1017 deletions(-)
> create mode 100644 hw/arm/xen_arm.c
> create mode 100644 hw/xen/xen-hvm-common.c
> rename hw/{i386 => }/xen/xen-mapcache.c (100%)
> create mode 100644 include/hw/arm/xen_arch_hvm.h
> create mode 100644 include/hw/i386/xen_arch_hvm.h
> create mode 100644 include/hw/xen/arch_hvm.h
> create mode 100644 include/hw/xen/xen-hvm-common.h
--
Alex Bennée