mbox series

[V6,0/3] Virtio toolstack support for I2C and GPIO on Arm

Message ID cover.1667906228.git.viresh.kumar@linaro.org (mailing list archive)
Headers show
Series Virtio toolstack support for I2C and GPIO on Arm | expand

Message

Viresh Kumar Nov. 8, 2022, 11:23 a.m. UTC
Hello,

This patchset adds toolstack support for I2C and GPIO virtio devices. This is
inspired from the work done by Oleksandr for the Disk device.

This is developed as part of Linaro's Project Stratos, where we are working
towards Hypervisor agnostic Rust based backend [1].

This is based of origin/staging (e61a78981364 xen/arm: add iounmap after initrd
has been loaded in domain_build) and the earlier posted cleanup patches [2].

V5->V6:
- The cleanup patches are sent separately [2].
- We don't add I2C or GPIO specific device changes anymore, rather we create
  generic "virtio" devices. The "type" of a virtio devices helps us identify the
  right device, and create an entry in the DT node. The same can be used for all
  Virtio devices now.
- Update man page xl.cfg.

V4->V5:
- Fixed indentation at few places.
- Removed/added blank lines.
- Added few comments.
- Added review tags from Oleksandr.
- Rebased over latest staging branch.

V3->V4:
- Update virtio_enabled independently of all devices, so we don't miss setting
  it to true.

- Add iommu handling for i2c/gpio and move it as part of
  make_virtio_mmio_node_common(), which gets backend_domid parameter as a
  result.

V2->V3:
- Rebased over latest tree and made changes according to changes in Oleksandr's
  patches from sometime back.
- Minor cleanups.

V1->V2:
- Patches 3/6 and 4/6 are new.
- Patches 5/6 and 6/6 updated based on the above two patches.
- Added link to the bindings for I2C and GPIO.
- Rebased over latest master branch.


Thanks.

--
Viresh

[1] https://lore.kernel.org/xen-devel/20220414092358.kepxbmnrtycz7mhe@vireshk-i7/
[2] https://lore.kernel.org/all/cover.1662626550.git.viresh.kumar@linaro.org/



Viresh Kumar (3):
  libxl: Add support for generic virtio device
  xl: Add support to parse generic virtio device
  docs: Add documentation for generic virtio devices

 docs/man/xl.cfg.5.pod.in                  |  21 ++++
 tools/libs/light/Makefile                 |   1 +
 tools/libs/light/libxl_arm.c              |  89 +++++++++++++++
 tools/libs/light/libxl_create.c           |   5 +
 tools/libs/light/libxl_internal.h         |   1 +
 tools/libs/light/libxl_types.idl          |  29 +++++
 tools/libs/light/libxl_types_internal.idl |   1 +
 tools/libs/light/libxl_virtio.c           | 127 ++++++++++++++++++++++
 tools/ocaml/libs/xl/genwrap.py            |   1 +
 tools/ocaml/libs/xl/xenlight_stubs.c      |   1 +
 tools/xl/xl_parse.c                       |  84 ++++++++++++++
 11 files changed, 360 insertions(+)
 create mode 100644 tools/libs/light/libxl_virtio.c

Comments

Viresh Kumar Dec. 1, 2022, 9:18 a.m. UTC | #1
On 08-11-22, 16:53, Viresh Kumar wrote:
> Hello,
> 
> This patchset adds toolstack support for I2C and GPIO virtio devices. This is
> inspired from the work done by Oleksandr for the Disk device.
> 
> This is developed as part of Linaro's Project Stratos, where we are working
> towards Hypervisor agnostic Rust based backend [1].
> 
> This is based of origin/staging (e61a78981364 xen/arm: add iounmap after initrd
> has been loaded in domain_build) and the earlier posted cleanup patches [2].
> 
> V5->V6:
> - The cleanup patches are sent separately [2].
> - We don't add I2C or GPIO specific device changes anymore, rather we create
>   generic "virtio" devices. The "type" of a virtio devices helps us identify the
>   right device, and create an entry in the DT node. The same can be used for all
>   Virtio devices now.
> - Update man page xl.cfg.

Ping.