[U-Boot] [PATCH v3 04/31] dm: Add a new uclass driver for VirtIO transport devices
Simon Glass
sjg at chromium.org
Fri Oct 19 03:27:36 UTC 2018
On 15 October 2018 at 03:21, Bin Meng <bmeng.cn at gmail.com> wrote:
> This adds a new virtio uclass driver for “virtio” [1] family of
> devices that are are found in virtual environments like QEMU,
> yet by design they look like physical devices to the guest.
>
> The uclass driver provides child_pre_probe() and child_post_probe()
> methods to do some common operations for virtio device drivers like
> device and driver supported feature negotiation, etc.
>
> [1] http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf
>
> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
>
> ---
>
> Changes in v3: None
> Changes in v2:
> - Added virtio spec link and a short statement of what virtio is
> in the header and source files
> - Changed to use 'transport' over 'bus' in drivers/virtio/Kconfig
> - Added UCLASS_VIRTIO ID in alphabetical order
> - Moved the header file inclusion from virtio.h to C file
> - Fixed code styling issue (blank line before return) in
> virtio_xxx() APIs
> - Changed virtio_init() to return int if there is an error
> - Added virtio_uclass_pre_probe() to check virtio transport driver
> ops here so that we don't need check these ops each time when
> the virtio_xxx APIs are called
> - Implemented child_post_remove() method to reset the virtio device
> - Changed virtio_driver_features_init() parameter 'feature' and
> 'feature_legacy' to const, and adjust member of
> 'struct virtio_dev_priv' accordingly
> - Initialize uc_priv->vqs in virtio_uclass_post_probe()
>
> drivers/Kconfig | 2 +
> drivers/Makefile | 1 +
> drivers/virtio/Kconfig | 25 ++
> drivers/virtio/Makefile | 6 +
> drivers/virtio/virtio-uclass.c | 369 +++++++++++++++++++++
> include/dm/uclass-id.h | 1 +
> include/virtio.h | 707 +++++++++++++++++++++++++++++++++++++++++
> include/virtio_types.h | 24 ++
> 8 files changed, 1135 insertions(+)
> create mode 100644 drivers/virtio/Kconfig
> create mode 100644 drivers/virtio/Makefile
> create mode 100644 drivers/virtio/virtio-uclass.c
> create mode 100644 include/virtio.h
> create mode 100644 include/virtio_types.h
Reviewed-by: Simon Glass <sjg at chromium.org>
More information about the U-Boot
mailing list