Add PCIe Hot-Plug report from jmg

This commit is contained in:
Benjamin Kaduk 2015-10-18 21:54:09 +00:00
parent 8933cce619
commit 1e216065b4
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=47620

View file

@ -3117,4 +3117,73 @@
</help>
</project>
<project cat='kern'>
<title>Adding PCIe Hot-plug Support</title>
<contact>
<person>
<name>
<given>John-Mark</given>
<common>Gurney</common>
</name>
<email>jmg@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="http://p4db.FreeBSD.org/depotTreeBrowser.cgi?FSPC=//depot/projects/pciehotplug">PCIe
Hot-plug Perforce Branch</url>
<url href="https://svnweb.FreeBSD.org/changeset/base/r281874">Commit
adding bridge save/restore.</url>
<url href="https://github.com/FreeBSDFoundation/freebsd/tree/pciehp">Github
branch with patches</url>
</links>
<body>
<p>PCI Express (PCIe) hot-plug is used on both laptops and
servers to allow peripheral devices to be added or removed while
the system is running. Laptops commonly include hot-pluggable
PCIe as either an ExpressCard slot or Thunderbolt interface.
ExpressCard has built-in USB support that is already supported by
&os;, but ExpressCard PCIe devices like Gigabit Ethernet adapters
and eSATA cards are only supported when they are present at boot,
and their removal may cause &os; to crash.</p>
<p>The goal of this project is to allow these devices to be
inserted and removed while &os; is running. This work will provide
the basic infrastructure to support adding and removing devices,
though it is expected that additional work will be needed to
update individual drivers to support hot-plug.</p>
<p>Current testing is focused on getting a simple UART device
functional. Basic hot swap is currently functional.</p>
<p>A set of the patches for the work done in this project is
now available on github.com.
</p>
</body>
<sponsor>
The FreeBSD Foundation
</sponsor>
<help>
<task>
<p>Get suspend/resume functional by save/restoring the necessary
registers. This should be addressed by r281874.</p>
</task>
<task>
<p>Make sure that upon suspend, devices are removed so that we
are not fooled if they are replaced with different devices while
the machine is suspended.</p>
</task>
<task>
<p>Improve how state transitions are handled, possibly by
using a proper state machine.</p>
</task>
</help>
</project>
</report>