DragonFly-2.3.1.312.g12feb master sys/dev/disk/ahci ahci.c ahci.h ahci_attach.c ahci_cam.c ahci_dragonfly.c ahci_pm.c atascsi.h

Sepherosa Ziehau sepherosa at gmail.com
Fri Jun 19 04:38:19 PDT 2009


On Fri, Jun 19, 2009 at 3:02 PM, Matthew
Dillon<dillon at crater.dragonflybsd.org> wrote:
>
> commit 12feb9045df619d387b9ba31534687037610fe73
> Author: Matthew Dillon <dillon at apollo.backplane.com>
> Date:   Thu Jun 18 23:49:07 2009 -0700
>
>    AHCI - Intel fixes, error processing fixes.
>
>    * Allocate separate scratch space to enforce a reasonable alignment
>      for the READ LOG page.
>
>    * Fix numerous issues with READ LOG / NCQ error processing.  READ LOG
>      wasn't working at all before.
>
>    * Intel fixes.  Move the SDBE interrupt from the AsyncNotify-only
>      code to the general code.  Intel parts seem to use this interrupt
>      (and not DPE) to signal completion for NCQ commands, so we get
>      timeouts if we don't use it generally.
>
>    * Rearrange a great deal of code in a manner similar to how the
>      Sili driver was arranged.  Primarily: ATA_F_AUTOSENSE to
>      acquire D2H rfis's more reliably, and ATA_F_EXCLUSIVE.  More work
>      needs to be done.  Also move the PM probe code to the PM source
>      module.
>
>    * Add code to deal with D2H ERR fises.  These generate a DHRS
>      interrupt but only those which post an ERR in the task file
>      stop command processing.  This is not well documented in the
>      AHCI specs.
>
> Summary of changes:
>  sys/dev/disk/ahci/ahci.c           | 1223 +++++++++++++++---------------------
>  sys/dev/disk/ahci/ahci.h           |   30 +-
>  sys/dev/disk/ahci/ahci_attach.c    |   17 +
>  sys/dev/disk/ahci/ahci_cam.c       |   16 +-
>  sys/dev/disk/ahci/ahci_dragonfly.c |    2 +-
>  sys/dev/disk/ahci/ahci_pm.c        |  249 +++++++-
>  sys/dev/disk/ahci/atascsi.h        |    4 +
>  7 files changed, 809 insertions(+), 732 deletions(-)
>
> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/12feb9045df619d387b9ba31534687037610fe73

My screen is flooded by following kprints :P

@@ -1890,6 +1575,10 @@ ahci_unload_prdt(struct ahci_ccb *ccb)
bus_dmamap_unload(sc->sc_tag_data, dmap);
+ if (ccb->ccb_cmd_hdr->prdbc == 0) {
+ kprintf("%s: UNLOAD RESID WAS ZERO! tag=%d\n",
+ ATANAME(ap, xa->at), ccb->ccb_slot);
+ }
if (ccb->ccb_xa.flags & ATA_F_NCQ)
xa->resid = 0;
else

Best Regards,
sephe

-- 
Live Free or Die





More information about the Commits mailing list