Re: DragonFly-2.3.1.312.g12feb master sys/dev/disk/ahci ahci.c a
On Fri, Jun 19, 2009 at 3:02 PM, Matthew
Dillon<dillon@crater.dragonflybsd.org> wrote:
>
> commit 12feb9045df619d387b9ba31534687037610fe73
> Author: Matthew Dillon <dillon@apollo.backplane.com>
> Date: =A0 Thu Jun 18 23:49:07 2009 -0700
>
> =A0 =A0AHCI - Intel fixes, error processing fixes.
>
> =A0 =A0* Allocate separate scratch space to enforce a reasonable alignmen=
t
> =A0 =A0 =A0for the READ LOG page.
>
> =A0 =A0* Fix numerous issues with READ LOG / NCQ error processing. =A0REA=
D LOG
> =A0 =A0 =A0wasn't working at all before.
>
> =A0 =A0* Intel fixes. =A0Move the SDBE interrupt from the AsyncNotify-onl=
y
> =A0 =A0 =A0code to the general code. =A0Intel parts seem to use this inte=
rrupt
> =A0 =A0 =A0(and not DPE) to signal completion for NCQ commands, so we get
> =A0 =A0 =A0timeouts if we don't use it generally.
>
> =A0 =A0* Rearrange a great deal of code in a manner similar to how the
> =A0 =A0 =A0Sili driver was arranged. =A0Primarily: ATA_F_AUTOSENSE to
> =A0 =A0 =A0acquire D2H rfis's more reliably, and ATA_F_EXCLUSIVE. =A0More=
work
> =A0 =A0 =A0needs to be done. =A0Also move the PM probe code to the PM sou=
rce
> =A0 =A0 =A0module.
>
> =A0 =A0* Add code to deal with D2H ERR fises. =A0These generate a DHRS
> =A0 =A0 =A0interrupt but only those which post an ERR in the task file
> =A0 =A0 =A0stop command processing. =A0This is not well documented in the
> =A0 =A0 =A0AHCI specs.
>
> Summary of changes:
> =A0sys/dev/disk/ahci/ahci.c =A0 =A0 =A0 =A0 =A0 | 1223 +++++++++++++++---=
------------------
> =A0sys/dev/disk/ahci/ahci.h =A0 =A0 =A0 =A0 =A0 | =A0 30 +-
> =A0sys/dev/disk/ahci/ahci_attach.c =A0 =A0| =A0 17 +
> =A0sys/dev/disk/ahci/ahci_cam.c =A0 =A0 =A0 | =A0 16 +-
> =A0sys/dev/disk/ahci/ahci_dragonfly.c | =A0 =A02 +-
> =A0sys/dev/disk/ahci/ahci_pm.c =A0 =A0 =A0 =A0| =A0249 +++++++-
> =A0sys/dev/disk/ahci/atascsi.h =A0 =A0 =A0 =A0| =A0 =A04 +
> =A07 files changed, 809 insertions(+), 732 deletions(-)
>
> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/12feb9045df619d38=
7b9ba31534687037610fe73
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 =3D=3D 0) {
+ kprintf("%s: UNLOAD RESID WAS ZERO! tag=3D%d\n",
+ ATANAME(ap, xa->at), ccb->ccb_slot);
+ }
if (ccb->ccb_xa.flags & ATA_F_NCQ)
xa->resid =3D 0;
else
Best Regards,
sephe
--=20
Live Free or Die
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):