- if_xl is locked, but not marked INTR_MPSAFE. Also, the mutex is marked MTX_RECURSE. - hifn is locked and INTR_MPSAFE. - ubsec is locked and INTR_MPSAFE.
1200 lines
26 KiB
Text
1200 lines
26 KiB
Text
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
|
|
<!ENTITY base CDATA "../..">
|
|
<!ENTITY date "$FreeBSD: www/en/projects/busdma/index.sgml,v 1.78 2004/04/13 05:32:21 rwatson Exp $">
|
|
<!ENTITY title "FreeBSD busdma and SMPng driver conversion project">
|
|
<!ENTITY email 'mux'>
|
|
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
|
|
|
|
<!-- Status levels -->
|
|
<!ENTITY status.na "<font color=green>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=yellow>Needs testing</font>">
|
|
<!ENTITY status.new "<font color=red>Not done</font>">
|
|
<!ENTITY status.unknown "<font color=red>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="#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.</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="platform-status"></a>
|
|
<h2>Platform Support Status</h2>
|
|
|
|
<table border=3>
|
|
<tr>
|
|
<th> Task </th>
|
|
<th> Responsible </th>
|
|
<th> Last updated </th>
|
|
<th> Status </th>
|
|
<th> Details </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>alpha</td>
|
|
<td>&a.gallatin;</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>amd64</td>
|
|
<td>&a.peter;</td>
|
|
<td>July 1, 2003</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.hmp;</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 border=3>
|
|
<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> 4.x status </th>
|
|
<th> Notes </th>
|
|
</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> &status.new; </td>
|
|
<td> kvtop() </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cs </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_dc </td>
|
|
<td> &a.mux; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.untested; </td>
|
|
<td> &status.new; </td>
|
|
<td> MPSAFE subject to use of MTX_RECURSE </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_de </td>
|
|
<td> &a.mux; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ed </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> kvtop() </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_en </td>
|
|
<td> &a.harti; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.untested; </td>
|
|
<td> &status.new; </td>
|
|
<td> Locking present; not yet marked INTR_MPSAFE? </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ep </td>
|
|
<td> &a.imp; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.na; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.na; </td>
|
|
<td> Mutes marked MTX_RECURSE. </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> &status.new; </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_gem </td>
|
|
<td> &a.tmm; </td>
|
|
<td> January 6, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> N/A </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_gx </td>
|
|
<td> </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys(); locking present; not marked INTR_MPSAFE? Mutex
|
|
marked MTX_RECURSE. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_hme </td>
|
|
<td> &a.tmm; </td>
|
|
<td> January 6, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> N/A </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> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lge </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lmc </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lnc </td>
|
|
<td> &a.obrien; </td>
|
|
<td> </td>
|
|
<td> &status.new; </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_mn </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </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_my </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_nge </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_pcn </td>
|
|
<td> &a.obrien; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys(); locking present; not yet marked INTR_MPSAFE? Mutex
|
|
marked MTX_RECURSE. </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> &status.new; </td>
|
|
<td> mostly busdma, except for vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_rl </td>
|
|
<td> &a.wpaul; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> Locking present; not yet marked INTR_MPSAFE? Mutex marked
|
|
MTX_RECURSE.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sf </td>
|
|
<td> </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys(); locking present; not yet marked INTR_MPSAFE? Mutex
|
|
marked MTX_RECURSE. </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.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> Locking present; not yet marked INTR_MPSAFE? Mutex marked
|
|
MTX_RECURSE. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sk </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </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> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ste </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ti </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_tl </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </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> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_txp </td>
|
|
<td> &a.will; </td>
|
|
<td> July 18, 2003 </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_vr </td>
|
|
<td> Christian S.J. Peron <maneo@bsdpro.com> </td>
|
|
<td> January 20, 2003 </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_wb </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </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> &status.unknown; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_xl </td>
|
|
<td> &a.mux; </td>
|
|
<td> April 13, 2004 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> Locking present; not marked as INTR_MPSAFE; mutex is marked
|
|
MTX_RECURSE. </td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<a name="storage-status"></a>
|
|
<h2>Storage Device Driver Status</h2>
|
|
|
|
<table border=3>
|
|
<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> 4.x status </th>
|
|
<th> Notes </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aac </td>
|
|
<td> &a.scottl; </td>
|
|
<td> February 8, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> PCI-64 capable, 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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aha </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> &status.new; </td>
|
|
<td> </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aic7xxx </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> &status.new; </td>
|
|
<td> </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> amr </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> asr </td>
|
|
<td> &a.obrien; </td>
|
|
<td> January 4, 2003 </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </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> &status.new; </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> &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> &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> &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> &status.new; </td>
|
|
<td> vtophys() </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> iir </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mlx </td>
|
|
<td> &a.scottl; </td>
|
|
<td> February 8, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mly </td>
|
|
<td> &a.scottl; </td>
|
|
<td> February 8, 2003 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.wip; </td>
|
|
<td> &status.new; </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> &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> &status.new; </td>
|
|
<td> vtophys(). Please contact &a.phk; for a possible source
|
|
of hardware. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> pst </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </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> &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> &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> &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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
</table>
|
|
<a name="misc-status"></a>
|
|
<h2>Miscellaneous Device Driver Status</h2>
|
|
|
|
<table border=3>
|
|
<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> 4.x status </th>
|
|
<th> Notes </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> agp </td>
|
|
<td> &a.cognet; </td>
|
|
<td> January 23, 2003 </td>
|
|
<td> &status.wip; </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> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> cs </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </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> &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> &status.wip; </td>
|
|
<td> vtophys(). The locking could use some review. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> exca </td>
|
|
<td> &a.imp; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> </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> &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> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> hea </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </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> &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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> meteor </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </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> &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> &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> &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.new; </td>
|
|
<td> &status.new; </td>
|
|
<td> a!=p should be clean, but requires further testing </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> wds </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> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<a name="doc-status"></a>
|
|
<h2>Documentation Status</h2>
|
|
|
|
<table border=3>
|
|
<tr>
|
|
<th> Task </th>
|
|
<th> Responsible </th>
|
|
<th> Last updated </th>
|
|
<th> Status </th>
|
|
<th> Notes </th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> manpages 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>
|