[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] virtio documentation or BSD licensed driver?
From: |
Pantelis Koukousoulas |
Subject: |
Re: [Qemu-devel] virtio documentation or BSD licensed driver? |
Date: |
Mon, 4 May 2009 12:23:45 +0300 |
>>> Is there any
>>> - interface documentation for virtio?
>>> - BSD licensed drivers?
Virtio was designed as a Linux API AFAIK (nothing prevents it from
being ported of course).
So, the most useful info should be in the (BSD Licensed) headers. The
actual virtio-net driver
code will not be very helpful to someone unfamilliar with the way
Linux does things (e.g.,
skbs, ethernet operations etc etc). If you want to port virtio-net to
another OS though, you
will have to provide the infrastructure too, so you have 2 choices:
1) Implement it like in Linux in 4 layers: virtio_pci, virtio_ring,
virtio (virtqueues etc), virtio_net.
2) Think of virtio-net as just another (sophisticated) PCI driver and
look at its implemenation
in qemu. Although qemu is not BSD licensed, your work is unlikely to
be considered a derivative
of qemu since you are implementing a driver for that virtual
"hardware", not another copy it.
The BSD virtio headers, the paper and the virtio-net qemu
implementation should be enough to
allow you to write a driver for your OS imho (it is already more info
than you typically get for
real hardware)
Pantelis
P.S., in practice I believe several developers for other OSes look at
the sources of linux drivers
as sort of a really good documentation for hardware, even if the
license of their OS is incompatible.
IANAL and all that, but I 'd be really suprised if you got sued for
porting virtio-net to your hobby OS :)
(E.g., there are currently closed-source windows virtio-net drivers
and nobody cared to request an
audit whether they are a derivative of the Linux drivers or not).