682 lines
13 KiB
Text
682 lines
13 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.15 2002/12/10 15:11:03 rwatson Exp $">
|
|
<!ENTITY title "FreeBSD busdma driver conversion project">
|
|
<!ENTITY email 'mux'>
|
|
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
|
|
|
|
<!-- Status levels -->
|
|
<!ENTITY status.done "<font color=green>Done</font>">
|
|
<!ENTITY status.wip "<font color=blue>In progress</font>">
|
|
<!ENTITY status.new "<font color=red>Not done</font>">
|
|
<!ENTITY status.resolved "<font color=green>Resolved</font>">
|
|
<!ENTITY status.unresolved "<font color=red>Unresolved</font>">
|
|
|
|
<!-- The list of contributors was moved to a seperate 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>
|
|
</ul>
|
|
|
|
<a name="goal"></a>
|
|
<h2>Project Goal</h2>
|
|
|
|
<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>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> </td>
|
|
<td> </td>
|
|
<td>&status.wip;</td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>ia64</td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td>&status.new;</td>
|
|
<td> </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> </td>
|
|
<td> </td>
|
|
<td>&status.new;</td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>sparc64</td>
|
|
<td>&a.mux;</td>
|
|
<td>December 9, 2002</td>
|
|
<td>&status.wip;</td>
|
|
<td>Mbuf busdma interfaces not yet implemented.</td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<a name="ifnet-status"></a>
|
|
<h2>Network Interface Driver 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> if_ar </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> kvtop() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_bge </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_cs </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_dc </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ed </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> kvtop() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_em </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_en </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_fxp </td>
|
|
<td> &a.mux; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.wip; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_fwe </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_gem </td>
|
|
<td> &a.tmm; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.wip; </td>
|
|
<td> Uses old busdma interface. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_gx </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_hme </td>
|
|
<td> &a.tmm; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.wip; </td>
|
|
<td> Uses old busdma interface. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_idt </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ie </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> kvtop() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lge </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lmc </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_lnc </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_my </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_nge </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_pdq </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> mostly busdma, except for vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_rl </td>
|
|
<td> &a.wpaul; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sis </td>
|
|
<td> &a.wpaul; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_sr </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_ti </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_tx </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_txp </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> if_xl </td>
|
|
<td> &a.mux; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.wip; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<a name="storage-status"></a>
|
|
<h2>Storage Device Driver 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> aac </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> Not 64-bit-safe </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aha </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> adv </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ahb </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> aic7xxx </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> amr </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> asr </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ata </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> buslogic </td>
|
|
<td> </td>
|
|
<td> </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> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> dpt </td>
|
|
<td> </td>
|
|
<td> </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> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> iir </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> isp </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mlx </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mly </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> mpt </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> pst </td>
|
|
<td> </td>
|
|
<td> </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> At least, it looks like it may well be. </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> sym </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> trm </td>
|
|
<td> &a.cognet; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.wip; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> twe </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
</table>
|
|
<a name="misc-status"></a>
|
|
<h2>Miscellaneous Device Driver 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> bktr </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ct </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> cs </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> digi </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> drm </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> exca </td>
|
|
<td> &a.imp; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> fb </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> firewire </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> hea </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> hfa </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> hifn </td>
|
|
<td> &a.sam; </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> musycc </td>
|
|
<td> </td>
|
|
<td> </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> ubsec </td>
|
|
<td> &a.sam; </td>
|
|
<td> December 9, 2002</td>
|
|
<td> &status.done; </td>
|
|
<td> vtophys() is used in debugging printf </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> usb </td>
|
|
<td> &a.joe; </td>
|
|
<td> December 10, 2002 </td>
|
|
<td> &status.new; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td> wds </td>
|
|
<td> </td>
|
|
<td> December 9, 2002 </td>
|
|
<td> &status.done; </td>
|
|
<td> vtophys() </td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
&footer;
|
|
</body>
|
|
</html>
|