Date: Fri, 10 Jun 2011 08:54:52 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/dev/ahci ahci.c src/sys/dev/mvs mvs.c src/sys/dev/siis siis.c Message-ID: <201106100855.p5A8tDka071984@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
mav 2011-06-10 08:54:52 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_8)
sys/dev/ahci ahci.c
sys/dev/mvs mvs.c
sys/dev/siis siis.c
Log:
SVN rev 222917 on 2011-06-10 08:54:52Z by mav
MFC r222285:
According to SATA specification, when Serial ATA Enclosure Management Bridge
(SEMB) is unable to communicate to Storage Enclosure Processor (SEP), in
response to hard and soft resets it should among other things return value
0x7F in Status register. The weird side is that it means DRQ bit set, which
tells that reset request is not completed. It would be fine if SEMB was the
only device on port. But if SEMB connected to PMP or built into it, it may
block access to other devices sharing same SATA port.
Make some tunings/fixes to soft-reset handling to workaround the issue:
- ahci(4): request CLO on the port after soft reset to ignore DRQ bit;
- siis(4): gracefully reinitialize port after soft reset timeout (hardware
doesn't detect reset request completion in this case);
- mvs(4): if PMP is used, send dummy soft-reset to the PMP port to make it
clear DRQ bit for us.
For now this makes quirks in ata_pmp.c, hiding SEMB ports of SiI3726/SiI4726
PMPs, less important.
Revision Changes Path
1.1.2.62 +13 -12 src/sys/dev/ahci/ahci.c
1.2.2.14 +34 -10 src/sys/dev/mvs/mvs.c
1.1.2.40 +18 -7 src/sys/dev/siis/siis.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106100855.p5A8tDka071984>
