Re: git: kernel - AHCI hotplug work to help support AMD chipsets

看板DFBSD_commit作者時間15年前 (2010/11/25 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
--000e0cd40658bb3de00495ceb745 Content-Type: text/plain; charset=ISO-8859-1 Thanks! I have one of these AMD motherboards on order and having working hotplug would be awesome. Tim On Mon, Nov 22, 2010 at 7:40 PM, Matthew Dillon < dillon@crater.dragonflybsd.org> wrote: > > commit 5502cf2442bc10db6925a4db0956131ae634ec95 > Author: Matthew Dillon <dillon@apollo.backplane.com> > Date: Mon Nov 22 18:25:33 2010 -0800 > > kernel - AHCI hotplug work to help support AMD chipsets > > * Change the Hot-plug mechanics to something which appears to work for > both NVidia and AMD AHCI chipsets, and hopefully Intel too (untested). > > This appears to fix hot-plug for AMD's SB850-based AHCI (circa AM3 > socket > mobos). > > * Basically the SCTL.DET and CMD.SUD bits control the behavior of the > SATA Phy, but in typical Intel fashion the specification is seriously > lacking on how events such as hot-plug are handled based on what state > the phy is in. > > Previously we were looking for phy transition events while holding > the port in the RESET state (DET=1, SUD=1), which worked up till this > point. But it doesn't work with AMD's SB850-based AHCI. > > Now we are attempting to do the same thing with the port in > the SPIN-UP/NORMAL state (DET=0, SUD=1). > > * The AHCI documentation wants us to use the LISTEN mode (DET=0, SUD=0) > and get a SERR.DIAG.X event for hot-plug but this doesn't seem to work > very reliably. In fact, 10.10.4 is ambiguous for the case > where Staggered-spin-up is not supported since SUD is wired to '1' > in that case (making LISTEN mode impossible). > > Summary of changes: > sys/dev/disk/ahci/ahci.c | 96 > ++++++++++++++++++++++++++-------------------- > 1 files changed, 54 insertions(+), 42 deletions(-) > > > http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5502cf2442bc10db6925a4db0956131ae634ec95 > > > -- > DragonFly BSD source repository > --000e0cd40658bb3de00495ceb745 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <font face=3D"tahoma,sans-serif">Thanks! =A0I have one of these AMD motherb= oards on order and having working hotplug would be awesome.<br clear=3D"all= "></font><div><br></div>Tim<br> <br><br><div class=3D"gmail_quote">On Mon, Nov 22, 2010 at 7:40 PM, Matthew= Dillon <span dir=3D"ltr">&lt;<a href=3D"mailto:dillon@crater.dragonflybsd.= org">dillon@crater.dragonflybsd.org</a>&gt;</span> wrote:<br><blockquote cl= ass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;p= adding-left:1ex;"> <br> commit 5502cf2442bc10db6925a4db0956131ae634ec95<br> Author: Matthew Dillon &lt;<a href=3D"mailto:dillon@apollo.backplane.com">d= illon@apollo.backplane.com</a>&gt;<br> Date: =A0 Mon Nov 22 18:25:33 2010 -0800<br> <br> =A0 =A0kernel - AHCI hotplug work to help support AMD chipsets<br> <br> =A0 =A0* Change the Hot-plug mechanics to something which appears to work = for<br> =A0 =A0 =A0both NVidia and AMD AHCI chipsets, and hopefully Intel too (unt= ested).<br> <br> =A0 =A0 =A0This appears to fix hot-plug for AMD&#39;s SB850-based AHCI (ci= rca AM3 socket<br> =A0 =A0 =A0mobos).<br> <br> =A0 =A0* Basically the SCTL.DET and CMD.SUD bits control the behavior of t= he<br> =A0 =A0 =A0SATA Phy, but in typical Intel fashion the specification is ser= iously<br> =A0 =A0 =A0lacking on how events such as hot-plug are handled based on wha= t state<br> =A0 =A0 =A0the phy is in.<br> <br> =A0 =A0 =A0Previously we were looking for phy transition events while hold= ing<br> =A0 =A0 =A0the port in the RESET state (DET=3D1, SUD=3D1), which worked up= till this<br> =A0 =A0 =A0point. =A0But it doesn&#39;t work with AMD&#39;s SB850-based AH= CI.<br> <br> =A0 =A0 =A0Now we are attempting to do the same thing with the port in<br> =A0 =A0 =A0the SPIN-UP/NORMAL state (DET=3D0, SUD=3D1).<br> <br> =A0 =A0* The AHCI documentation wants us to use the LISTEN mode (DET=3D0, = SUD=3D0)<br> =A0 =A0 =A0and get a SERR.DIAG.X event for hot-plug but this doesn&#39;t s= eem to work<br> =A0 =A0 =A0very reliably. =A0In fact, 10.10.4 is ambiguous for the case<br= > =A0 =A0 =A0where Staggered-spin-up is not supported since SUD is wired to = &#39;1&#39;<br> =A0 =A0 =A0in that case (making LISTEN mode impossible).<br> <br> Summary of changes:<br> =A0sys/dev/disk/ahci/ahci.c | =A0 96 ++++++++++++++++++++++++++------------= --------<br> =A01 files changed, 54 insertions(+), 42 deletions(-)<br> <br> <a href=3D"http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/5502cf24= 42bc10db6925a4db0956131ae634ec95" target=3D"_blank">http://gitweb.dragonfly= bsd.org/dragonfly.git/commitdiff/5502cf2442bc10db6925a4db0956131ae634ec95</= a><br> <font color=3D"#888888"><br> <br> --<br> DragonFly BSD source repository<br> </font></blockquote></div><br> --000e0cd40658bb3de00495ceb745--
文章代碼(AID): #1CxLBgUK (DFBSD_commit)
文章代碼(AID): #1CxLBgUK (DFBSD_commit)