1539 lines
33 KiB
Text
1539 lines
33 KiB
Text
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
|
|
<!ENTITY base CDATA "../..">
|
|
<!ENTITY date "$FreeBSD: www/en/projects/busdma/index.sgml,v 1.147 2006/09/01 09:17:38 joel Exp $">
|
|
<!ENTITY title "FreeBSD busdma and SMPng driver conversion project">
|
|
<!ENTITY email 'mux'>
|
|
<!ENTITY % navinclude.developers "INCLUDE">
|
|
|
|
<!-- Status levels -->
|
|
<!ENTITY status.na "<font color=magenta>N/A</font>">
|
|
<!ENTITY status.done "<font color=green>Done</font>">
|
|
<!ENTITY status.wip "<font color=blue>In progress</font>">
|
|
<!ENTITY status.untested "<font color=orange>Needs testing</font>">
|
|
<!ENTITY status.new "<font color=red>Not done</font>">
|
|
<!ENTITY status.unknown "<font color=purple>Unknown</font>">
|
|
|
|
<!-- The list of contributors was moved to a separate file so that it can
|
|
be used by other documents in the FreeBSD web site. -->
|
|
|
|
<!ENTITY % developers SYSTEM "../../developers.sgml"> %developers;
|
|
|
|
]>
|
|
|
|
<html>
|
|
&header;
|
|
|
|
<h2>Contents</h2>
|
|
<ul>
|
|
<li><a href="#goal">Project Goal</a></li>
|
|
<li><a href="#resources">Resources and Links</a></li>
|
|
<li><a href="#platform-status">Platform Support Status</a></li>
|
|
<li><a href="#ifnet-status">Network Interface Driver Status</a></li>
|
|
<li><a href="#storage-status">Storage Device Driver Status</a></li>
|
|
<li><a href="#misc-status">Miscellaneous Device Driver Status</a></li>
|
|
<li><a href="#doc-status">Documentation Status</a></li>
|
|
</ul>
|
|
|
|
<a name="goal"></a>
|
|
<h2>Project Goal</h2>
|
|
|
|
<p><b>busdma</b></p>
|
|
<p>The busdma interfaces permit hardware device drivers to operate
|
|
on a variety of platforms avoiding the encoding of platform-specific
|
|
access methods into drivers. This lowers the maintenance costs
|
|
for drivers across platforms, and improves the chances that a driver
|
|
will "just work" on a new platform. Modifying a driver to make use
|
|
of busdma is relatively straight forward, but does require
|
|
familiarity with both the device driver and busdma primitives.
|
|
For busdma to be used in FreeBSD, two sets of changes are generally
|
|
required: adaptation of the busdma implementation to run on all
|
|
platforms, and adaptation of drivers to use the framework. As such,
|
|
status information on this project is broken down into platform
|
|
support, and driver support (sorted by category). Completing
|
|
this work requires a thorough audit of the system device drivers,
|
|
then prioritized conversion of drivers. Drivers are also
|
|
expected to use bus_space functions, and this column is
|
|
sometimes used to denote a driver in need of conversion to
|
|
bus_space as well.</p>
|
|
|
|
<p><b>INTR_MPSAFE</b></p>
|
|
<p>Hardware drivers register their interrupt handler with the
|
|
<code>bus_setup_intr()</code> function. Setting the flag
|
|
<code>INTR_MPSAFE</code> tells the system interrupt code
|
|
to call the interrupt routine without holding the Giant
|
|
mutex. This can give a significant performance gain on SMP
|
|
systems.</p>
|
|
<p>Drivers can set this flag even if they are not fully locked
|
|
down as long as their interrupt routine is careful about not
|
|
touching other data structures in the driver. An easy way to
|
|
do this is to check and clear the hardware interrupt status
|
|
registers and then schedule the interrupt processing for a
|
|
taskqueue or kernel thread.</p>
|
|
|
|
<p><b>SMPng locked</b></p>
|
|
<p>Drivers should employ mutexes and sx locks to protect their
|
|
data structures and hardware registers from competing threads.
|
|
Mutex operations are somewhat expensive, so a good strategy is
|
|
combine as many atomic operations into a single mutex acquisition
|
|
as possible.</p>
|
|
|
|
<p><b>p!=a safety</b></p>
|
|
<p>Intel PAE support requires that pointers and physical address
|
|
representations be of differing sizes. This means that drivers
|
|
must be written to use vm_paddr_t or bus_addr_t rather than
|
|
assuming that physical addresses can be represented using a
|
|
void *. In addition, format strings and casts must be
|
|
carefully handled.</p>
|
|
|
|
<p>The task list below is not intended to be complete, but does
|
|
represent a set of relevant and/or important components of the
|
|
overall work. The "Responsible" field identifies a developer who
|
|
has expressed willingness to be responsible for completing the
|
|
identified task; this doesn't preclude others working on it,
|
|
but suggests that coordination with the responsible party might
|
|
be appropriate so as to avoid unnecessary duplication of work,
|
|
and to maximize forward progress. If beginning work on a new
|
|
area of substantial size, or one that appears unclaimed, it may
|
|
be worth dropping an e-mail to &a.mux; to see if any progress
|
|
has been made.</p>
|
|
|
|
<p>The definition of the date field varies depending on the status
|
|
of a task. For completed tasks, it refers to the date completed
|
|
or reported completed. For in-progress tasks, it refers to the
|
|
date of the last update of the entry. For stalled tasks, it
|
|
refers to the date that the task was declared stalled. For
|
|
new tasks, it refers to the date the task was added to the list.</p>
|
|
|
|
<p>Tasks are sorted first by status, then by date.</p>
|
|
|
|
<a name="resources"></a>
|
|
<h2>Resources and Links</h2>
|
|
<p>A series of manual pages related to this project can be found
|
|
here:</p>
|
|
|
|
<ul>
|
|
<li>Physical Address Extensions -
|
|
<a href="http://www.freebsd.org/cgi/man.cgi?query=pae&apropos=0&sektion=4&manpath=FreeBSD+6.0-current">pae(4)</a></li>
|
|
<li>Bus and Machine-independent DMA Mapping Interface -
|
|
<a href="http://www.freebsd.org/cgi/man.cgi?query=busdma&apropos=0&sektion=9&manpath=FreeBSD+6.0-current">bus_dma(9)</a></li>
|
|
<li>Machine-dependent part of the Virtual Memory (VM) system -
|
|
<a href="http://www.freebsd.org/cgi/man.cgi?query=pmap&apropos=0&sektion=9&manpath=FreeBSD+6.0-current">pmap(9)</a></li>
|
|
<li>Resource Management Functions -
|
|
<a href="http://www.freebsd.org/cgi/man.cgi?query=rman&apropos=0&sektion=9&manpath=FreeBSD+6.0-current">rman(9)</a></li>
|
|
</ul>
|
|
|
|
<a name="platform-status"></a>
|
|
<h2>Platform Support Status</h2>
|
|
|
|
<table class="tblbasic">
|
|
<tr>
|
|
<th> Task </th>
|
|
<th> Responsible </th>
|
|
<th> Last updated </th>
|
|
<th> Status </th>
|
|
<th> Details </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>amd64</td>
|
|
<td>&a.peter;</td>
|
|
<td>July 1, 2003</td>
|
|
<td>&status.done;</td>
|
|
<td>Fully supported.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>arm</td>
|
|
<td>&a.cognet;</td>
|
|
<td>December 23, 2005</td>
|
|
<td>&status.done;</td>
|
|
<td>Fully supported.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>ia64</td>
|
|
<td>&a.marcel;</td>
|
|
<td>December 10, 2002</td>
|
|
<td>&status.done;</td>
|
|
<td>There may be problems for systems with large amounts
|
|
of memory.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>i386</td>
|
|
<td>&a.sam;</td>
|
|
<td>December 9, 2002</td>
|
|
<td>&status.done;</td>
|
|
<td>Fully supported.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>powerpc</td>
|
|
<td>&a.grehan;</td>
|
|
<td>January 15, 2003</td>
|
|
<td>&status.done;</td>
|
|
<td>Fully supported.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>sparc64</td>
|
|
<td>&a.tmm;</td>
|
|
<td>January 6, 2003</td>
|
|
<td>&status.done;</td>
|
|
<td>Fully supported.</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<a name="ifnet-status"></a>
|
|
<h2>Network Interface Driver Status</h2>
|
|
|
|
<table class="tblbasic">
|
|
<tr>
|
|
<th> Driver </th>
|
|
<th> Responsible </th>
|
|
<th> Last updated </th>
|
|
<th> busdma </th>
|
|
<th> INTR_MPSAFE </th>
|
|
<th> SMPng locked </th>
|
|
<th> a!=p </th>
|
|
<th> Notes </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_an </td>
|
|
<td> </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ar </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> kvtop() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_arl </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ath </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_aue </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_awi </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_axe </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_bce </td>
|
|
<td> </td>
|
|
<td> August 25, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_bfe </td>
|
|
<td> &a.silby; </td>
|
|
<td> August 23, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_bge </td>
|
|
<td> &a.wpaul; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cdce </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cnw </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cp </td>
|
|
<td> &a.rik; </td>
|
|
<td> October 31, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cs </td>
|
|
<td> &a.imp; </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> Needs bus_space conversion </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ct </td>
|
|
<td> &a.rik; </td>
|
|
<td> October 31, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cue </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cx </td>
|
|
<td> &a.rik; </td>
|
|
<td> June 24, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_dc </td>
|
|
<td> &a.mux; </td>
|
|
<td> August 19, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_de </td>
|
|
<td> &a.mux; </td>
|
|
<td> August 17, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ed </td>
|
|
<td> &a.imp; </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_em </td>
|
|
<td> &a.pdeuskar; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_en </td>
|
|
<td> &a.harti; </td>
|
|
<td> November 2, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> Locking present; not yet marked INTR_MPSAFE? </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ep </td>
|
|
<td> &a.mdodd;,&a.imp; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ex </td>
|
|
<td> &a.imp; </td>
|
|
<td> Dcember 23, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_fatm </td>
|
|
<td> &a.harti; </td>
|
|
<td> November 2, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_fwe </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_fxp </td>
|
|
<td> &a.mux; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_gem </td>
|
|
<td> &a.tmm; </td>
|
|
<td> July 31, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_hatm </td>
|
|
<td> &a.harti; </td>
|
|
<td> November 2, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_hme </td>
|
|
<td> &a.tmm; </td>
|
|
<td> January 30, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_idt </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ipw </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_iwi </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ixgb </td>
|
|
<td> </td>
|
|
<td> August 21, 2006 </td>
|
|
<td> &status.untested; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_kue </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_le </td>
|
|
<td> &a.marius; </td>
|
|
<td> January 31, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lge </td>
|
|
<td> </td>
|
|
<td> November 23, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lmc </td>
|
|
<td> </td>
|
|
<td> February 11, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> Untested on PAE </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_mn </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys(). Please contact &a.phk; for info/hardware. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_mxge </td>
|
|
<td> &a.gallatin; </td>
|
|
<td> August 23, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_my </td>
|
|
<td> </td>
|
|
<td> August 17, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_nfe </td>
|
|
<td> </td>
|
|
<td> August 23, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_nge </td>
|
|
<td> </td>
|
|
<td> August 17, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_nve </td>
|
|
<td> </td>
|
|
<td> November 23, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_pcn </td>
|
|
<td> &a.obrien; </td>
|
|
<td> August 19, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_pdq </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> Mostly busdma, except for vtophys(). </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ral </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ray </td>
|
|
<td> </td>
|
|
<td> August 27, 2006 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_re </td>
|
|
<td> </td>
|
|
<td> May 30, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_rl </td>
|
|
<td> &a.wpaul; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_rue </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sf </td>
|
|
<td> </td>
|
|
<td> August 19, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sis </td>
|
|
<td> &a.wpaul; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sk </td>
|
|
<td> </td>
|
|
<td> August 24, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sn </td>
|
|
<td> &a.imp; </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_snc </td>
|
|
<td> </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> pc98 only device (although it could work with many
|
|
cardbus bridges) </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sr </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ste </td>
|
|
<td> </td>
|
|
<td> August 31, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_stge </td>
|
|
<td> &a.yongari; </td>
|
|
<td> August 23, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ti </td>
|
|
<td> </td>
|
|
<td> December 13, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_tl </td>
|
|
<td> </td>
|
|
<td> September 15, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_tx </td>
|
|
<td> &a.mux; </td>
|
|
<td> April 19, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.untested; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_txp </td>
|
|
<td> </td>
|
|
<td> September 22, 2005 </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_udav </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ural </td>
|
|
<td> </td>
|
|
<td> September 3, 2006 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_vge </td>
|
|
<td> </td>
|
|
<td> August 23, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_vr </td>
|
|
<td> </td>
|
|
<td> April 23, 2004 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_vx </td>
|
|
<td> </td>
|
|
<td> September 22, 2005 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> Uses PIO to copy mbufs to and from hardware. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_wb </td>
|
|
<td> </td>
|
|
<td> September 22, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_wi </td>
|
|
<td> &a.sam;, &a.imp; </td>
|
|
<td> November 4, 2003 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> This driver needs lots of help </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_xe </td>
|
|
<td> &a.imp; </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_xl </td>
|
|
<td> &a.mux; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<a name="storage-status"></a>
|
|
<h2>Storage Device Driver Status</h2>
|
|
|
|
<table class="tblbasic">
|
|
<tr>
|
|
<th> Driver </th>
|
|
<th> Responsible </th>
|
|
<th> Last updated </th>
|
|
<th> busdma </th>
|
|
<th> INTR_MPSAFE </th>
|
|
<th> SMPng locked </th>
|
|
<th> a!=p </th>
|
|
<th> Notes </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aac </td>
|
|
<td> </td>
|
|
<td> January 31, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> Not endian clean. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> adv </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aha </td>
|
|
<td> </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> Uses BUSDMA, but may pun bus address with host address. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ahb </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ahc </td>
|
|
<td> &a.gibbs; </td>
|
|
<td> January 31, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ahd </td>
|
|
<td> &a.gibbs; </td>
|
|
<td> January 31, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aic </td>
|
|
<td> </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> Neeeds evaluation </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> amd </td>
|
|
<td> </td>
|
|
<td> December 14, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> amr </td>
|
|
<td> </td>
|
|
<td> January 30, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> asr </td>
|
|
<td> </td>
|
|
<td> January 4, 2003 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys(). Requires major work. A new I2O framework would be desirable. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ata </td>
|
|
<td> &a.sos; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> buslogic </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ciss </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ct </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> dpt </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> fdc </td>
|
|
<td> </td>
|
|
<td> December 23, 2005 </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> Needs evaluation </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ida </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> iir </td>
|
|
<td> </td>
|
|
<td> March 1, 2006 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> 64-bit DMA without bouncing is possible, but needs work. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> isp </td>
|
|
<td> </td>
|
|
<td> February 8, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ips </td>
|
|
<td> </td>
|
|
<td> January 30, 2005</td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mlx </td>
|
|
<td> </td>
|
|
<td> February 8, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mly </td>
|
|
<td> </td>
|
|
<td> February 8, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mpt </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ncr </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys(). Please contact &a.phk; for a possible source
|
|
of hardware. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ncv </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> Needs evaluation </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> nsp </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> &status.unknown; </td>
|
|
<td> Needs evaluation </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> pst </td>
|
|
<td> </td>
|
|
<td> April 11, 2003 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> stg </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> At least, it looks like it may well be. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> sym </td>
|
|
<td> </td>
|
|
<td> December 19, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> trm </td>
|
|
<td> &a.cognet; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> twe </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> wds </td>
|
|
<td> </td>
|
|
<td> February 2, 2005 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
</table>
|
|
<a name="misc-status"></a>
|
|
<h2>Miscellaneous Device Driver Status</h2>
|
|
|
|
<table class="tblbasic">
|
|
<tr>
|
|
<th> Driver </th>
|
|
<th> Responsible </th>
|
|
<th> Last updated </th>
|
|
<th> busdma </th>
|
|
<th> INTR_MPSAFE </th>
|
|
<th> SMPng locked </th>
|
|
<th> a!=p </th>
|
|
<th> Notes </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> agp </td>
|
|
<td> </td>
|
|
<td> October 31, 2005 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> bktr </td>
|
|
<td> &a.cognet; </td>
|
|
<td> January 15, 2003 </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> digi </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> drm </td>
|
|
<td> &a.anholt; </td>
|
|
<td> October 27, 2003 </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> vtophys(). The locking could use some review. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> fb </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> firewire </td>
|
|
<td> &a.simokawa; </td>
|
|
<td> April 17, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> hfa </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> hifn </td>
|
|
<td> &a.sam; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> musycc </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys(). Please contact &a.phk; for info/hardware. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> pcm </td>
|
|
<td> &a.cognet; </td>
|
|
<td> February 20, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ubsec </td>
|
|
<td> &a.sam; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() is used in debugging printf. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> usb </td>
|
|
<td> &a.jmg; </td>
|
|
<td> July 24, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.untested; </td>
|
|
<td> a!=p should be clean, but requires further testing. </td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<a name="doc-status"></a>
|
|
<h2>Documentation Status</h2>
|
|
|
|
<table class="tblbasic">
|
|
<tr>
|
|
<th> Task </th>
|
|
<th> Responsible </th>
|
|
<th> Last updated </th>
|
|
<th> Status </th>
|
|
<th> Notes </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> Manual pages for the busdma API </td>
|
|
<td> &a.hmp; </td>
|
|
<td> January 15, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
</table>
|
|
|
|
&footer;
|
|
</body>
|
|
</html>
|