Re: git: kernel - AHCI hotplug work to help support AMD chipsets
--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"><<a href=3D"mailto:dillon@crater.dragonflybsd.=
org">dillon@crater.dragonflybsd.org</a>></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 <<a href=3D"mailto:dillon@apollo.backplane.com">d=
illon@apollo.backplane.com</a>><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'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't work with AMD'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'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 =
'1'<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--
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):