From: Oleksandr Tyshchenko <oleksandr_tyshche...@epam.com> Hello all.
The purpose of this patch series is to add missing virtio-mmio bits to Xen toolstack on Arm. The Virtio support for toolstack [1] was postponed as the main target was to upstream IOREQ/DM support on Arm in the first place. Now, we already have IOREQ support in, so we can resume Virtio enabling work. You can find previous discussions at [2]. Patch series [3] is based on recent "staging" branch (fa6dc0879ffd3dffffaea2837953c7a8761a9ba0 page_alloc: assert IRQs are enabled in heap alloc/free) and tested on Renesas Salvator-X board + H3 ES3.0 SoC (Arm64) with virtio-mmio based virtio-disk backend [4] running in Dom0 (or Driver domain) and unmodified Linux Guest running on existing virtio-blk driver (frontend). No issues were observed. Guest domain 'reboot/destroy' use-cases work properly. Any feedback/help would be highly appreciated. [1] https://lore.kernel.org/xen-devel/1610488352-18494-24-git-send-email-olekst...@gmail.com/ https://lore.kernel.org/xen-devel/1610488352-18494-25-git-send-email-olekst...@gmail.com/ [2] https://lists.xenproject.org/archives/html/xen-devel/2021-01/msg02403.html https://lists.xenproject.org/archives/html/xen-devel/2021-01/msg02536.html https://lore.kernel.org/xen-devel/1621626361-29076-1-git-send-email-olekst...@gmail.com/ https://lore.kernel.org/xen-devel/1638982784-14390-1-git-send-email-olekst...@gmail.com/ https://lore.kernel.org/xen-devel/1649442065-8332-1-git-send-email-olekst...@gmail.com/ [3] https://github.com/otyshchenko1/xen/commits/libxl_virtio3 [4] https://github.com/otyshchenko1/virtio-disk/commits/virtio_grant Julien Grall (1): libxl: Introduce basic virtio-mmio support on Arm Oleksandr Tyshchenko (1): libxl: Add support for Virtio disk configuration docs/man/xl-disk-configuration.5.pod.in | 38 +- tools/golang/xenlight/helpers.gen.go | 8 + tools/golang/xenlight/types.gen.go | 18 + tools/include/libxl.h | 7 + tools/libs/light/libxl_arm.c | 118 +++- tools/libs/light/libxl_device.c | 62 +- tools/libs/light/libxl_disk.c | 136 ++++- tools/libs/light/libxl_internal.h | 2 + tools/libs/light/libxl_types.idl | 16 + tools/libs/light/libxl_types_internal.idl | 1 + tools/libs/light/libxl_utils.c | 2 + tools/libs/util/libxlu_disk_l.c | 959 +++++++++++++++--------------- tools/libs/util/libxlu_disk_l.h | 2 +- tools/libs/util/libxlu_disk_l.l | 9 + tools/xl/xl_block.c | 11 + xen/include/public/arch-arm.h | 7 + 16 files changed, 914 insertions(+), 482 deletions(-) -- 2.7.4