genode/dde_linux
Sebastian Sumpf 3207b4eed0 USB: Performance improvements
Added SKB bitmap allocator, use Nic::Packet_allocator in packet stream, use slab
allocators on top of back-end AVL allocator, split allocators in cached/uncached
for general purpose/DMA allocation, added patch to original code to distinguish
cached or uncached memory requests, take advantage of and implement TX bursts
(or SKB batching), call interrupt handlers until they return unhandled.
2012-08-07 22:22:45 +02:00
..
patches USB: Performance improvements 2012-08-07 22:22:45 +02:00
run USB: Performance improvements 2012-08-07 22:22:45 +02:00
src/drivers/usb USB: Performance improvements 2012-08-07 22:22:45 +02:00
Makefile USB: Support usbnet and smsc95xx for omap4 2012-07-09 17:53:43 +02:00
README USB: Support usbnet and smsc95xx for omap4 2012-07-09 17:53:43 +02:00

Device drivers ported from the Linux kernel

USB
###

HID
~~~

Supports keyboard and mouse. A run script can be found under 'run/usb_hid.run'.

Configuration snippet:

!<start name="usb_drv">
!  <resource name="RAM" quantum="3M"/>
!  <provides><service name="Input"/></provides>
!  <config>
!    <hid/>
!  </config>
!</start>

Note: It has been observed that certain 1.0 versions of Qemu do not generate
mouse interrupts. The mouse driver should work correctly on Qemu 1.0.93 and
above.

Storage
~~~~~~~

Currently supports one USB storage device. Hot plugging has not been tested. A
run script can be found under 'run/usb_storage.run'.

Configuration snippet:

!<start name="usb_drv">
!  <resource name="RAM" quantum="2M"/>
!  <provides> <service name="Block"/> </provides>
!  <config><storage /></config>
!</start>


Network (Nic)
~~~~~~~~~~~~~

Supported on PandaBoard only using the 'smsc95xx' driver.

Configuration snippet:

!<start name="usb_drv">
!  <resource name="RAM" quantum="3M"/>
!  <provides>
!    <service name="Nic"/>
!    <service name="Input"/>
!  </provides>
!  <config>
!    <nic mac="2e:60:90:0c:4e:01" />
!    <hid/>
!  </config>
!</start>

Please observe that this setup starts the HID and Nic service at the same time.
Also there is the 'mac' attribute where one can specify the hardware address of
the network interface. This is necessary in case the EEPROM of the network card
cannot be accessed via the host controller making it impossible to retrieve the
devices hardware address. If this is the case and no 'mac' attribute is given a
fallback address will be assigned to the network device. Note that the fallback
address will always be the same.