Commit Graph

39 Commits

Author SHA1 Message Date
Alex Bennée
8141da05b4 README.md: fix link to GPU docs
Remove the space so the link renders properly.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2025-09-17 11:03:26 +03:00
Dorinda Bassey
b232e96586 README.md: Update vhost-device-gpu crate README.md link
The crate has been moved from staging to root folder.
Update the README to reflect the correct link for the crate.

Signed-off-by: Dorinda Bassey <dbassey@redhat.com>
2025-08-05 23:36:24 +03:00
Manos Pitsidianakis
bf1ae745b7 README.md: add Packaging and distribution section
Add Packaging and distribution section that mentions the ability to
generate manual pages using the xtask crate in this workspace.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2025-04-15 14:25:32 +05:30
Alex Bennée
2998e075e9 README.md: add vhost-device-gpu to staging list
This is worth having listed on the front page of the repo.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2024-12-09 17:19:56 +02:00
Timos Ampelikiotis
db63d2057c Move vhost-device-can on main workspace
Changes:
- Update socketcan-rs to v3.3.1 which solve the issue regarding the CANFD messages:
  - https://github.com/socketcan-rs/socketcan-rs/pull/61
- Update Cargo.lock files under main and staging workspace

Signed-off-by: Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>
2024-11-14 05:29:54 +02:00
Timos Ampelikiotis
0b06c22096 vhost-device-console: promote to main workspace
The current implementation seems ready to be promoted to the
main workspace since the device supports test coverage have been
increased and the basic functionality is implemented.

Cargo.lock files both in main and staging workspaces are updated.

Support for VIRTIO_CONSOLE_F_SIZE and VIRTIO_CONSOLE_F_EMERG_WRITE
is still missing.

Signed-off-by: Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>
2024-11-09 16:41:28 +00:00
João Peixoto
fedf1cb55b fix(README): vhost-user-frontend and vm-virtio hyperlinks
Signed-off-by: João Peixoto <joaopeixotooficial@gmail.com>
2024-09-30 09:54:42 +02:00
Timos Ampelikiotis
079d9024be vhost-device-console: Add initial implementation
The device was tested with:
1) Upstream QEMU's vhost-user-device

    qemu-system-x86_64  \
            <normal QEMU options> \
            -machine <machine options>,memory-backend=mem0 \
            -object memory-backend-memfd,id=mem0,size=<Guest RAM size> \ # size == -m size
            -chardev socket,id=con0,path=/tmp/console.sock0 \
            -device vhost-user-device-pci,chardev=con0,virtio-id=3,num_vqs=4,config_size=12 \
            ...

2) A new QEMU vhost-user-console device which can be found in the following repo:
- https://github.com/virtualopensystems/qemu/tree/vhu-console-rfc

For more information, please check the README.md file under
staging/vhost-device-console/.

Co-authored-by: dorindabassey <53014273+dorindabassey@users.noreply.github.com>
Signed-off-by: Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>
2024-08-29 17:11:30 +02:00
Timos Ampelikiotis
42fa1204ec vhost-device-can: Add initial implementation
This implementation supports the exchange of CAN/CANFD messages
virtual ("vcan") and real HW CAN device ("can0"). It was tested with:
a) virtio-can driver found in the following patch serie:
    - https://lwn.net/Articles/934187/

b) QEMU's vhost-user-can device:
    1) Option 1: Upstream QEMU's vhost-user-device

        qemu-system-x86_64  \
                -m 4096 \
                -numa node,memdev=mem \
                -object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on \
                -chardev socket,id=char1,path=/tmp/can.sock \
                -device vhost-user-device-pci,chardev=char1,virtio-id=36,num_vqs=3,config_size=16 \
                ...

    2) Option 2: A new QEMU vhost-user-can device can be found in the
       following repo:
        - https://github.com/virtualopensystems/qemu/tree/vhu-can-rfc

For more information, please check the README.md file under
"staging/vhost-device-can/".

Signed-off-by: Timos Ampelikiotis <t.ampelikiotis@virtualopensystems.com>
2024-08-02 09:34:25 +02:00
Haixu Cui
d12bf9886d vhost-device-spi: Add initial implementation
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.

The implementation corresponds with the specification:
https://github.com/oasis-tcs/virtio-spec/tree/virtio-1.4/device-types/spi

Signed-off-by: Haixu Cui <quic_haixcui@quicinc.com>
2024-07-29 09:51:40 +02:00
Stefano Garzarella
b113dc6b28 sound: promote to main workspace
The current implementation seems ready to be promoted to the
main workspace since the device supports both playback and recording,
and several audio backends.

Also, test coverage is good and aligned with the coverage of crates
in the main workspace.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2024-01-03 11:16:07 +05:30
Leo Yan
01e57d07c6 input: Initial support for input emulation
This patch is to add support for vhost input device emulation.

The code skeleton heavily reuses vhost-device-i2c and vhost-device-rng,
including sharing the same license, and how to create the multi-thread
mode and daemon for backend virtual device.

It gives detailed usage for enabling virtual input device for guest in
the README.md.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
2023-12-07 17:35:26 +02:00
Viresh Kumar
fe1778a731 Add vhost-device-template crate
This adds a basic template crate, which will be useful for new
developers to understand how things work and layout all basic stuff they
are expected to write to make it work.

The current implementation just parses all the requests from the
virtqueue and prints the number of descriptor chains and size of each
descriptor buffer in there.

This adds basic sanity tests as well for the same, which can be run to
test the working of the crate.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2023-12-01 15:40:19 +05:30
Albert Esteve
5edf1dfb7b video: initial skeleton
Initial skeleton for virtio-video crate.
This crate is based on the v3 of the virtio-video
specs patch[1].

It has a big part of the infrastructure
required, although not all commands are implemented,
and does not have any backend available.

Includes support for async responses to the driver
(through VIDEO_EVENT) to QueueResource messages.

[1] -
https://lists.oasis-open.org/archives/virtio-dev/202002/msg00002.html

Related: #364
Signed-off-by: Albert Esteve <aesteve@redhat.com>
2023-10-24 11:17:33 +02:00
Alex Bennée
eabf93f3d5 README.md: clearer language on staging devices
Lets be super clear and explicit about what it takes to include a
backend in the repository as well as the minimum requirements for
being included in staging.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2023-10-16 20:17:21 +05:30
Manos Pitsidianakis
eb2e2227e4
Move vhost-device-sound to staging workspace
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 14:58:40 +03:00
Manos Pitsidianakis
3a089149be
Move crates/sound to vhost-device-sound
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 14:56:03 +03:00
Manos Pitsidianakis
d40c707f2f
Merge remote-tracking branch 'upstream/main' into HEAD
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 14:48:56 +03:00
Manos Pitsidianakis
a1e013286f Move all crates to workspace root
Having all the workspace crates under the crates/ directory is
unnecessary. Rust documentation itself recommends all crates to be in
the root directory:

https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html#creating-the-second-package-in-the-workspace

I paste the text content here, in case the online page ever changes or
becomes unavailable:

    ## Creating the Second Package in the Workspace

    Next, let’s create another member package in the workspace and call it add_one. Change the top-level Cargo.toml to specify the add_one path in the members list:

    Filename: Cargo.toml

    [workspace]

    members = [
        "adder",
        "add_one",
    ]

    Then generate a new library crate named add_one:

    $ cargo new add_one --lib
         Created library `add_one` package

    Your add directory should now have these directories and files:

    ├── Cargo.lock
    ├── Cargo.toml
    ├── add_one
    │   ├── Cargo.toml
    │   └── src
    │       └── lib.rs
    ├── adder
    │   ├── Cargo.toml
    │   └── src
    │       └── main.rs
    └── target

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-16 12:03:57 +05:30
Manos Pitsidianakis
54b5db72e0 Add new workspace under staging/ subdirectory
Add a new workspace for devices that have no final specification merged
into the virtio spec.

Closes #459

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-10-11 16:25:00 +05:30
Dorinda Bassey
7d84caa08a Merge remote-tracking branch 'origin/main' into virtio-sound 2023-10-10 17:18:17 +02:00
Manos Pitsidianakis
5a7759e316 Prepend vhost-device- to crate directories
Having the directory of a crate match the name of the crate (i.e. the
one defined in its Cargo.toml) is intuitive and unambiguous.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
2023-09-26 18:57:55 +05:30
Milan Zamazal
95d8e1d846 scmi: Add a SCMI link to the top README
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
2023-09-13 09:33:26 +02:00
Stefano Garzarella
a4857f122d README: add reference to the scsi device
When we merged the SCSI device, we forgot to put it in the
workspace README.md and put the link to the device README.md.

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2023-07-20 20:55:16 +05:30
Viresh Kumar
462a621485 Add support for Xen builds
Various rust-vmm dependencies now support Xen platforms under a new
feature `xen`. Add the same here for all the crates.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2023-07-06 16:37:36 +05:30
Erik Schilling
f0b0eee465 gpio: update instructions for setting up libgpiod
Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
2023-07-03 11:26:22 +05:30
Stefano Garzarella
0a78103b41 sound: initial commit 2023-03-30 18:47:15 +02:00
Viresh Kumar
799073f17c gpio: Migrate to the upstream version of libgpiod
The upstream version doesn't compile the .c files locally and depends on
the package to be locally compiled and installed in advance.

It also doesn't provide pre-generated bindings, and requires bindgen
support.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2023-02-15 08:09:13 -07:00
Viresh Kumar
5e83d0c93f Move all crates in crates directory
Based on what other rust-vmm workspaces do, move all crates to crates
directory.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-10-13 16:28:11 +05:30
Harshavardhan Unnibhavi
e20698695b vhost-user-vsock: virtio-vsock device emulation
This commit introduces a vhost-user-vsock device that enables
communicaton between an application running in the guest i.e
inside a VM and an application running on the host i.e outside
the VM. The device exposes unix sockets to which the VMM and
host-side applications connect to. Applications in the guest
communicate over VM sockets. Applicaitons on the host connect to
the unix socket i.e communicate over AF_UNIX sockets.

Signed-off-by: Harshavardhan Unnibhavi <harshanavkis@gmail.com>
[sgarzare: rebased, updated Cargo.lock, updated clap version to
 avoid build issues, and fixed clap issues with the new version]
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-10-12 14:21:54 +02:00
Stefano Garzarella
d599deefce README: replace master with frontend
In the vhost-user specs [1] we started using better words
for the actors involved, so let's do the same here.

[1] https://qemu-project.gitlab.io/qemu/interop/vhost-user.html

Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
2022-09-28 14:00:52 +02:00
Viresh Kumar
c38dacd880 gpio: Update README.md and add one for gpio
This updates the main README and adds a specific one for GPIO crate.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-04-04 12:38:51 +05:30
Mathieu Poirier
ad8bd113b9 rng: Initial vhost-device RNG implementation
This patch provides a vhost-user compliant daemon for Random Number
Generation (RNG) that implements the VhostUserBackend trait.  As such
it can be used seamlessly with any kind of VMM, regardless of the
underlying architecture or programming language.

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
2022-03-01 14:37:36 -07:00
Alex Bennée
bcea111620 README.md: document repository coverage rules
This attempts to finesse the rule of no coverage regressions for
discussion with the wider community.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2022-02-07 12:09:05 +00:00
Viresh Kumar
75c5c1df01 vhost-device: Fix broken link
Update README to point to the correct link, replace master with main.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-01-06 14:59:53 +05:30
Viresh Kumar
677b897576 i2c: Move i2c to top folder
The workspace section in Rust documentation suggests adding new crates
in the top level directory itself instead of the src folder. Remove the
top level src folder.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2022-01-05 11:09:33 +05:30
Alex Bennée
31ec556560 README.md: document aim for separating concerns
While there may be some work to do on the testing framework to make
proper use of vm-virtio we should at least document the desire for
modularity.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2021-11-09 10:02:30 +02:00
Viresh Kumar
cc46cab80d i2c: Update README.md and add one for i2c
This updates the main README and adds a specific one for i2c crate.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
2021-08-19 09:52:14 +03:00
Andreea Florescu
72710f3a89 Initial commit 2021-05-26 10:18:40 +03:00