From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 04:24:21 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id CEDFC522; Wed, 30 Apr 2014 04:24:21 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id BB28A1351; Wed, 30 Apr 2014 04:24:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3U4OL0V026294; Wed, 30 Apr 2014 04:24:21 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3U4OL1o026292; Wed, 30 Apr 2014 04:24:21 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201404300424.s3U4OL1o026292@svn.freebsd.org> From: Devin Teske Date: Wed, 30 Apr 2014 04:24:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: svn commit: r265126 - stable/4/lib/libdisk X-SVN-Group: stable-other MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 04:24:21 -0000 Author: dteske Date: Wed Apr 30 04:24:21 2014 New Revision: 265126 URL: http://svnweb.freebsd.org/changeset/base/265126 Log: Teach libdisk about mfid devices. This is a direct commit to stable/4 since stable/5 and newer have r105681 which made this code obsolete. Modified: stable/4/lib/libdisk/create_chunk.c stable/4/lib/libdisk/disk.c Modified: stable/4/lib/libdisk/create_chunk.c ============================================================================== --- stable/4/lib/libdisk/create_chunk.c Wed Apr 30 04:05:47 2014 (r265125) +++ stable/4/lib/libdisk/create_chunk.c Wed Apr 30 04:24:21 2014 (r265126) @@ -304,6 +304,8 @@ MakeDev(struct chunk *c1, const char *pa cmaj = 109, p += 4; else if (!strncmp(p, "ipsd", 4)) cmaj = 176, p += 4; + else if (!strncmp(p, "mfid", 4)) + cmaj = 201, p += 4; else if (!strncmp(p, "mlxd", 4)) cmaj = 131, p += 4; else if (!strncmp(p, "amrd", 4)) Modified: stable/4/lib/libdisk/disk.c ============================================================================== --- stable/4/lib/libdisk/disk.c Wed Apr 30 04:05:47 2014 (r265125) +++ stable/4/lib/libdisk/disk.c Wed Apr 30 04:24:21 2014 (r265126) @@ -486,9 +486,9 @@ Collapse_Disk(struct disk *d) #endif #ifdef PC98 -static char * device_list[] = {"wd", "aacd", "ad", "da", "afd", "fla", "idad", "mlxd", "amrd", "twed", "ar", "fd", 0}; +static char * device_list[] = {"wd", "aacd", "ad", "da", "afd", "fla", "idad", "mfid", "mlxd", "amrd", "twed", "ar", "fd", 0}; #else -static char * device_list[] = {"aacd", "ad", "da", "afd", "fla", "idad", "ipsd", "mlxd", "amrd", "twed", "ar", "fd", 0}; +static char * device_list[] = {"aacd", "ad", "da", "afd", "fla", "idad", "ipsd", "mfid", "mlxd", "amrd", "twed", "ar", "fd", 0}; #endif int qstrcmp(const void* a, const void* b) { From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 04:28:49 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 2E714677; Wed, 30 Apr 2014 04:28:49 +0000 (UTC) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail0.glenbarber.us", Issuer "Gandi Standard SSL CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id F029D1364; Wed, 30 Apr 2014 04:28:48 +0000 (UTC) Received: from glenbarber.us (c-71-224-221-174.hsd1.nj.comcast.net [71.224.221.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id EAF3D9C89; Wed, 30 Apr 2014 04:28:46 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us EAF3D9C89 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Wed, 30 Apr 2014 00:28:45 -0400 From: Glen Barber To: Devin Teske Subject: Re: svn commit: r265126 - stable/4/lib/libdisk Message-ID: <20140430042845.GL44239@glenbarber.us> References: <201404300424.s3U4OL1o026292@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="L/Qt9NZ8t00Dhfad" Content-Disposition: inline In-Reply-To: <201404300424.s3U4OL1o026292@svn.freebsd.org> X-Operating-System: FreeBSD 11.0-CURRENT amd64 X-SCUD-Definition: Sudden Completely Unexpected Dataloss X-SULE-Definition: Sudden Unexpected Learning Event User-Agent: Mutt/1.5.23 (2014-03-12) Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-other@freebsd.org X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 04:28:49 -0000 --L/Qt9NZ8t00Dhfad Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Apr 30, 2014 at 04:24:21AM +0000, Devin Teske wrote: > Author: dteske > Date: Wed Apr 30 04:24:21 2014 > New Revision: 265126 > URL: http://svnweb.freebsd.org/changeset/base/265126 >=20 > Log: > Teach libdisk about mfid devices. This is a direct commit to stable/4 > since stable/5 and newer have r105681 which made this code obsolete. >=20 > Modified: > stable/4/lib/libdisk/create_chunk.c > stable/4/lib/libdisk/disk.c stable/4? Full moon was two weeks ago. Glen --L/Qt9NZ8t00Dhfad Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBCAAGBQJTYHv9AAoJELls3eqvi17Q3IQP/Rh5aZ0FGwqgl8LeoOXJqvzb 5FttxewcQ9C0nhwFfDwnIMKU6QUMxNxv8KSGu7YdsfYPfQ8zMqN0w2HPvdaCtlZY fH35dKK9YzJ7rtjf1ISKHzRGIHVqQWyXQhlAbRfP6sF3smdUan4zctES3lzXwGSA xOjH17X0kOvokdQfQnDdLu+98yRQztzYX5RM4WRYjF0TT8PdDECZlYzDhyicH3ef pHWCWHjK98JnBIp0WoXbs5ny4WhGlXL5zNwg64XfkeS2HmcZ9AwUvIiA1Ec1P0s1 2OuqeT37/hUBmyWovuJ+OIn4U+EvHhItXIJAWk10mu/k7rvrKKgWrbVc0Q/NXkFO lNvkWRvnAfzLleJqEeN/HDUJ/WF666qKrftG/TzIOn8A6kG9lp9vielX1IuqL/lS U+x6GK9C3JTxlWcyIgFqiaDp5rl3XTP1k8FYn/SsRldPj8emzOGr/kDpj3sAGm9I /9Tw0xA6ZHPjEkKSeKm4JERlTQZ50JvKL4zYDJNEuP5zES9C6Zs/acb3XfwPTy2Q yw3uMWJhEIR74WuInvCtsgrrt7LEgAhTBcAI4F0OxcUaOYNDDGFrUbT+TUTaKirD Y5VDx/cAE1SnRTfTzzlz39l60j95ImUe8f77VsajAKukBIFqbcYKe5P2AZEDSz5m okuiYWrNLHt9J5m2OIBr =Rzjs -----END PGP SIGNATURE----- --L/Qt9NZ8t00Dhfad-- From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 04:31:36 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1FD567C0; Wed, 30 Apr 2014 04:31:36 +0000 (UTC) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx1.fisglobal.com", Issuer "VeriSign Class 3 Secure Server CA - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DBD3713DC; Wed, 30 Apr 2014 04:31:35 +0000 (UTC) Received: from smarthost.fisglobal.com ([10.132.206.192]) by ltcfislmsgpa02.fnfis.com (8.14.5/8.14.5) with ESMTP id s3U4VSYH028397 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 29 Apr 2014 23:31:28 -0500 Received: from THEMADHATTER (10.242.181.54) by smarthost.fisglobal.com (10.132.206.192) with Microsoft SMTP Server id 14.3.174.1; Tue, 29 Apr 2014 23:31:25 -0500 From: Sender: Devin Teske To: "'Glen Barber'" , "'Devin Teske'" References: <201404300424.s3U4OL1o026292@svn.freebsd.org> <20140430042845.GL44239@glenbarber.us> In-Reply-To: <20140430042845.GL44239@glenbarber.us> Subject: RE: svn commit: r265126 - stable/4/lib/libdisk Date: Tue, 29 Apr 2014 21:31:03 -0700 Message-ID: <00fd01cf642d$008b5170$01a1f450$@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQH4v7HD/CHB3aNjsiSAK8ErAyG4HgJl5jHCmsOq30A= Content-Language: en-us X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.11.96, 1.0.14, 0.0.0000 definitions=2014-04-29_07:2014-04-30,2014-04-29,1970-01-01 signatures=0 Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-other@freebsd.org X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 04:31:36 -0000 > -----Original Message----- > From: Glen Barber [mailto:gjb@FreeBSD.org] > Sent: Tuesday, April 29, 2014 9:29 PM > To: Devin Teske > Cc: src-committers@freebsd.org; svn-src-all@freebsd.org; svn-src- > stable@freebsd.org; svn-src-stable-other@freebsd.org > Subject: Re: svn commit: r265126 - stable/4/lib/libdisk > > On Wed, Apr 30, 2014 at 04:24:21AM +0000, Devin Teske wrote: > > Author: dteske > > Date: Wed Apr 30 04:24:21 2014 > > New Revision: 265126 > > URL: > https://urldefense.proofpoint.com/v1/url?u=http://svnweb.freebsd.org/ch > angeset/base/265126&k=%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r= > Mrjs6vR4%2Faj2Ns9%2FssHJjg%3D%3D%0A&m=9FeCd7wGPL5rc1o5vza3bxf5 > BSuPYfb1878dIYgXi5s%3D%0A&s=0e923599ada59c925d4df0fe4a4303a6cc347 > e9f7bf3da9a780e5ff36bcc27d3 > > > > Log: > > Teach libdisk about mfid devices. This is a direct commit to stable/4 > > since stable/5 and newer have r105681 which made this code obsolete. > > > > Modified: > > stable/4/lib/libdisk/create_chunk.c > > stable/4/lib/libdisk/disk.c > > stable/4? > > Full moon was two weeks ago. > I've got more ;D part of decommissioning 4 @ $work. Memorializing some things that we ran with in production for years and years but never saw committed back. Just a nod to the venerable branch as we say farewell to it. These commits are beyond uber-tested and wanted to share them. -- Devin _____________ The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you. From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 04:44:52 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 71FD2346; Wed, 30 Apr 2014 04:44:52 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 5EBC219E4; Wed, 30 Apr 2014 04:44:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3U4iqUo034553; Wed, 30 Apr 2014 04:44:52 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3U4iqT6034552; Wed, 30 Apr 2014 04:44:52 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201404300444.s3U4iqT6034552@svn.freebsd.org> From: Devin Teske Date: Wed, 30 Apr 2014 04:44:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: svn commit: r265127 - stable/4/release/sysinstall X-SVN-Group: stable-other MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 04:44:52 -0000 Author: dteske Date: Wed Apr 30 04:44:51 2014 New Revision: 265127 URL: http://svnweb.freebsd.org/changeset/base/265127 Log: MF6 r157468: Teach sysinstall about MFI (scottl) NB: Merged from stable/6/usr.sbin/sysinstall to stable/4/release/sysinstall (location changed in between releases 4 and 6). Modified: stable/4/release/sysinstall/devices.c Directory Properties: stable/4/release/sysinstall/ (props changed) Modified: stable/4/release/sysinstall/devices.c ============================================================================== --- stable/4/release/sysinstall/devices.c Wed Apr 30 04:24:21 2014 (r265126) +++ stable/4/release/sysinstall/devices.c Wed Apr 30 04:44:51 2014 (r265127) @@ -81,6 +81,7 @@ static struct _devname { { DEVICE_TYPE_DISK, "ipsd%d", "IBM ServeRAID array", 176, 65538, 8, 4 }, { DEVICE_TYPE_DISK, "twed%d", "3ware ATA RAID array", 147, 65538, 8, 4 }, { DEVICE_TYPE_DISK, "aacd%d", "Adaptec FSA RAID array", 151, 65538, 8, 4 }, + { DEVICE_TYPE_DISK, "mfid%d", "LSI MegaRAID SAS", 254, 65538, 8, 4 }, { DEVICE_TYPE_FLOPPY, "fd%d", "floppy drive unit A", 9, 0, 64, 4 }, { DEVICE_TYPE_NETWORK, "an", "Aironet 4500/4800 802.11 wireless adapter" }, { DEVICE_TYPE_NETWORK, "aue", "ADMtek USB ethernet adapter" }, From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 05:00:53 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4DD39701; Wed, 30 Apr 2014 05:00:53 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3A5781B40; Wed, 30 Apr 2014 05:00:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3U50rRp041642; Wed, 30 Apr 2014 05:00:53 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3U50r0Y041641; Wed, 30 Apr 2014 05:00:53 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201404300500.s3U50r0Y041641@svn.freebsd.org> From: Devin Teske Date: Wed, 30 Apr 2014 05:00:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: svn commit: r265128 - stable/4/sys/i386/isa X-SVN-Group: stable-other MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 05:00:53 -0000 Author: dteske Date: Wed Apr 30 05:00:52 2014 New Revision: 265128 URL: http://svnweb.freebsd.org/changeset/base/265128 Log: Fix lnc0 detection in VMware when PXE booting. This is a direct commit to stable/4 since lnc(4) was deprecated and does not exist beyond this branch. Submitted by: Paul Meng PR: kern/77982 Modified: stable/4/sys/i386/isa/if_lnc.c Modified: stable/4/sys/i386/isa/if_lnc.c ============================================================================== --- stable/4/sys/i386/isa/if_lnc.c Wed Apr 30 04:44:51 2014 (r265127) +++ stable/4/sys/i386/isa/if_lnc.c Wed Apr 30 05:00:52 2014 (r265128) @@ -114,6 +114,7 @@ struct lnc_softc { int rap; int rdp; int bdp; + int reset; #ifdef DEBUG int lnc_debug; #endif @@ -1120,6 +1121,7 @@ pcnet_probe(struct lnc_softc *sc) { u_long chip_id; int type; + int reset_val; /* * The PCnet family don't reset the RAP register on reset so we'll @@ -1127,6 +1129,8 @@ pcnet_probe(struct lnc_softc *sc) * though so the probe is just a matter of reading it. */ + reset_val = inw(sc->reset); + outw(reset_val, sc->reset); if ((type = lance_probe(sc))) { chip_id = read_csr(sc, CSR89); chip_id <<= 16; @@ -1293,6 +1297,7 @@ lnc_attach_ne2100_pci(int unit, unsigned sc->rap = iobase + PCNET_RAP; sc->rdp = iobase + PCNET_RDP; sc->bdp = iobase + PCNET_BDP; + sc->reset = iobase + PCNET_RESET; sc->nic.ic = pcnet_probe(sc); if (sc->nic.ic >= PCnet_32) { From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 05:26:32 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3D27AB28; Wed, 30 Apr 2014 05:26:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 29F081DA3; Wed, 30 Apr 2014 05:26:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3U5QWRc052796; Wed, 30 Apr 2014 05:26:32 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3U5QWQT052795; Wed, 30 Apr 2014 05:26:32 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201404300526.s3U5QWQT052795@svn.freebsd.org> From: Devin Teske Date: Wed, 30 Apr 2014 05:26:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: svn commit: r265129 - stable/4/lib/libdisk X-SVN-Group: stable-other MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 05:26:32 -0000 Author: dteske Date: Wed Apr 30 05:26:31 2014 New Revision: 265129 URL: http://svnweb.freebsd.org/changeset/base/265129 Log: As-per r161293 (jhb), only recognize mfi(4) on i386. This is a direct commit to stable/4 as all future branches contain r105818 which made this code obsolete. Modified: stable/4/lib/libdisk/disk.c Modified: stable/4/lib/libdisk/disk.c ============================================================================== --- stable/4/lib/libdisk/disk.c Wed Apr 30 05:00:52 2014 (r265128) +++ stable/4/lib/libdisk/disk.c Wed Apr 30 05:26:31 2014 (r265129) @@ -486,7 +486,7 @@ Collapse_Disk(struct disk *d) #endif #ifdef PC98 -static char * device_list[] = {"wd", "aacd", "ad", "da", "afd", "fla", "idad", "mfid", "mlxd", "amrd", "twed", "ar", "fd", 0}; +static char * device_list[] = {"wd", "aacd", "ad", "da", "afd", "fla", "idad", "mlxd", "amrd", "twed", "ar", "fd", 0}; #else static char * device_list[] = {"aacd", "ad", "da", "afd", "fla", "idad", "ipsd", "mfid", "mlxd", "amrd", "twed", "ar", "fd", 0}; #endif From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 05:59:32 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 4978338D; Wed, 30 Apr 2014 05:59:32 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 349B81166; Wed, 30 Apr 2014 05:59:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3U5xW2Y065243; Wed, 30 Apr 2014 05:59:32 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3U5xWxg065241; Wed, 30 Apr 2014 05:59:32 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201404300559.s3U5xWxg065241@svn.freebsd.org> From: Devin Teske Date: Wed, 30 Apr 2014 05:59:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: svn commit: r265130 - in stable/4/sys: dev/arcmsr modules/arcmsr X-SVN-Group: stable-other MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 05:59:32 -0000 Author: dteske Date: Wed Apr 30 05:59:31 2014 New Revision: 265130 URL: http://svnweb.freebsd.org/changeset/base/265130 Log: Add tested known good version of Areca SATA RAID driver (arcmsr) working in stable/4. An MFC of slightly later code than that of r144411 (scottl). This is a direct commit to stable/4. Obtained from: Erich Chen Added: stable/4/sys/dev/arcmsr/ stable/4/sys/dev/arcmsr/arcmsr.c (contents, props changed) stable/4/sys/dev/arcmsr/arcmsr.h (contents, props changed) stable/4/sys/modules/arcmsr/ stable/4/sys/modules/arcmsr/Makefile (contents, props changed) Added: stable/4/sys/dev/arcmsr/arcmsr.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/4/sys/dev/arcmsr/arcmsr.c Wed Apr 30 05:59:31 2014 (r265130) @@ -0,0 +1,2587 @@ +/* +****************************************************************************************** +** O.S : FreeBSD +** FILE NAME : arcmsr.c +** BY : Erich Chen +** Description: SCSI RAID Device Driver for +** ARECA (ARC11XX/ARC12XX) SATA RAID HOST Adapter +** ARCMSR RAID Host adapter[RAID controller:INTEL 331(PCI-X) 341(PCI-EXPRESS) chip set] +****************************************************************************************** +************************************************************************ +** +** Copyright (c) 2004-2006 ARECA Co. Ltd. +** Erich Chen, Taipei Taiwan All rights reserved. +** +** Redistribution and use in source and binary forms,with or without +** modification,are permitted provided that the following conditions +** are met: +** 1. Redistributions of source code must retain the above copyright +** notice,this list of conditions and the following disclaimer. +** 2. Redistributions in binary form must reproduce the above copyright +** notice,this list of conditions and the following disclaimer in the +** documentation and/or other materials provided with the distribution. +** 3. The name of the author may not be used to endorse or promote products +** derived from this software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +** IMPLIED WARRANTIES,INCLUDING,BUT NOT LIMITED TO,THE IMPLIED WARRANTIES +** OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +** IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,INDIRECT, +** INCIDENTAL,SPECIAL,EXEMPLARY,OR CONSEQUENTIAL DAMAGES(INCLUDING,BUT +** NOT LIMITED TO,PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA,OR PROFITS; OR BUSINESS INTERRUPTION)HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY,WHETHER IN CONTRACT,STRICT LIABILITY,OR TORT +**(INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OF +** THIS SOFTWARE,EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +************************************************************************** +** History +** +** REV# DATE NAME DESCRIPTION +** 1.00.00.00 3/31/2004 Erich Chen First release +** 1.20.00.02 11/29/2004 Erich Chen bug fix with arcmsr_bus_reset when PHY error +** 1.20.00.03 4/19/2005 Erich Chen add SATA 24 Ports adapter type support +** clean unused function +** 1.20.00.12 9/12/2005 Erich Chen bug fix with abort command handling,firmware version check +** and firmware update notify for hardware bug fix +** handling if none zero high part physical address +** of srb resource +****************************************************************************************** +** $FreeBSD$ +*/ +#define ARCMSR_DEBUG 0 +/* +********************************** +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +/* +************************************************************************** +** Define the OS version specific locks +************************************************************************** +*/ +#if __FreeBSD_version >= 500005 + #include + #include + #include + #include + #define ARCMSR_LOCK_INIT(l, s) mtx_init(l, s,NULL, MTX_DEF|MTX_RECURSE) + #define ARCMSR_LOCK_ACQUIRE(l) mtx_lock(l) + #define ARCMSR_LOCK_RELEASE(l) mtx_unlock(l) + typedef struct mtx arcmsr_lock_t; +#else + #include + #include + #include + #define ARCMSR_LOCK_INIT(l, s) simple_lock_init(l) + #define ARCMSR_LOCK_ACQUIRE(l) simple_lock(l) + #define ARCMSR_LOCK_RELEASE(l) simple_unlock(l) + typedef struct simplelock arcmsr_lock_t; +#endif +#include +/* +************************************************************************** +** __FreeBSD_version 502010 +************************************************************************** +*/ +static struct _SRB * arcmsr_get_freesrb(struct _ACB * pACB); +static u_int8_t arcmsr_seek_cmd2abort(union ccb * pabortccb); +static u_int8_t arcmsr_wait_msgint_ready(struct _ACB * pACB); +static u_int32_t arcmsr_probe(device_t dev); +static u_int32_t arcmsr_attach(device_t dev); +static u_int32_t arcmsr_detach(device_t dev); +static u_int32_t arcmsr_iop_ioctlcmd(struct _ACB * pACB,u_int32_t ioctl_cmd,caddr_t arg); +static void arcmsr_iop_parking(struct _ACB *pACB); +static void arcmsr_shutdown(device_t dev); +static void arcmsr_interrupt(void *arg); +static void arcmsr_polling_srbdone(struct _ACB *pACB,struct _SRB *poll_srb); +static void arcmsr_free_resource(struct _ACB * pACB); +static void arcmsr_bus_reset(struct _ACB * pACB); +static void arcmsr_stop_adapter_bgrb(struct _ACB * pACB); +static void arcmsr_start_adapter_bgrb(struct _ACB * pACB); +static void arcmsr_iop_init(struct _ACB * pACB); +static void arcmsr_flush_adapter_cache(struct _ACB * pACB); +static void arcmsr_queue_wait2go_srb(struct _ACB * pACB,struct _SRB * pSRB); +static void arcmsr_post_wait2go_srb(struct _ACB * pACB); +static void arcmsr_post_Qbuffer(struct _ACB * pACB); +static void arcmsr_abort_allcmd(struct _ACB * pACB); +static void arcmsr_srb_complete(struct _SRB * pSRB); +static void arcmsr_iop_reset(struct _ACB * pACB); +static void arcmsr_report_sense_info(struct _SRB * pSRB); +static void arcmsr_build_srb(struct _SRB * pSRB, bus_dma_segment_t * dm_segs, u_int32_t nseg); +static int arcmsr_resume(device_t dev); +static int arcmsr_suspend(device_t dev); +/* +***************************************************************************************** +** Character device switch table +**struct cdevsw { +** d_open_t *d_open; +** d_close_t *d_close; +** d_read_t *d_read; +** d_write_t *d_write; +** d_ioctl_t *d_ioctl; +** d_poll_t *d_poll; +** d_mmap_t *d_mmap; +** d_strategy_t *d_strategy; +** const char *d_name; "" base device name, e.g. 'vn' +** int d_maj; +** d_dump_t *d_dump; +** d_psize_t *d_psize; +** u_int d_flags; +** int d_bmaj; +** d_kqfilter_t *d_kqfilter; "" additions below are not binary compatible with 4.2 and below +**}; +****************************************************************************************** +*/ +/* +************************************************************************** +** Insert a delay in micro-seconds and milli-seconds. +** static void MDELAY(u_int32_t ms) { while (ms--) UDELAY(1000); } +************************************************************************** +*/ +static void UDELAY(u_int32_t us) { DELAY(us); } +/* +************************************************************************** +** +************************************************************************** +*/ +static bus_dmamap_callback_t arcmsr_map_freesrb; +static bus_dmamap_callback_t arcmsr_executesrb; +/* +************************************************************************** +** +************************************************************************** +*/ +static d_open_t arcmsr_open; +static d_close_t arcmsr_close; +static d_ioctl_t arcmsr_ioctl; + +static device_method_t arcmsr_methods[]={ + DEVMETHOD(device_probe, arcmsr_probe), + DEVMETHOD(device_attach, arcmsr_attach), + DEVMETHOD(device_detach, arcmsr_detach), + DEVMETHOD(device_shutdown, arcmsr_shutdown), + DEVMETHOD(device_suspend, arcmsr_suspend), + DEVMETHOD(device_resume, arcmsr_resume), + + DEVMETHOD(bus_print_child, bus_generic_print_child), + DEVMETHOD(bus_driver_added, bus_generic_driver_added), + { 0,0 } +}; + +static driver_t arcmsr_driver={ + "arcmsr",arcmsr_methods,sizeof(struct _ACB) +}; + +static devclass_t arcmsr_devclass; +DRIVER_MODULE(arcmsr,pci,arcmsr_driver,arcmsr_devclass,0,0); +#ifndef BUS_DMA_COHERENT + #define BUS_DMA_COHERENT 0x04 /* hint: map memory in a coherent way */ +#endif +#if __FreeBSD_version >= 501000 + #ifndef D_NEEDGIANT + #define D_NEEDGIANT 0x00400000 /* driver want Giant */ + #endif + #ifndef D_VERSION + #define D_VERSION 0x20011966 + #endif + static struct cdevsw arcmsr_cdevsw={ + #if __FreeBSD_version > 502010 + .d_version = D_VERSION, + #endif + .d_flags = D_NEEDGIANT, + .d_open = arcmsr_open, /* open */ + .d_close = arcmsr_close, /* close */ + .d_ioctl = arcmsr_ioctl, /* ioctl */ + .d_name = "arcmsr", /* name */ + }; +#else + #define ARCMSR_CDEV_MAJOR 180 + + static struct cdevsw arcmsr_cdevsw = { + arcmsr_open, /* open */ + arcmsr_close, /* close */ + noread, /* read */ + nowrite, /* write */ + arcmsr_ioctl, /* ioctl */ + nopoll, /* poll */ + nommap, /* mmap */ + nostrategy, /* strategy */ + "arcmsr", /* name */ + ARCMSR_CDEV_MAJOR, /* major */ + nodump, /* dump */ + nopsize, /* psize */ + 0 /* flags */ + }; +#endif + +#if __FreeBSD_version < 500005 + static int arcmsr_open(dev_t dev, int flags, int fmt, struct proc *proc) +#else + #if __FreeBSD_version < 503000 + static int arcmsr_open(dev_t dev, int flags, int fmt, struct thread *proc) + #else + static int arcmsr_open(struct cdev *dev, int flags, int fmt, d_thread_t *proc) + #endif +#endif +{ + #if __FreeBSD_version < 503000 + struct _ACB * pACB=dev->si_drv1; + #else + int unit = minor(dev); + struct _ACB * pACB = devclass_get_softc(arcmsr_devclass, unit); + #endif + + if(pACB==NULL) + { + return ENXIO; + } + return 0; +} +/* +************************************************************************** +************************************************************************** +*/ +#if __FreeBSD_version < 500005 + static int arcmsr_close(dev_t dev, int flags, int fmt, struct proc *proc) +#else + #if __FreeBSD_version < 503000 + static int arcmsr_close(dev_t dev, int flags, int fmt, struct thread *proc) + #else + static int arcmsr_close(struct cdev *dev, int flags, int fmt, d_thread_t *proc) + #endif +#endif +{ + #if __FreeBSD_version < 503000 + struct _ACB * pACB=dev->si_drv1; + #else + int unit = minor(dev); + struct _ACB * pACB = devclass_get_softc(arcmsr_devclass, unit); + #endif + + if(pACB==NULL) + { + return ENXIO; + } + return 0; +} +/* +************************************************************************** +**ENOENT +**ENOIOCTL +**ENOMEM +**EINVAL +************************************************************************** +*/ +#if __FreeBSD_version < 500005 + static int arcmsr_ioctl(dev_t dev, u_long ioctl_cmd, caddr_t arg, int flags, struct proc *proc) +#else + #if __FreeBSD_version < 503000 + static int arcmsr_ioctl(dev_t dev, u_long ioctl_cmd, caddr_t arg, int flags, struct thread *proc) + #else + static int arcmsr_ioctl(struct cdev *dev, u_long ioctl_cmd, caddr_t arg,int flags, d_thread_t *proc) + #endif +#endif +{ + #if __FreeBSD_version < 503000 + struct _ACB * pACB=dev->si_drv1; + #else + int unit = minor(dev); + struct _ACB * pACB = devclass_get_softc(arcmsr_devclass, unit); + #endif + + if(pACB==NULL) + { + return ENXIO; + } + return(arcmsr_iop_ioctlcmd(pACB,ioctl_cmd,arg)); +} +/* +******************************************************************************* +** Bring the controller to a quiescent state, ready for system suspend. +******************************************************************************* +*/ +static int arcmsr_suspend(device_t dev) +{ + struct _ACB *pACB = device_get_softc(dev); + u_int32_t intmask_org; + int s; + + s = splbio(); + /* disable all outbound interrupt */ + intmask_org=readl(&pACB->pmu->outbound_intmask); + writel(&pACB->pmu->outbound_intmask,(intmask_org|ARCMSR_MU_OUTBOUND_ALL_INTMASKENABLE)); + /* flush controller */ + printf("arcmsr%d: flushing cache...\n",pACB->pci_unit); + arcmsr_iop_parking(pACB); + splx(s); + return(0); +} +/* +******************************************************************************* +** Bring the controller back to a state ready for operation. +******************************************************************************* +*/ +static int arcmsr_resume(device_t dev) +{ + struct _ACB *pACB = device_get_softc(dev); + + arcmsr_iop_init(pACB); + return(0); +} +/* +********************************************************************************* +** Asynchronous notification handler. +********************************************************************************* +*/ +static void arcmsr_async(void *cb_arg, u_int32_t code, struct cam_path *path, void *arg) +{ + struct _ACB * pACB; + u_int8_t target_id,target_lun; + struct cam_sim * sim; + u_int32_t s; + + s=splcam(); + sim=(struct cam_sim *) cb_arg; + pACB =(struct _ACB *) cam_sim_softc(sim); + switch (code) + { + case AC_LOST_DEVICE: + target_id=xpt_path_target_id(path); + target_lun=xpt_path_lun_id(path); + if((target_id > ARCMSR_MAX_TARGETID) || (target_lun > ARCMSR_MAX_TARGETLUN)) + { + break; + } + printf("%s:scsi id%d lun%d device lost \n",device_get_name(pACB->pci_dev),target_id,target_lun); + break; + default: + break; + } + splx(s); +} +/* +************************************************************************ +** +** +************************************************************************ +*/ +static void arcmsr_flush_adapter_cache(struct _ACB * pACB) +{ + writel(&pACB->pmu->inbound_msgaddr0,ARCMSR_INBOUND_MESG0_FLUSH_CACHE); + return; +} +/* +********************************************************************** +** +** +** +********************************************************************** +*/ +static u_int8_t arcmsr_wait_msgint_ready(struct _ACB * pACB) +{ + u_int32_t Index; + u_int8_t Retries=0x00; + do + { + for(Index=0; Index < 100; Index++) + { + if(readl(&pACB->pmu->outbound_intstatus) & ARCMSR_MU_OUTBOUND_MESSAGE0_INT) + { + writel(&pACB->pmu->outbound_intstatus, ARCMSR_MU_OUTBOUND_MESSAGE0_INT);/*clear interrupt*/ + return 0x00; + } + /* one us delay */ + UDELAY(10000); + }/*max 1 seconds*/ + }while(Retries++ < 20);/*max 20 sec*/ + return 0xff; +} +/* +********************************************************************** +** +** Q back this SRB into ACB ArraySRB +** +********************************************************************** +*/ +static void arcmsr_srb_complete(struct _SRB * pSRB) +{ + u_int32_t s; + struct _ACB * pACB=pSRB->pACB; + union ccb * pccb=pSRB->pccb; + + if((pccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) + { + bus_dmasync_op_t op; + + if((pccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) + { + op = BUS_DMASYNC_POSTREAD; + } + else + { + op = BUS_DMASYNC_POSTWRITE; + } + bus_dmamap_sync(pACB->buffer_dmat, pSRB->dmamap, op); + bus_dmamap_unload(pACB->buffer_dmat, pSRB->dmamap); + } + s=splcam(); + atomic_subtract_int(&pACB->srboutstandingcount,1); + pSRB->startdone=ARCMSR_SRB_DONE; + pSRB->srb_flags=0; + pACB->psrbringQ[pACB->srb_doneindex]=pSRB; + pACB->srb_doneindex++; + pACB->srb_doneindex %= ARCMSR_MAX_FREESRB_NUM; + splx(s); + xpt_done(pccb); + return; +} +/* +********************************************************************** +** if scsi error do auto request sense +********************************************************************** +*/ +static void arcmsr_report_sense_info(struct _SRB * pSRB) +{ + union ccb * pccb=pSRB->pccb; + PSENSE_DATA psenseBuffer=(PSENSE_DATA)&pccb->csio.sense_data; + + pccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; + pccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; + if(psenseBuffer) + { + memset(psenseBuffer, 0, sizeof(pccb->csio.sense_data)); + memcpy(psenseBuffer,pSRB->arcmsr_cdb.SenseData,get_min(sizeof(struct _SENSE_DATA),sizeof(pccb->csio.sense_data))); + psenseBuffer->ErrorCode=0x70; + psenseBuffer->Valid=1; + pccb->ccb_h.status |= CAM_AUTOSNS_VALID; + } + return; +} +/* +********************************************************************* +** to insert pSRB into tail of pACB wait exec srbQ +********************************************************************* +*/ +static void arcmsr_queue_wait2go_srb(struct _ACB * pACB,struct _SRB * pSRB) +{ + u_int32_t s; + u_int32_t i=0; + + s=splcam(); + while(1) + { + if(pACB->psrbwait2go[i]==NULL) + { + pACB->psrbwait2go[i]=pSRB; + atomic_add_int(&pACB->srbwait2gocount,1); + splx(s); + return; + } + i++; + i%=ARCMSR_MAX_OUTSTANDING_CMD; + } + return; +} +/* +********************************************************************* +** +********************************************************************* +*/ +static void arcmsr_abort_allcmd(struct _ACB * pACB) +{ + writel(&pACB->pmu->inbound_msgaddr0,ARCMSR_INBOUND_MESG0_ABORT_CMD); + return; +} + +/* +**************************************************************************** +** Routine Description: Reset 80331 iop. +** Arguments: +** Return Value: Nothing. +**************************************************************************** +*/ +static void arcmsr_iop_reset(struct _ACB * pACB) +{ + struct _SRB * pSRB; + u_int32_t intmask_org,mask; + u_int32_t i=0; + + if(pACB->srboutstandingcount!=0) + { + printf("arcmsr%d: iop reset srboutstandingcount=%d \n",pACB->pci_unit,pACB->srboutstandingcount); + /* disable all outbound interrupt */ + intmask_org=readl(&pACB->pmu->outbound_intmask); + writel(&pACB->pmu->outbound_intmask,intmask_org|ARCMSR_MU_OUTBOUND_ALL_INTMASKENABLE); + /* talk to iop 331 outstanding command aborted*/ + arcmsr_abort_allcmd(pACB); + if(arcmsr_wait_msgint_ready(pACB)) + { + printf("arcmsr%d: iop reset wait 'abort all outstanding command' timeout \n",pACB->pci_unit); + } + /*clear all outbound posted Q*/ + for(i=0;ipmu->outbound_queueport); + } + for(i=0;ipsrb_pool[i]; + if(pSRB->startdone==ARCMSR_SRB_START) + { + pSRB->startdone=ARCMSR_SRB_ABORTED; + pSRB->pccb->ccb_h.status=CAM_REQ_ABORTED; + arcmsr_srb_complete(pSRB); + } + } + /* enable all outbound interrupt */ + mask=~(ARCMSR_MU_OUTBOUND_POSTQUEUE_INTMASKENABLE|ARCMSR_MU_OUTBOUND_DOORBELL_INTMASKENABLE|ARCMSR_MU_OUTBOUND_MESSAGE0_INTMASKENABLE); + writel(&pACB->pmu->outbound_intmask,intmask_org & mask); + /* post abort all outstanding command message to RAID controller */ + } + i=0; + while(pACB->srbwait2gocount > 0) + { + pSRB=pACB->psrbwait2go[i]; + if(pSRB!=NULL) + { + printf("arcmsr%d:iop reset abort command srbwait2gocount=%d \n",pACB->pci_unit,pACB->srbwait2gocount); + pACB->psrbwait2go[i]=NULL; + pSRB->startdone=ARCMSR_SRB_ABORTED; + pSRB->pccb->ccb_h.status=CAM_REQ_ABORTED; + arcmsr_srb_complete(pSRB); + atomic_subtract_int(&pACB->srbwait2gocount,1); + } + i++; + i%=ARCMSR_MAX_OUTSTANDING_CMD; + } + atomic_set_int(&pACB->srboutstandingcount,0); + return; +} +/* +********************************************************************** +** +** PAGE_SIZE=4096 or 8192,PAGE_SHIFT=12 +********************************************************************** +*/ +static void arcmsr_build_srb(struct _SRB * pSRB, bus_dma_segment_t *dm_segs, u_int32_t nseg) +{ + struct _ARCMSR_CDB * pARCMSR_CDB=&pSRB->arcmsr_cdb; + u_int8_t * psge=(u_int8_t *)&pARCMSR_CDB->u; + u_int32_t address_lo,address_hi; + union ccb * pccb=pSRB->pccb; + struct ccb_scsiio * pcsio=&pccb->csio; + u_int32_t arccdbsize=0x30; + + memset(pARCMSR_CDB,0,sizeof(struct _ARCMSR_CDB)); + pARCMSR_CDB->Bus=0; + pARCMSR_CDB->TargetID=pccb->ccb_h.target_id; + pARCMSR_CDB->LUN=pccb->ccb_h.target_lun; + pARCMSR_CDB->Function=1; + pARCMSR_CDB->CdbLength=(u_int8_t)pcsio->cdb_len; + pARCMSR_CDB->Context=(unsigned long)pARCMSR_CDB; + bcopy(pcsio->cdb_io.cdb_bytes, pARCMSR_CDB->Cdb, pcsio->cdb_len); + if(nseg != 0) + { + struct _ACB * pACB=pSRB->pACB; + bus_dmasync_op_t op; + u_int32_t length,i,cdb_sgcount=0; + + /* map stor port SG list to our iop SG List.*/ + for(i=0;iaddress=address_lo; + pdma_sg->length=length; + psge += sizeof(struct _SG32ENTRY); + arccdbsize += sizeof(struct _SG32ENTRY); + } + else + { + u_int32_t sg64s_size=0,tmplength=length; + + #if ARCMSR_DEBUG + printf("arcmsr%d: !!!!!!!!!!! address_hi=%x \n",pACB->pci_unit,address_hi); + #endif + while(1) + { + u_int64_t span4G,length0; + struct _SG64ENTRY * pdma_sg=(struct _SG64ENTRY *)psge; + + span4G=(u_int64_t)address_lo + tmplength; + pdma_sg->addresshigh=address_hi; + pdma_sg->address=address_lo; + if(span4G > 0x100000000) + { + /*see if cross 4G boundary*/ + length0=0x100000000-address_lo; + pdma_sg->length=(u_int32_t)length0|IS_SG64_ADDR; + address_hi=address_hi+1; + address_lo=0; + tmplength=tmplength-(u_int32_t)length0; + sg64s_size += sizeof(struct _SG64ENTRY); + psge += sizeof(struct _SG64ENTRY); + cdb_sgcount++; + } + else + { + pdma_sg->length=tmplength|IS_SG64_ADDR; + sg64s_size += sizeof(struct _SG64ENTRY); + psge += sizeof(struct _SG64ENTRY); + break; + } + } + arccdbsize += sg64s_size; + } + cdb_sgcount++; + } + pARCMSR_CDB->sgcount=(u_int8_t)cdb_sgcount; + pARCMSR_CDB->DataLength=pcsio->dxfer_len; + if( arccdbsize > 256) + { + pARCMSR_CDB->Flags|=ARCMSR_CDB_FLAG_SGL_BSIZE; + } + if((pccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) + { + op=BUS_DMASYNC_PREREAD; + } + else + { + op=BUS_DMASYNC_PREWRITE; + pARCMSR_CDB->Flags|=ARCMSR_CDB_FLAG_WRITE; + pSRB->srb_flags|=SRB_FLAG_WRITE; + } + bus_dmamap_sync(pACB->buffer_dmat, pSRB->dmamap, op); + } + return; +} +/* +************************************************************************** +** +** arcmsr_post_srb - Send a protocol specific ARC send postcard to a AIOC . +** handle: Handle of registered ARC protocol driver +** adapter_id: AIOC unique identifier(integer) +** pPOSTCARD_SEND: Pointer to ARC send postcard +** +** This routine posts a ARC send postcard to the request post FIFO of a +** specific ARC adapter. +** +************************************************************************** +*/ +static void arcmsr_post_srb(struct _ACB * pACB,struct _SRB * pSRB) +{ + u_int32_t cdb_shifted_phyaddr=(u_int32_t) pSRB->cdb_shifted_phyaddr; + struct _ARCMSR_CDB * pARCMSR_CDB=(struct _ARCMSR_CDB *)&pSRB->arcmsr_cdb; + + atomic_add_int(&pACB->srboutstandingcount,1); + pSRB->startdone=ARCMSR_SRB_START; + if(pARCMSR_CDB->Flags & ARCMSR_CDB_FLAG_SGL_BSIZE) + { + writel(&pACB->pmu->inbound_queueport,cdb_shifted_phyaddr|ARCMSR_SRBPOST_FLAG_SGL_BSIZE); + } + else + { + writel(&pACB->pmu->inbound_queueport,cdb_shifted_phyaddr); + } + return; +} +/* +************************************************************************** +** +** +************************************************************************** +*/ +static void arcmsr_post_wait2go_srb(struct _ACB * pACB) +{ + u_int32_t s; + struct _SRB * pSRB; + u_int32_t i=0; + + s=splcam(); + while((pACB->srbwait2gocount > 0) && (pACB->srboutstandingcount < ARCMSR_MAX_OUTSTANDING_CMD)) + { + pSRB=pACB->psrbwait2go[i]; + if(pSRB!=NULL) + { + pACB->psrbwait2go[i]=NULL; + arcmsr_post_srb(pACB,pSRB); + atomic_subtract_int(&pACB->srbwait2gocount,1); + } + i++; + i%=ARCMSR_MAX_OUTSTANDING_CMD; + } + splx(s); + return; +} +/* +********************************************************************** +** Function: arcmsr_post_Qbuffer +** Output: +********************************************************************** +*/ +static void arcmsr_post_Qbuffer(struct _ACB * pACB) +{ + u_int32_t s; + u_int8_t * pQbuffer; + struct _QBUFFER * pwbuffer=(struct _QBUFFER *)&pACB->pmu->ioctl_wbuffer; + u_int8_t * iop_data=(u_int8_t *)pwbuffer->data; + u_int32_t allxfer_len=0; + + s=splcam(); + while((pACB->wqbuf_firstindex!=pACB->wqbuf_lastindex) && (allxfer_len<124)) + { + pQbuffer=&pACB->wqbuffer[pACB->wqbuf_firstindex]; + memcpy(iop_data,pQbuffer,1); + pACB->wqbuf_firstindex++; + pACB->wqbuf_firstindex %= ARCMSR_MAX_QBUFFER; /*if last index number set it to 0 */ + iop_data++; + allxfer_len++; + } + pwbuffer->data_len=allxfer_len; + /* + ** push inbound doorbell and wait reply at hwinterrupt routine for next Qbuffer post + */ + writel(&pACB->pmu->inbound_doorbell,ARCMSR_INBOUND_DRIVER_DATA_WRITE_OK); + splx(s); + return; +} +/* +************************************************************************ +************************************************************************ +*/ +static void arcmsr_stop_adapter_bgrb(struct _ACB * pACB) +{ + pACB->acb_flags |= ACB_F_MSG_STOP_BGRB; + pACB->acb_flags &= ~ACB_F_MSG_START_BGRB; + writel(&pACB->pmu->inbound_msgaddr0,ARCMSR_INBOUND_MESG0_STOP_BGRB); + return; +} +/* +************************************************************************ +************************************************************************ +*/ +static void arcmsr_poll(struct cam_sim * psim) +{ + arcmsr_interrupt(cam_sim_softc(psim)); + return; +} +/* +********************************************************************** +** Function: arcmsr_interrupt +** Output: void +** CAM Status field values +**typedef enum { +** CAM_REQ_INPROG, CCB request is in progress +** CAM_REQ_CMP, CCB request completed without error +** CAM_REQ_ABORTED, CCB request aborted by the host +** CAM_UA_ABORT, Unable to abort CCB request +** CAM_REQ_CMP_ERR, CCB request completed with an error +** CAM_BUSY, CAM subsytem is busy +** CAM_REQ_INVALID, CCB request was invalid +** CAM_PATH_INVALID, Supplied Path ID is invalid +** CAM_DEV_NOT_THERE, SCSI Device Not Installed/there +** CAM_UA_TERMIO, Unable to terminate I/O CCB request +** CAM_SEL_TIMEOUT, Target Selection Timeout +** CAM_CMD_TIMEOUT, Command timeout +** CAM_SCSI_STATUS_ERROR, SCSI error, look at error code in CCB +** CAM_MSG_REJECT_REC, Message Reject Received +** CAM_SCSI_BUS_RESET, SCSI Bus Reset Sent/Received +** CAM_UNCOR_PARITY, Uncorrectable parity error occurred +** CAM_AUTOSENSE_FAIL=0x10, Autosense: request sense cmd fail +** CAM_NO_HBA, No HBA Detected error +** CAM_DATA_RUN_ERR, Data Overrun error +** CAM_UNEXP_BUSFREE, Unexpected Bus Free +** CAM_SEQUENCE_FAIL, Target Bus Phase Sequence Failure +** CAM_CCB_LEN_ERR, CCB length supplied is inadequate +** CAM_PROVIDE_FAIL, Unable to provide requested capability +** CAM_BDR_SENT, A SCSI BDR msg was sent to target +** CAM_REQ_TERMIO, CCB request terminated by the host +** CAM_UNREC_HBA_ERROR, Unrecoverable Host Bus Adapter Error +** CAM_REQ_TOO_BIG, The request was too large for this host +** CAM_REQUEUE_REQ, +** * This request should be requeued to preserve +** * transaction ordering. This typically occurs +** * when the SIM recognizes an error that should +** * freeze the queue and must place additional +** * requests for the target at the sim level +** * back into the XPT queue. +** +** CAM_IDE=0x33, Initiator Detected Error +** CAM_RESRC_UNAVAIL, Resource Unavailable +** CAM_UNACKED_EVENT, Unacknowledged Event by Host +** CAM_MESSAGE_RECV, Message Received in Host Target Mode +** CAM_INVALID_CDB, Invalid CDB received in Host Target Mode +** CAM_LUN_INVALID, Lun supplied is invalid +** CAM_TID_INVALID, Target ID supplied is invalid +** CAM_FUNC_NOTAVAIL, The requested function is not available +** CAM_NO_NEXUS, Nexus is not established +** CAM_IID_INVALID, The initiator ID is invalid +** CAM_CDB_RECVD, The SCSI CDB has been received +** CAM_LUN_ALRDY_ENA, The LUN is already eanbeld for target mode +** CAM_SCSI_BUSY, SCSI Bus Busy +** +** CAM_DEV_QFRZN=0x40, The DEV queue is frozen w/this err +** +** Autosense data valid for target +** CAM_AUTOSNS_VALID=0x80, +** CAM_RELEASE_SIMQ=0x100, SIM ready to take more commands +** CAM_SIM_QUEUED =0x200, SIM has this command in it's queue +** +** CAM_STATUS_MASK=0x3F, Mask bits for just the status # +** +** Target Specific Adjunct Status +** CAM_SENT_SENSE=0x40000000 sent sense with status +**} cam_status; +********************************************************************** +*/ +static void arcmsr_interrupt(void *arg) +{ + struct _ACB * pACB=(struct _ACB *)arg; + struct _SRB * pSRB; + u_int32_t flag_srb,outbound_intstatus,outbound_doorbell; + + /* + ********************************************* + ** check outbound intstatus 檢察有無郵差按門鈴 + ********************************************* + */ + outbound_intstatus=readl(&pACB->pmu->outbound_intstatus) & pACB->outbound_int_enable; + writel(&pACB->pmu->outbound_intstatus, outbound_intstatus);/*clear interrupt*/ + if(outbound_intstatus & ARCMSR_MU_OUTBOUND_DOORBELL_INT) + { + /* + ********************************************* + ** DOORBELL 叮噹! 是否有郵件要簽收 + ********************************************* + */ + outbound_doorbell=readl(&pACB->pmu->outbound_doorbell); + writel(&pACB->pmu->outbound_doorbell,outbound_doorbell);/*clear interrupt */ + if(outbound_doorbell & ARCMSR_OUTBOUND_IOP331_DATA_WRITE_OK) + { + struct _QBUFFER * prbuffer=(struct _QBUFFER *)&pACB->pmu->ioctl_rbuffer; + u_int8_t * iop_data=(u_int8_t *)prbuffer->data; + u_int8_t * pQbuffer; + u_int32_t my_empty_len,iop_len,rqbuf_firstindex,rqbuf_lastindex; + + /*check this iop data if overflow my rqbuffer*/ + rqbuf_lastindex=pACB->rqbuf_lastindex; + rqbuf_firstindex=pACB->rqbuf_firstindex; + iop_len=prbuffer->data_len; + my_empty_len=(rqbuf_firstindex-rqbuf_lastindex-1)&(ARCMSR_MAX_QBUFFER-1); + if(my_empty_len>=iop_len) + { + while(iop_len > 0) + { + pQbuffer=&pACB->rqbuffer[pACB->rqbuf_lastindex]; + memcpy(pQbuffer,iop_data,1); + pACB->rqbuf_lastindex++; + pACB->rqbuf_lastindex %= ARCMSR_MAX_QBUFFER;/*if last index number set it to 0 */ + iop_data++; + iop_len--; + } + writel(&pACB->pmu->inbound_doorbell, ARCMSR_INBOUND_DRIVER_DATA_READ_OK);/*signature, let IOP331 know data has been readed */ + } + else + { + pACB->acb_flags|=ACB_F_IOPDATA_OVERFLOW; + } + } + if(outbound_doorbell & ARCMSR_OUTBOUND_IOP331_DATA_READ_OK) + { + /* + ********************************************* + ** 看看是否還有郵件要順道寄出 + ********************************************* + */ + if(pACB->wqbuf_firstindex!=pACB->wqbuf_lastindex) + { + u_int8_t * pQbuffer; + struct _QBUFFER * pwbuffer=(struct _QBUFFER *)&pACB->pmu->ioctl_wbuffer; + u_int8_t * iop_data=(u_int8_t *)pwbuffer->data; + u_int32_t allxfer_len=0; + + while((pACB->wqbuf_firstindex!=pACB->wqbuf_lastindex) && (allxfer_len<124)) + { + pQbuffer=&pACB->wqbuffer[pACB->wqbuf_firstindex]; + memcpy(iop_data,pQbuffer,1); + pACB->wqbuf_firstindex++; + pACB->wqbuf_firstindex %= ARCMSR_MAX_QBUFFER; /*if last index number set it to 0 */ + iop_data++; + allxfer_len++; + } + pwbuffer->data_len=allxfer_len; + /* + ** push inbound doorbell tell iop driver data write ok and wait reply on next hwinterrupt for next Qbuffer post + */ + writel(&pACB->pmu->inbound_doorbell,ARCMSR_INBOUND_DRIVER_DATA_WRITE_OK); + } + else + { + pACB->acb_flags |= ACB_F_IOCTL_WQBUFFER_CLEARED; + } + } + } + if(outbound_intstatus & ARCMSR_MU_OUTBOUND_POSTQUEUE_INT) + { + int target,lun; + /* + ***************************************************************************** + ** areca cdb command done + ***************************************************************************** + */ + while(1) + { + if((flag_srb=readl(&pACB->pmu->outbound_queueport)) == 0xFFFFFFFF) + { + break;/*chip FIFO no srb for completion already*/ + } + /* check if command done with no error*/ + pSRB=(struct _SRB *)(pACB->vir2phy_offset+(flag_srb << 5));/*frame must be 32 bytes aligned*/ + if((pSRB->pACB!=pACB) || (pSRB->startdone!=ARCMSR_SRB_START)) + { + if(pSRB->startdone==ARCMSR_SRB_ABORTED) + { + printf("arcmsr%d: scsi id=%d lun=%d srb='%p' isr command abort successfully \n",pACB->pci_unit,pSRB->pccb->ccb_h.target_id,pSRB->pccb->ccb_h.target_lun,pSRB); + pSRB->pccb->ccb_h.status=CAM_REQ_ABORTED; + arcmsr_srb_complete(pSRB); + continue; + } + printf("arcmsr%d: isr get an illegal srb command done acb='%p' srb='%p' srbacb='%p' startdone=0x%x srboutstandingcount=%d \n",pACB->pci_unit,pACB,pSRB,pSRB->pACB,pSRB->startdone,pACB->srboutstandingcount); + continue; + } + target=pSRB->pccb->ccb_h.target_id; + lun=pSRB->pccb->ccb_h.target_lun; + if((flag_srb & ARCMSR_SRBREPLY_FLAG_ERROR)==0) + { + if(pACB->devstate[target][lun]==ARECA_RAID_GONE) + { + pACB->devstate[target][lun]=ARECA_RAID_GOOD; + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 06:03:02 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 8EC755C7; Wed, 30 Apr 2014 06:03:02 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 6169111FC; Wed, 30 Apr 2014 06:03:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3U632w7068825; Wed, 30 Apr 2014 06:03:02 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3U631sC068820; Wed, 30 Apr 2014 06:03:01 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201404300603.s3U631sC068820@svn.freebsd.org> From: Devin Teske Date: Wed, 30 Apr 2014 06:03:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: svn commit: r265131 - in stable/4/sys: conf i386/conf modules X-SVN-Group: stable-other MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 06:03:02 -0000 Author: dteske Date: Wed Apr 30 06:03:01 2014 New Revision: 265131 URL: http://svnweb.freebsd.org/changeset/base/265131 Log: Merge r144423 with r144497 in-mind. Glue the arcmsr driver into the stable/4 branch -- but don't build arcmsr on pc98. This is a direct commit to stable/4 as arcmsr is already hooked into stable/5 and up. Modified: stable/4/sys/conf/files.i386 stable/4/sys/i386/conf/GENERIC stable/4/sys/i386/conf/LINT stable/4/sys/modules/Makefile Modified: stable/4/sys/conf/files.i386 ============================================================================== --- stable/4/sys/conf/files.i386 Wed Apr 30 05:59:31 2014 (r265130) +++ stable/4/sys/conf/files.i386 Wed Apr 30 06:03:01 2014 (r265131) @@ -91,6 +91,7 @@ crypto/des/des_setkey.c optional crypt dev/advansys/adv_isa.c optional adv isa dev/aic/aic_isa.c optional aic isa dev/ar/if_ar_isa.c optional ar isa +dev/arcmsr/arcmsr.c optional arcmsr pci dev/arl/if_arl.c optional arl dev/arl/if_arl_isa.c optional arl isa dev/dgb/dgm.c optional dgm Modified: stable/4/sys/i386/conf/GENERIC ============================================================================== --- stable/4/sys/i386/conf/GENERIC Wed Apr 30 05:59:31 2014 (r265130) +++ stable/4/sys/i386/conf/GENERIC Wed Apr 30 06:03:01 2014 (r265131) @@ -131,6 +131,7 @@ device aac # Adaptec FSA RAID, Dell PE device ida # Compaq Smart RAID device ips # IBM/Adaptec ServeRAID device amr # AMI MegaRAID +device arcmsr # Areca SATA II RAID device mfi # LSI MegaRAID SAS device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 Modified: stable/4/sys/i386/conf/LINT ============================================================================== --- stable/4/sys/i386/conf/LINT Wed Apr 30 05:59:31 2014 (r265130) +++ stable/4/sys/i386/conf/LINT Wed Apr 30 06:03:01 2014 (r265131) @@ -1276,6 +1276,12 @@ device pst # Promise Supertrak SX6000 device amr # AMI MegaRAID # +# Areca 11xx and 12xx series of SATA II RAID controllers. +# CAM is required. +# +device arcmsr # Areca SATA II RAID + +# # 3ware ATA RAID # device twe # 3ware ATA RAID Modified: stable/4/sys/modules/Makefile ============================================================================== --- stable/4/sys/modules/Makefile Wed Apr 30 05:59:31 2014 (r265130) +++ stable/4/sys/modules/Makefile Wed Apr 30 06:03:01 2014 (r265131) @@ -149,6 +149,7 @@ SUBDIR+=ar \ .if ${MACHINE} == "i386" SUBDIR+=aac \ + arcmsr \ arl \ asr \ ciss \ From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 06:08:22 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3D651809; Wed, 30 Apr 2014 06:08:22 +0000 (UTC) Received: from anubis.delphij.net (anubis.delphij.net [IPv6:2001:470:1:117::25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "anubis.delphij.net", Issuer "StartCom Class 1 Primary Intermediate Server CA" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 1A052127A; Wed, 30 Apr 2014 06:08:22 +0000 (UTC) Received: from delphij-macbook.local (c-24-5-244-32.hsd1.ca.comcast.net [24.5.244.32]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by anubis.delphij.net (Postfix) with ESMTPSA id 5B3D32332E; Tue, 29 Apr 2014 23:08:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=delphij.net; s=anubis; t=1398838101; bh=kfXlOJiZ2vjm2ck2Q7LOpl17VxKluutDWG55PEFm2Mc=; h=Date:From:Reply-To:To:Subject:References:In-Reply-To; b=VExM8mDQMqBHamiATX3k7/G62uERFqq7mbXKXrBPlOgsEzOXwhWdghZzXm00jUjSG cuyYoOl5LtDhTILTonQRwcdP5brpIQhsuyAw+ML+hFi0Lnsjpm//fgTInqOLxeo8Wp CfDmn0j1TdThHE+qjV7fXuI1GDRSrg/2hLv2KUeo= Message-ID: <53609354.6080305@delphij.net> Date: Tue, 29 Apr 2014 23:08:20 -0700 From: Xin Li Organization: The FreeBSD Project MIME-Version: 1.0 To: Devin Teske , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: Re: svn commit: r265130 - in stable/4/sys: dev/arcmsr modules/arcmsr References: <201404300559.s3U5xWxg065241@svn.freebsd.org> In-Reply-To: <201404300559.s3U5xWxg065241@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: d@delphij.net List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 06:08:22 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 4/29/14, 10:59 PM, Devin Teske wrote: > changeset/base/265130 > > Log: Add tested known good version of Areca SATA RAID driver > (arcmsr) working in stable/4. An MFC of slightly later code than > that of r144411 (scottl). This is a direct commit to stable/4. > > Obtained from: Erich Chen Hrm I think stable/4 is mostly frozen :) Since you have been there, I think it would be a good idea to merge the manual page too, for completeness... Cheers, -----BEGIN PGP SIGNATURE----- iQIcBAEBCgAGBQJTYJNUAAoJEJW2GBstM+nsmssQAJR/EpsoVg0VFEpRbyK5VJoP akqELXLnEGkfuPCqZ8Y2u18vsD+cVr//fg16FpHgT5nAjlLxHJmsPwRKkIqBJ/Tf ODssjaEb7sQs05wqvLgzMQ9Hm2l4opzwRLYiypv4RcREjnDVcRJmlTa9R2oWlhhu Ss3DP2CN3mBYjIujtBrOfyBYa1wAhx/DPZ0N+LxeqMiENfQ2TwrVpVAmlzs86UE7 FyAoCYTM+sv+mrDN8kwBx8cD4UFpmjQoSMeHGsFZCQMfYzOyqZ7WpJ9EMSrpQSof wUYz7seJc+3eP0KVmSH6rOEathGSVp47i7l+6ywFqWsW8hb/yHDkAwM8tMncYQKJ YMKItEgpXxEI1iOhHZTcj04T1eElFzgm7RiTSvVzMhNO3+0uO/vJecZosu+DUi79 FDxIKWPECC+Be4TNaYcjMbTCEurkEpvk0dzOuAh+xB8LisPvNJoCjzfiU7ma8W8v V46LMhR5N15v/R1hf3y8mDwKt+4a4FNUU7cUOM6KdLvZTCJUpX/OPW+0a6ZsvTf/ ieBFrncbgYRDiCbqystZxo6gz6niZq6vw8LfF7n6cJB0PqQlH29PJd6PYj7H83P1 eGWMRM8iOp7YLjKBsqFWDEdIeyZPE4Lgu0P4YNiVM23Je8jrEPnvRQo+OvSP2T1e 460VzuXNCAiIXxjn22jo =FF94 -----END PGP SIGNATURE----- From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 06:10:35 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 6FCB494E; Wed, 30 Apr 2014 06:10:35 +0000 (UTC) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx1.fisglobal.com", Issuer "VeriSign Class 3 Secure Server CA - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 377EC128D; Wed, 30 Apr 2014 06:10:34 +0000 (UTC) Received: from smarthost.fisglobal.com ([10.132.206.192]) by ltcfislmsgpa01.FNFIS.COM (8.14.5/8.14.5) with ESMTP id s3U6ASYw022957 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Wed, 30 Apr 2014 01:10:28 -0500 Received: from THEMADHATTER (10.242.181.54) by smarthost.fisglobal.com (10.132.206.192) with Microsoft SMTP Server id 14.3.174.1; Wed, 30 Apr 2014 01:10:25 -0500 From: Sender: Devin Teske To: , "'Devin Teske'" , , , , References: <201404300559.s3U5xWxg065241@svn.freebsd.org> <53609354.6080305@delphij.net> In-Reply-To: <53609354.6080305@delphij.net> Subject: RE: svn commit: r265130 - in stable/4/sys: dev/arcmsr modules/arcmsr Date: Tue, 29 Apr 2014 23:10:03 -0700 Message-ID: <010501cf643a$d4c82140$7e5863c0$@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-Mailer: Microsoft Outlook 15.0 Thread-Index: AQGHfn9YgV4OGErMHKNvv9V6BWenbgFHm3asm687ZuA= Content-Language: en-us X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.11.96, 1.0.14, 0.0.0000 definitions=2014-04-30_01:2014-04-30,2014-04-30,1970-01-01 signatures=0 Cc: 'Devin Teske' X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 06:10:35 -0000 > -----Original Message----- > From: Xin Li [mailto:delphij@delphij.net] > Sent: Tuesday, April 29, 2014 11:08 PM > To: Devin Teske; src-committers@freebsd.org; svn-src-all@freebsd.org; svn- > src-stable@freebsd.org; svn-src-stable-other@freebsd.org > Subject: Re: svn commit: r265130 - in stable/4/sys: dev/arcmsr > modules/arcmsr > > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA512 > > On 4/29/14, 10:59 PM, Devin Teske wrote: > > changeset/base/265130 > > > > Log: Add tested known good version of Areca SATA RAID driver > > (arcmsr) working in stable/4. An MFC of slightly later code than that > > of r144411 (scottl). This is a direct commit to stable/4. > > > > Obtained from: Erich Chen > > Hrm I think stable/4 is mostly frozen :) > > Since you have been there, I think it would be a good idea to merge the > manual page too, for completeness... > > Cheers, > A most excellent idea! Thanks for the suggestion. -- Devin _____________ The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you. From owner-svn-src-stable-other@FreeBSD.ORG Wed Apr 30 06:27:24 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 23982DA4; Wed, 30 Apr 2014 06:27:24 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 0F26914A7; Wed, 30 Apr 2014 06:27:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s3U6RNI1077508; Wed, 30 Apr 2014 06:27:23 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s3U6RNJ9077506; Wed, 30 Apr 2014 06:27:23 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201404300627.s3U6RNJ9077506@svn.freebsd.org> From: Devin Teske Date: Wed, 30 Apr 2014 06:27:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-other@freebsd.org Subject: svn commit: r265133 - stable/4/share/man/man4 X-SVN-Group: stable-other MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2014 06:27:24 -0000 Author: dteske Date: Wed Apr 30 06:27:23 2014 New Revision: 265133 URL: http://svnweb.freebsd.org/changeset/base/265133 Log: MFH r144419 (scottl): Add a manual page for the arcmsr driver. Added: stable/4/share/man/man4/arcmsr.4 - copied unchanged from r144419, head/share/man/man4/arcmsr.4 Modified: stable/4/share/man/man4/Makefile Directory Properties: stable/4/ (props changed) Modified: stable/4/share/man/man4/Makefile ============================================================================== --- stable/4/share/man/man4/Makefile Wed Apr 30 06:20:48 2014 (r265132) +++ stable/4/share/man/man4/Makefile Wed Apr 30 06:27:23 2014 (r265133) @@ -11,6 +11,7 @@ MAN= aac.4 \ ahd.4 \ amd.4 \ amr.4 \ + arcmsr.4 \ an.4 \ ata.4 \ atapicam.4 \ Copied: stable/4/share/man/man4/arcmsr.4 (from r144419, head/share/man/man4/arcmsr.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/4/share/man/man4/arcmsr.4 Wed Apr 30 06:27:23 2014 (r265133, copy of r144419, head/share/man/man4/arcmsr.4) @@ -0,0 +1,107 @@ +.\" Copyright (c) 2005 Scott Long +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd March 31, 2005 +.Dt ARCMSR 4 +.Os +.Sh NAME +.Nm arcmsr +.Nd Areca SATA II RAID Controller driver +.Sh SYNOPSIS +.Cd "device arcmsr" +.Cd "device pci" +.Cd "device scbus" +.Cd "device da" +.Sh DESCRIPTION +The +.Nm +driver provides support for the Areca ARC-11xx and ARC-12xx series of SATA II +RAID controllers. +These controllers feature RAID-0, 1, 3, 5, 6, and 10 and +JBOD acceleration for up to 16 SATA drives. +Raid level and stripe level +migration, online capacity expansion, hot insertion/removal, automatic failover +and rebuild, and SMART are also supported. +Access to the arrays is provided +via the SCSI CAM +.Pa /dev/da? +device nodes. +A management interface is also present via the +.Pa /dev/arcmsr? +device node. Management tools for i386 and amd64 are available from Areca. +.Sh HARDWARE +The following card are supported at this time: +.Pp +.Bl -bullet -compact +.It +ARC-1110 +.It +ARC-1120 +.It +ARC-1130 +.It +ARC-1160 +.It +ARC-1130-ML +.It +ARC-1160-ML +.It +ARC-1210 +.It +ARC-1220 +.It +ARC-1230 +.It +ARC-1260 +.It +ARC-1230-ML +.It +ARC-1260-ML +.El +.Sh FILES +.Bl -tag -width ".Pa /boot/kernel/arcmsr.ko" -compact +.It Pa /dev/da? +Array block device +.It Pa /dev/arcmsr? +Management interface +.It Pa /boot/kernel/arcmsr.ko +Loadable module +.El +.Sh SEE ALSO +.Xr da 4 , +.Xr scbus 4 +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 5.4 . +.Sh AUTHORS +The driver was written by +.An Erich Chen Aq erich@areca.com.tw . +.Sh BUGS +The driver has been tested on i386 and amd64. +It likely requires additional +work to function on big-endian architectures. From owner-svn-src-stable-other@FreeBSD.ORG Thu May 1 11:38:05 2014 Return-Path: Delivered-To: svn-src-stable-other@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 0E965F5A; Thu, 1 May 2014 11:38:05 +0000 (UTC) Received: from woozle.rinet.ru (woozle.rinet.ru [195.54.192.68]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 7F084103D; Thu, 1 May 2014 11:38:03 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by woozle.rinet.ru (8.14.5/8.14.5) with ESMTP id s41Bbc2B068694; Thu, 1 May 2014 15:37:43 +0400 (MSK) (envelope-from marck@rinet.ru) Date: Thu, 1 May 2014 15:37:38 +0400 (MSK) From: Dmitry Morozovsky To: "'Devin Teske'" Subject: RE: svn commit: r265126 - stable/4/lib/libdisk In-Reply-To: <00fd01cf642d$008b5170$01a1f450$@FreeBSD.org> Message-ID: References: <201404300424.s3U4OL1o026292@svn.freebsd.org> <20140430042845.GL44239@glenbarber.us> <00fd01cf642d$008b5170$01a1f450$@FreeBSD.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) X-NCC-RegID: ru.rinet X-OpenPGP-Key-ID: 6B691B03 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (woozle.rinet.ru [0.0.0.0]); Thu, 01 May 2014 15:37:43 +0400 (MSK) Cc: 'Glen Barber' , svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-other@freebsd.org, svn-src-stable@freebsd.org X-BeenThere: svn-src-stable-other@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the old stable src trees List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 May 2014 11:38:05 -0000 On Tue, 29 Apr 2014, dteske@freebsd.org wrote: > > > Log: > > > Teach libdisk about mfid devices. This is a direct commit to stable/4 > > > since stable/5 and newer have r105681 which made this code obsolete. > > > > > > Modified: > > > stable/4/lib/libdisk/create_chunk.c > > > stable/4/lib/libdisk/disk.c > > > > stable/4? > > > > Full moon was two weeks ago. > > > > I've got more ;D part of decommissioning 4 @ $work. > Memorializing some things that we ran with in production > for years and years but never saw committed back. Just a > nod to the venerable branch as we say farewell to it. > > These commits are beyond uber-tested and wanted to > share them. Actually, much thanks for doing this. -- Sincerely, D.Marck [DM5020, MCK-RIPE, DM3-RIPN] [ FreeBSD committer: marck@FreeBSD.org ] ------------------------------------------------------------------------ *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru *** ------------------------------------------------------------------------