Hi, All. I prepared patch to make MFC of ata(4) driver into RELENG_7 before 7.1-RELEASE. Depending on results of the testing patch will be commited or not (if some regressions will be detected). So if you want or just can test it, please try and report here. -- WBR, Andrey V. Elsukov -------------- next part -------------- A non-text attachment was scrubbed... Name: ata.diff Type: application/octet-stream Size: 174223 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20081004/7f234b8e/ata-0001.obj
On Sat, Oct 04, 2008 at 07:38:09PM +0400, Andrey V. Elsukov wrote:> I prepared patch to make MFC of ata(4) driver into RELENG_7 > before 7.1-RELEASE. Depending on results of the testing patch > will be commited or not (if some regressions will be detected). > So if you want or just can test it, please try and report here.I will give this patch a try on the following hardware: * Supermicro P4SCE running RELENG_7 i386 - Intel ICH5R -- 1 disk attached (OS disk) - I can add a 2nd disk to this box no problem - Intel MatrixRAID capability (RAID-0 or RAID-1) - Hot-swap capable * Supermicro PDSMi+ running RELENG_7 amd64 - Intel ICH7R -- 1 disk attached (OS disk) - Promise TX4310 -- 4 disks attached (ZFS raidz1 pool) - Hot-swap capable I'll begin testing on the P4SCE box because I'm a little sensitive about potential data loss on the PDSMi+ system. :-) Also, does your patch include any fixes (intentional or inadvertent) for Intel MatrixRAID? This has been a sore spot for FreeBSD for quite some time, and I'm curious to know if that has been fixed. P.S. -- Mandatory plug: don't forget about kern/127717 :-) -- | Jeremy Chadwick jdc at parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, USA | | Making life hard for others since 1977. PGP: 4BD6C0CB |
--On Saturday, October 04, 2008 19:38 +0400 "Andrey V. Elsukov" <bu7cher@yandex.ru> wrote:> Hi, All. > > I prepared patch to make MFC of ata(4) driver into RELENG_7 > before 7.1-RELEASE. Depending on results of the testing patch > will be commited or not (if some regressions will be detected). > So if you want or just can test it, please try and report here. >Installed and tested with no ill effects on an ASUS M2N-VM DVI board. Still need to manually apply the attached patch, picked up on the list a while ago, to have the built-in SATA controller detected and recognized as AHCI capable. Cheers, Goran Attachments: lspci output of controller under test. original patch for controller. updated patch against tested patchset. --- "There is hopeful symbolism in the fact that flags do not wave in a vacuum." -- Arthur C. Clarke -------------- next part -------------- 00:09.0 SATA controller [0106]: nVidia Corporation MCP67 AHCI Controller [10de:0554] (rev a2) (prog-if 01 [AHCI 1.0]) Subsystem: ASUSTeK Computer Inc. Unknown device [1043:82b3] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 (750ns min, 250ns max) Interrupt: pin A routed to IRQ 22 Region 0: I/O ports at c480 Region 1: I/O ports at c400 Region 2: I/O ports at c080 Region 3: I/O ports at c000 Region 4: I/O ports at bc00 Region 5: Memory at f9ef6000 (32-bit, non-prefetchable) Capabilities: [44] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [8c] SATA HBA <?> -------------- next part -------------- Index: src/sys/dev/ata/ata-chipset.c ==================================================================RCS file: /ncvs/src/sys/dev/ata/ata-chipset.c,v retrieving revision 1.225 diff -u -p -r1.225 ata-chipset.c --- src/sys/dev/ata/ata-chipset.c 15 Aug 2008 10:55:11 -0000 1.225 +++ src/sys/dev/ata/ata-chipset.c 23 Sep 2008 05:06:28 -0000 @@ -3372,7 +3372,9 @@ ata_nvidia_ident(device_t dev) { ATA_NFORCE_MCP61_S3, 0, 0, NV4|NVQ, ATA_SA300, "nForce MCP61" }, { ATA_NFORCE_MCP65, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP65" }, { ATA_NFORCE_MCP67, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP67" }, + { ATA_NFORCE_MCP67_A1, 0, 0, NVAHCI, ATA_SA300, "nForce MCP67" }, { ATA_NFORCE_MCP73, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP73" }, + { ATA_NFORCE_MCP73_A1, 0, 0, NVAHCI, ATA_SA300, "nForce MCP73" }, { ATA_NFORCE_MCP77, 0, AMDNVIDIA, NVIDIA, ATA_UDMA6, "nForce MCP77" }, { 0, 0, 0, 0, 0, 0}} ; @@ -3380,7 +3382,12 @@ ata_nvidia_ident(device_t dev) return ENXIO; ata_set_desc(dev); - ctlr->chipinit = ata_nvidia_chipinit; + + if (ctlr->chip->cfg2 == NVAHCI) + ctlr->chipinit = ata_ahci_chipinit; + else + ctlr->chipinit = ata_nvidia_chipinit; + return 0; } Index: src/sys/dev/ata/ata-pci.h ==================================================================RCS file: /ncvs/src/sys/dev/ata/ata-pci.h,v retrieving revision 1.89 diff -u -p -r1.89 ata-pci.h --- src/sys/dev/ata/ata-pci.h 10 Jul 2008 21:36:53 -0000 1.89 +++ src/sys/dev/ata/ata-pci.h 23 Sep 2008 05:06:28 -0000 @@ -243,8 +243,10 @@ struct ata_connect_task { #define ATA_NFORCE_MCP61_S2 0x03f610de #define ATA_NFORCE_MCP61_S3 0x03f710de #define ATA_NFORCE_MCP65 0x044810de +#define ATA_NFORCE_MCP67_A1 0x055010de #define ATA_NFORCE_MCP67 0x056010de #define ATA_NFORCE_MCP73 0x056c10de +#define ATA_NFORCE_MCP73_A1 0x07f810de #define ATA_NFORCE_MCP77 0x075910de #define ATA_PROMISE_ID 0x105a @@ -450,6 +452,7 @@ struct ata_connect_task { #define NVIDIA 0x0004 #define NV4 0x0010 #define NVQ 0x0020 +#define NVAHCI 0x0040 #define VIACLK 0x0100 #define VIABUG 0x0200 #define VIABAR 0x0400 -------------- next part -------------- A non-text attachment was scrubbed... Name: ata_nvidia_ahci-20081004.diff Type: application/octet-stream Size: 1800 bytes Desc: not available Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20081005/f1ba9188/ata_nvidia_ahci-20081004.obj
On Sat, Oct 04, 2008 at 07:38:09PM +0400, Andrey V. Elsukov wrote:> Hi, All. > > I prepared patch to make MFC of ata(4) driver into RELENG_7 > before 7.1-RELEASE. Depending on results of the testing patch > will be commited or not (if some regressions will be detected). > So if you want or just can test it, please try and report here.One regression of the post-PM code is that support for some Promise controllers is broken in that probing drives causes a hang. In my case it's a FasTrak S150 TX4 with a PDC20319 but there are also other variants affected, see f.e.: http://lists.freebsd.org/pipermail/freebsd-current/2008-May/085923.html Marius
Highly likely, as it was seagate disks I had this issue with. The comment in the hptmv driver:- + /* + * always use 48bit LBA if drive supports it. + * Some Seagate drives report error if you use a 28-bit command + * to access sector 0xfffffff. + */ ----- Original Message ----- From: "Ruben van Staveren" <ruben@verweg.com>> You must be very careful with using less than 48bit addressing when > both > the drive and the controller supports it as some disks report errors > at > none standard crossover points. > > I saw this first hand with the highpoint driver where it totally > trashed > the RAID volumes. The solution was to "always" use 48bit addressing if > the drive supports / requires it.Could this be the thing that is at stake ? The mirror, consisting out of ad4/ad6 got its ad4 trashed with the patch enabled. luckily it could be rebuild from the intact ad6. here is a atacontrol cap ad4 (0|chassis|ttyp0[-]) ~ > atacontrol cap ad4 Protocol Serial ATA II device model SEAGATE ST32500NSSUN250G 0825B824R1 serial number 9QE824R1 firmware revision 3AZQ cylinders 16383 heads 16 sectors/track 63 lba supported 268435455 sectors lba48 supported 488390625 sectors dma supported overlap not supported Feature Support Enable Value Vendor write cache yes yes read ahead yes yes Native Command Queuing (NCQ) yes - 31/0x1F Tagged Command Queuing (TCQ) no no 31/0x1F SMART yes yes microcode download yes yes security yes no power management yes yes advanced power management no no 65278/0xFEFE automatic acoustic management no no 0/0x00 254/0xFE ===============================================This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk.