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

Matthew Dillon dillon at crater.dragonflybsd.org
Mon Nov 22 18:41:21 PST 2010


commit 5502cf2442bc10db6925a4db0956131ae634ec95
Author: Matthew Dillon <dillon at 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





More information about the Commits mailing list