vhost-device/vhost-device-spi
dependabot[bot] c1f9f3c94c build(deps): bump the vhost-device group across 1 directory with 17 updates
Bumps the vhost-device group with 14 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.16` | `4.5.17` |
| [vhost](https://github.com/rust-vmm/vhost) | `0.11.0` | `0.12.0` |
| [vhost-user-backend](https://github.com/rust-vmm/vhost) | `0.15.0` | `0.16.0` |
| [virtio-queue](https://github.com/rust-vmm/vm-virtio) | `0.12.0` | `0.13.0` |
| [vm-memory](https://github.com/rust-vmm/vm-memory) | `0.14.1` | `0.15.0` |
| [virtio-vsock](https://github.com/rust-vmm/vm-virtio) | `0.6.0` | `0.7.0` |
| [serde](https://github.com/serde-rs/serde) | `1.0.209` | `1.0.210` |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.86` | `1.0.89` |
| [bytemuck](https://github.com/Lokathor/bytemuck) | `1.17.1` | `1.18.0` |
| [cc](https://github.com/rust-lang/cc-rs) | `1.1.15` | `1.1.19` |
| [once_cell](https://github.com/matklad/once_cell) | `1.19.0` | `1.20.0` |
| [rustix](https://github.com/bytecodealliance/rustix) | `0.38.35` | `0.38.37` |
| [unicode-ident](https://github.com/dtolnay/unicode-ident) | `1.0.12` | `1.0.13` |
| [unicode-segmentation](https://github.com/unicode-rs/unicode-segmentation) | `1.11.0` | `1.12.0` |



Updates `clap` from 4.5.16 to 4.5.17
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.16...clap_complete-v4.5.17)

Updates `vhost` from 0.11.0 to 0.12.0
- [Release notes](https://github.com/rust-vmm/vhost/releases)
- [Commits](https://github.com/rust-vmm/vhost/compare/vhost-v0.11.0...vhost-v0.12.0)

Updates `vhost-user-backend` from 0.15.0 to 0.16.0
- [Release notes](https://github.com/rust-vmm/vhost/releases)
- [Commits](https://github.com/rust-vmm/vhost/compare/vhost-user-backend-v0.15.0...vhost-user-backend-v0.16.0)

Updates `virtio-bindings` from 0.2.2 to 0.2.3
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-bindings-v0.2.2...virtio-bindings-v0.2.3)

Updates `virtio-queue` from 0.12.0 to 0.13.0
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-queue-v0.12.0...virtio-queue-v0.13.0)

Updates `vm-memory` from 0.14.1 to 0.15.0
- [Release notes](https://github.com/rust-vmm/vm-memory/releases)
- [Changelog](https://github.com/rust-vmm/vm-memory/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-vmm/vm-memory/compare/v0.14.1...v0.15.0)

Updates `virtio-vsock` from 0.6.0 to 0.7.0
- [Release notes](https://github.com/rust-vmm/vm-virtio/releases)
- [Commits](https://github.com/rust-vmm/vm-virtio/compare/virtio-vsock-v0.6.0...virtio-vsock-v0.7.0)

Updates `serde` from 1.0.209 to 1.0.210
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210)

Updates `anyhow` from 1.0.86 to 1.0.89
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.86...1.0.89)

Updates `bytemuck` from 1.17.1 to 1.18.0
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md)
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.17.1...v1.18.0)

Updates `cc` from 1.1.15 to 1.1.19
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.1.15...cc-v1.1.19)

Updates `clap_builder` from 4.5.15 to 4.5.17
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.5.15...v4.5.17)

Updates `once_cell` from 1.19.0 to 1.20.0
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.19.0...v1.20.0)

Updates `rustix` from 0.38.35 to 0.38.37
- [Release notes](https://github.com/bytecodealliance/rustix/releases)
- [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.38.35...v0.38.37)

Updates `serde_derive` from 1.0.209 to 1.0.210
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.209...v1.0.210)

Updates `unicode-ident` from 1.0.12 to 1.0.13
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.12...1.0.13)

Updates `unicode-segmentation` from 1.11.0 to 1.12.0
- [Commits](https://github.com/unicode-rs/unicode-segmentation/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: vhost
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: vhost-user-backend
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: virtio-bindings
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: virtio-queue
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: vm-memory
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: virtio-vsock
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: anyhow
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: bytemuck
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: cc
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: clap_builder
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: once_cell
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: vhost-device
- dependency-name: rustix
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: serde_derive
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: unicode-ident
  dependency-type: indirect
  update-type: version-update:semver-patch
  dependency-group: vhost-device
- dependency-name: unicode-segmentation
  dependency-type: indirect
  update-type: version-update:semver-minor
  dependency-group: vhost-device
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-17 10:29:02 +02:00
..
src vhost-device-spi: Add initial implementation 2024-07-29 09:51:40 +02:00
Cargo.toml build(deps): bump the vhost-device group across 1 directory with 17 updates 2024-09-17 10:29:02 +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