Re: DragonFly-2.3.1.312.g12feb master sys/dev/disk/ahci ahci.c a

看板DFBSD_commit作者時間16年前 (2009/06/20 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
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
文章代碼(AID): #1AEz9h00 (DFBSD_commit)
文章代碼(AID): #1AEz9h00 (DFBSD_commit)