vhost-device/vhost-device-spi
dependabot[bot] 4db68204f8 build(deps): bump the rust-vmm group across 2 directories with 1 update
Bumps the rust-vmm group with 1 update in the / directory: [virtio-bindings](https://github.com/rust-vmm/vm-virtio).
Bumps the rust-vmm group with 1 update in the /staging directory: [virtio-bindings](https://github.com/rust-vmm/vm-virtio).


Updates `virtio-bindings` from 0.2.4 to 0.2.5
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-bindings-v0.2.4...virtio-bindings-v0.2.5)

Updates `virtio-bindings` from 0.2.4 to 0.2.5
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-bindings-v0.2.4...virtio-bindings-v0.2.5)

---
updated-dependencies:
- dependency-name: virtio-bindings
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-vmm
- dependency-name: virtio-bindings
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-vmm
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 10:23:08 +02:00
..
src vhost-device-spi: Add initial implementation 2024-07-29 09:51:40 +02:00
Cargo.toml build(deps): bump the rust-vmm group across 2 directories with 1 update 2025-02-17 10:23:08 +02:00
CHANGELOG.md spi: fix changelog format 2024-07-30 19:03:28 +05:30
LICENSE-APACHE vhost-device-spi: Add initial implementation 2024-07-29 09:51:40 +02:00
LICENSE-BSD-3-Clause vhost-device-spi: Add initial implementation 2024-07-29 09:51:40 +02:00
README.md vhost-device-spi: Add initial implementation 2024-07-29 09:51:40 +02:00

vhost-device-spi - SPI emulation backend daemon

Description

This program is a vhost-user backend that emulates a VirtIO SPI bus. This program takes the layout of the spi bus and its devices on the host OS and then talks to them via the /dev/spidevX.Y interface when a request comes from the guest OS for a SPI device.

Synopsis

vhost-device-spi [OPTIONS]

Options

 -h, --help

  Print help.

 -s, --socket-path=PATH

  Location of vhost-user Unix domain sockets, this path will be suffixed with
  0,1,2..socket_count-1.

 -c, --socket-count=INT

  Number of guests (sockets) to attach to, default set to 1.

 -l, --device=SPI-DEVICES

  Spi device full path at the host OS in the format:
      /dev/spidevX.Y

  Here,
      X: is spi controller's bus number.
      Y: is chip select index.

Examples

Dependencies

For testing the device the required dependencies are:

Test the device

First start the daemon on the host machine::

```console
vhost-device-spi --socket-path=vspi.sock --socket-count=1 --device "/dev/spidev0.0"
```

The QEMU invocation needs to create a chardev socket the device spi use to communicate as well as share the guests memory over a memfd.

```console
qemu-system-aarch64 -m 1G \
    -chardev socket,path=/home/root/vspi.sock0,id=vspi \
    -device vhost-user-spi-pci,chardev=vspi,id=spi \
    -object memory-backend-file,id=mem,size=1G,mem-path=/dev/shm,share=on \
    -numa node,memdev=mem \
    ...
```

License

This project is licensed under either of