Adding the DDEKIT USB related documentation.
This commit is contained in:
104
projects/documentation/root/DdeKitUsb.txt
Normal file
104
projects/documentation/root/DdeKitUsb.txt
Normal file
@@ -0,0 +1,104 @@
|
||||
Information about MINIX 3 USB support
|
||||
======================================
|
||||
|
||||
We are using the driver portability layer called
|
||||
link:http://os.inf.tu-dresden.de/ddekit/[Device Driver Environment kit] to
|
||||
provide support for USB host on the MINIX 3 operating system. The Device Driver
|
||||
Environment was developed for reuse of legacy device drivers. It defines an
|
||||
operating system agnostic kernel application programming interface (API) and
|
||||
provides Linux 2.6.29 based legacy drivers for supporting USB-host among other
|
||||
things. DDE with USB host support has been ported to MINIX 3 by Dirk Vogd.
|
||||
|
||||
|
||||
Functional decomposition
|
||||
------------------------
|
||||
|
||||
|
||||
DdeKit
|
||||
~~~~~~~
|
||||
|
||||
DDEKIT provides a BSD licensed abstraction layer for driver development. This
|
||||
abstraction, defined in includes files, defines the following primitives: data
|
||||
types, memory allocation, paging, threading, semaphores, timers, low level
|
||||
hardware I/O, requesting interrupts and dma access. It is located inside the
|
||||
MINIX3 source tree at /usr/src/minix/include/ddekit and implemented in
|
||||
/usr/src/minix/lib/libddekit.
|
||||
|
||||
|
||||
Dde-linux26
|
||||
~~~~~~~~~~~~
|
||||
|
||||
The dde-linux26 is a GPLv2 package that uses ddekit host Linux device drivers.
|
||||
Using ddekit it replaces key parts of the Linux device driver model to be able
|
||||
to run drivers on a non Linux kernel. It contains large parts of the Linux
|
||||
2.6.29 source code in the contrib directory and provide abstractions for a the
|
||||
following type of drivers: common, block, common, net, partitions, scsi and usb.
|
||||
This code only depends on ddekit and is not MINIX 3 specific.
|
||||
|
||||
Dde-linux26-usb-drivers
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
The Dde-linux26-usb-drivers use dde-linux26 to implement an USB stack for MINIX.
|
||||
|
||||
|
||||
USB host controller driver (USBD)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The USB host controller driver is a MINIX 3 service that talks to the USB host
|
||||
controller hardware using established standards like EHCI and OHCI and mediates
|
||||
access to USB devices by implementing a virtual host controller driver.
|
||||
|
||||
|
||||
UsbStubDriver::
|
||||
For new device notification
|
||||
UsbHostControllerDriver::
|
||||
MINIX bus driver implementation using usbcore
|
||||
USBCORE::
|
||||
Linux library to implement host controllers
|
||||
EHCI::
|
||||
Standard way of talking to the usb host controller
|
||||
DDELinux::
|
||||
the support library for things like platform_device creation
|
||||
|
||||
|
||||
|
||||
USB class driver (mass storage/hid)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The USB drivers in MINIX3 will communicates with USB devices host controller
|
||||
over a virtual host controller interface provided by USBD. The class drivers
|
||||
uses the DDE kit and Linux drivers like SCSI to implement Their service.
|
||||
|
||||
|
||||
UsbClassStorage::
|
||||
implements a minix interface like block device
|
||||
DDE helpers::
|
||||
helpers like the SCSI lib part in case of the USB mass storage class
|
||||
VHCI::
|
||||
Virtual host controller as also used to provide usb over ethernet. This
|
||||
driver talks to USBD using grants and messages.
|
||||
|
||||
|
||||
Device manager (DEVMAN)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Devman is a device manager who's main goal is to enable hot-plugging of
|
||||
hardware. Based on events from USBD and a configuration file it will create
|
||||
device nodes and start or stop USB class drivers
|
||||
|
||||
|
||||
Features added to MINIX 3
|
||||
--------------------------
|
||||
|
||||
The project adds new features to the MINIX operating system:
|
||||
* A model to integrate Linux drivers.
|
||||
* A system to handle hotplugging of hardware.
|
||||
* An USB host implementation that can be used to access USB devices.
|
||||
|
||||
Runtime dependencies
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The first component to start is the device manager. The second component to
|
||||
start is the USB daemo. It connects to the device manager to register changes
|
||||
to the bus. Starting and stopping of driver happens by the device manager.
|
||||
|
||||
|
||||
7
projects/documentation/root/Makefile
Normal file
7
projects/documentation/root/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
SRC=DdeKitUsb.txt
|
||||
DST=$(SRC:%.txt=%.html)
|
||||
|
||||
website:${DST}
|
||||
|
||||
%.html:%.txt Makefile
|
||||
asciidoc $<
|
||||
Reference in New Issue
Block a user