From owner-cvs-src-old@FreeBSD.ORG Fri Jun 10 08:55:17 2011 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 095181065678 for ; Fri, 10 Jun 2011 08:55:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 688DB8FC08 for ; Fri, 10 Jun 2011 08:55:13 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id p5A8tDU2071985 for ; Fri, 10 Jun 2011 08:55:13 GMT (envelope-from mav@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id p5A8tDka071984 for cvs-src-old@freebsd.org; Fri, 10 Jun 2011 08:55:13 GMT (envelope-from mav@repoman.freebsd.org) Message-Id: <201106100855.p5A8tDka071984@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to mav@repoman.freebsd.org using -f From: Alexander Motin Date: Fri, 10 Jun 2011 08:54:52 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/sys/dev/ahci ahci.c src/sys/dev/mvs mvs.c src/sys/dev/siis siis.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Jun 2011 08:55:17 -0000 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