Message ID | 20221202030003.11441-1-vikram.garhwal@amd.com (mailing list archive) |
---|---|
Headers | show |
Series | Introduce xenpv machine for arm architecture | expand |
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