06 Feb, 2020

2 commits

  • At present dm/device.h includes the linux-compatible features. This
    requires including linux/compat.h which in turn includes a lot of headers.
    One of these is malloc.h which we thus end up including in every file in
    U-Boot. Apart from the inefficiency of this, it is problematic for sandbox
    which needs to use the system malloc() in some files.

    Move the compatibility features into a separate header file.

    Signed-off-by: Simon Glass

    Simon Glass
     
  • At present devres.h is included in all files that include dm.h but few
    make use of it. Also this pulls in linux/compat which adds several more
    headers. Drop the automatic inclusion and require files to include devres
    themselves. This provides a good indication of which files use devres.

    Signed-off-by: Simon Glass
    Reviewed-by: Anatolij Gustschin

    Simon Glass
     

11 Jan, 2020

1 commit


08 Jan, 2020

1 commit


31 Oct, 2019

1 commit


15 Nov, 2018

9 commits

  • This driver provides support for Sandbox implementation of virtio
    transport driver which is used for testing purpose only.

    Two drivers are provided. The 2nd one is a driver that lacks the
    'notify' op.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • For v1.0 compliant device, it always assumes the member 'num_buffers'
    exists in the struct virtio_net_hdr while the legacy driver only
    presented 'num_buffers' when VIRTIO_NET_F_MRG_RXBUF was negotiated.
    Without that feature the structure was 2 bytes shorter.

    Update the driver to support the non-legacy device.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • By default QEMU creates legacy PCI transport devices, but we can
    ask QEMU to create non-legacy one if we pass additional device
    property/value pairs in the command line:

    -device virtio-blk-pci,disable-legacy=true,disable-modern=false

    This adds a new driver driver to support non-legacy (modern) device
    mode. Previous driver/file name is changed accordingly.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This adds a transport driver that implements UCLASS_VIRTIO for
    virtio over pci, which is commonly used on x86.

    It only supports the legacy interface of the pci transport, which
    is the default device that QEMU emulates.

    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This adds virtio block device driver support.

    Signed-off-by: Tuomas Tynkkynen
    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Tuomas Tynkkynen
     
  • This adds virtio net device driver support.

    Signed-off-by: Tuomas Tynkkynen
    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Tuomas Tynkkynen
     
  • VirtIO can use various different buses and virtio devices are
    commonly implemented as PCI devices. But virtual environments
    without PCI support (a common situation in embedded devices
    models) might use simple memory mapped device (“virtio-mmio”)
    instead of the PCI device.

    This adds a transport driver that implements UCLASS_VIRTIO for
    virtio over mmio.

    Signed-off-by: Tuomas Tynkkynen
    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng
     
  • This adds support for managing virtual queue/ring, the channel
    for high performance I/O between host and guest.

    Signed-off-by: Tuomas Tynkkynen
    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Tuomas Tynkkynen
     
  • 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
    Signed-off-by: Bin Meng
    Reviewed-by: Simon Glass

    Bin Meng