1296 lines
		
	
	
	
		
			29 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			1296 lines
		
	
	
	
		
			29 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.130 2006/02/12 02:16:10 scottl Exp $">
 | |
| <!ENTITY title "FreeBSD busdma and SMPng driver conversion project">
 | |
| <!ENTITY email 'mux'>
 | |
| <!ENTITY % navincludes SYSTEM "../../includes.navdevelopers.sgml"> %navincludes;
 | |
| <!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
 | |
| 
 | |
| <!-- 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>alpha</td>
 | |
| 	<td>&a.ticso;</td>
 | |
| 	<td>November 14, 2005</td>
 | |
| 	<td>&status.done;</td>
 | |
| 	<td>There are 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>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_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_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_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_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_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> 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> vtophys(). Please contact &a.phk; for info/hardware. </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_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_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_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> May 30, 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_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_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_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> &a.scottl; </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> &a.scottl; </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> &a.scottl; </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> &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>   </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>   </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>
 |