[PATCH v2 3/3] doc: add documentation for uio-hv-generic

Markus Heiser markus.heiser at darmarit.de
Tue Oct 18 11:01:20 UTC 2016


Am 18.10.2016 um 12:54 schrieb Jani Nikula <jani.nikula at linux.intel.com>:

> On Mon, 17 Oct 2016, Stephen Hemminger <stephen at networkplumber.org> wrote:
>> From: Stephen Hemminger <sthemmin at microsoft.com>
>> 
>> Update UIO documentation to include basic information about
>> uio_hv_generic.
> 
> How about converting to Sphinx/reStructuredText first...? It's not a big
> file...
> 

The files from :

 https://github.com/return42/sphkerneldoc/tree/master/doc/Documentation/books_migrated/uio-howto

might be a good starting point for migration / if you use them, 
please drop the comments at the end of each file.

--M--

> BR,
> Jani.
> 
> 
> 
>> 
>> Signed-off-by: Stephen Hemminger <sthemmin at microsoft.com>
>> ---
>> Documentation/DocBook/uio-howto.tmpl | 62 ++++++++++++++++++++++++++++++++++++
>> 1 file changed, 62 insertions(+)
>> 
>> diff --git a/Documentation/DocBook/uio-howto.tmpl b/Documentation/DocBook/uio-howto.tmpl
>> index cd0e452..5210f8a 100644
>> --- a/Documentation/DocBook/uio-howto.tmpl
>> +++ b/Documentation/DocBook/uio-howto.tmpl
>> @@ -46,6 +46,13 @@ GPL version 2.
>> 
>> <revhistory>
>> 	<revision>
>> +	<revnumber>0.10</revnumber>
>> +	<date>2016-10-17</date>
>> +	<authorinitials>sch</authorinitials>
>> +	<revremark>Added generic hyperv driver
>> +		</revremark>
>> +	</revision>
>> +	<revision>
>> 	<revnumber>0.9</revnumber>
>> 	<date>2009-07-16</date>
>> 	<authorinitials>mst</authorinitials>
>> @@ -1033,6 +1040,61 @@ int main()
>> 
>> </chapter>
>> 
>> +<chapter id="uio_hv_generic" xreflabel="Using Generic driver for Hyper-V VMBUS">
>> +<?dbhtml filename="uio_hv_generic.html"?>
>> +<title>Generic Hyper-V UIO driver</title>
>> +	<para>
>> +	The generic driver is a kernel module named uio_hv_generic.
>> +	It supports devices on the Hyper-V VMBus similar to uio_pci_generic
>> +	on PCI bus.
>> +	</para>
>> +
>> +<sect1 id="uio_hv_generic_binding">
>> +<title>Making the driver recognize the device</title>
>> +	<para>
>> +Since the driver does not declare any device GUID's, it will not get loaded
>> +automatically and will not automatically bind to any devices, you must load it
>> +and allocate id to the driver yourself. For example, to use the network device
>> +GUID:
>> +	<programlisting>
>> + modprobe uio_hv_generic
>> + echo "f8615163-df3e-46c5-913f-f2d2f965ed0e" > /sys/bus/vmbus/drivers/uio_hv_generic/new_id
>> +	</programlisting>
>> +	</para>
>> +	<para>
>> +If there already is a hardware specific kernel driver for the device, the
>> +generic driver still won't bind to it, in this case if you want to use the
>> +generic driver (why would you?) you'll have to manually unbind the hardware
>> +specific driver and bind the generic driver, like this:
>> +	<programlisting>
>> +	  echo -n vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3 > /sys/bus/vmbus/drivers/hv_netvsc/unbind
>> +	  echo -n vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3 > /sys/bus/vmbus/drivers/uio_hv_generic/bind
>> +	</programlisting>
>> +	</para>
>> +	<para>
>> +You can verify that the device has been bound to the driver
>> +by looking for it in sysfs, for example like the following:
>> +	<programlisting>
>> +    ls -l /sys/bus/vmbus/devices/vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3/driver
>> +	</programlisting>
>> +Which if successful should print
>> +	<programlisting>
>> +  .../vmbus-ed963694-e847-4b2a-85af-bc9cfc11d6f3/driver -> ../../../bus/vmbus/drivers/uio_hv_generic
>> +	</programlisting>
>> +	</para>
>> +</sect1>
>> +
>> +<sect1 id="uio_hv_generic_internals">
>> +<title>Things to know about uio_hv_generic</title>
>> +	<para>
>> +On each interrupt, uio_hv_generic sets the Interrupt Disable bit.
>> +This prevents the device from generating further interrupts
>> +until the bit is cleared. The userspace driver should clear this
>> +bit before blocking and waiting for more interrupts.
>> +	</para>
>> +</sect1>
>> +</chapter>
>> +
>> <appendix id="app1">
>> <title>Further information</title>
>> <itemizedlist>
> 
> -- 
> Jani Nikula, Intel Open Source Technology Center
> --
> To unsubscribe from this list: send the line "unsubscribe linux-doc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the devel mailing list