From owner-freebsd-current@FreeBSD.ORG Thu Oct 24 14:20:34 2013 Return-Path: Delivered-To: current@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 ESMTP id EB9CF402; Thu, 24 Oct 2013 14:20:34 +0000 (UTC) (envelope-from alexandre.martins@netasq.com) Received: from work.netasq.com (gwlille.netasq.com [91.212.116.1]) by mx1.freebsd.org (Postfix) with ESMTP id 2659E217B; Thu, 24 Oct 2013 14:20:33 +0000 (UTC) Received: from work.netasq.com (localhost [127.0.0.1]) by work.netasq.com (Postfix) with ESMTP id D806F270624F; Thu, 24 Oct 2013 16:20:32 +0200 (CEST) Received: from pc-alex.netasq.com (unknown [10.2.0.1]) by work.netasq.com (Postfix) with ESMTP id 6FC1E2700207; Thu, 24 Oct 2013 16:20:32 +0200 (CEST) From: Alexandre Martins To: mav@freebsd.org Subject: Re: Troubles with VIA VX900 chipset Date: Thu, 24 Oct 2013 16:20:29 +0200 Message-ID: <2111820.j2pnCBbuyC@pc-alex.netasq.com> Organization: NETASQ User-Agent: KMail/4.10.1 (FreeBSD/8.4-RELEASE; KDE/4.10.1; amd64; ; ) In-Reply-To: <2304698.vixPKsOToE@pc-alex.netasq.com> References: <2304698.vixPKsOToE@pc-alex.netasq.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1776756.9qKd4RWsUc"; micalg="sha1"; protocol="application/pkcs7-signature" Content-Transfer-Encoding: 7Bit Cc: fabien.thomas@netasq.com, current@freebsd.org, fabient@freebsd.org X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Oct 2013 14:20:35 -0000 --nextPart1776756.9qKd4RWsUc Content-Type: multipart/mixed; boundary="nextPart7815598.ZJSH0KAMbv" Content-Transfer-Encoding: 7Bit This is a multi-part message in MIME format. --nextPart7815598.ZJSH0KAMbv Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" I forget to attach patches Le jeudi 24 octobre 2013 15:56:15 Alexandre Martins a =E9crit : > Dear, >=20 > We have seen some issues with the VIA VX900 chipset. The main trouble= is > that some SATA hard drive are not seen by the kernel (BIOS and boot-l= oader > are OK). >=20 > After investigations, it seems that during the initialisation of the > controler, some reset commands are send via "ata_via_sata_reset" fonc= tion. > Into the chipset documentation, there is a warning about successive r= eset > commands, and software must waiting the "BUSY" flag is clear, before = send > another reset. I have added a "DELAY(10000)" between the second call = of > "ata_sata_phy_reset" and the call of "ata_generic_reset" and the prob= lem > disapear. >=20 > I also made a more complex fix which check the "BUSY" flag. >=20 > Which fix of delai checking is the better one ? >=20 > Best Regards --=20 Alexandre Martins NETASQ -- We secure IT --nextPart7815598.ZJSH0KAMbv Content-Disposition: attachment; filename="delay_patch" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="delay_patch" --- dev/ata/chipsets/ata-via.c.orig 2013-10-24 09:32:45.000000000 +0000 +++ dev/ata/chipsets/ata-via.c 2013-10-24 09:39:51.000000000 +0000 @@ -459,6 +459,7 @@ devs = ata_sata_phy_reset(dev, 0, 0); DELAY(10000); devs += ata_sata_phy_reset(dev, 1, 0); + DELAY(10000); } else devs = 1; if (devs) --nextPart7815598.ZJSH0KAMbv Content-Disposition: attachment; filename="check_patch" Content-Transfer-Encoding: 7Bit Content-Type: text/x-patch; charset="UTF-8"; name="check_patch" --- dev/ata/chipsets/ata-via.c.orig 2013-10-24 13:39:17.000000000 +0000 +++ dev/ata/chipsets/ata-via.c 2013-10-24 09:24:04.000000000 +0000 @@ -456,11 +456,29 @@ { struct ata_channel *ch = device_get_softc(dev); int devs; + u_int8_t status; + int count; if (ch->unit == 0) { devs = ata_sata_phy_reset(dev, 0, 0); - DELAY(10000); + count = 0; + do + { + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(ATA_MASTER)); + DELAY(1000); + status = ATA_IDX_INB(ch, ATA_STATUS); + count++; + } while (status & ATA_S_BUSY && count < 100); + devs += ata_sata_phy_reset(dev, 1, 0); + count = 0; + do + { + ATA_IDX_OUTB(ch, ATA_DRIVE, ATA_D_IBM | ATA_D_LBA | ATA_DEV(ATA_SLAVE)); + DELAY(1000); + status = ATA_IDX_INB(ch, ATA_STATUS); + count++; + } while (status & ATA_S_BUSY && count < 100); } else devs = 1; if (devs) --nextPart7815598.ZJSH0KAMbv-- --nextPart1776756.9qKd4RWsUc Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Disposition: attachment; filename="smime.p7s" Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIErzCCBKsw ggOToAMCAQICCnDGsUgWa/KQbDQwDQYJKoZIhvcNAQEFBQAwgZExCzAJBgNVBAYTAkZSMQ0wCwYD VQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5ldXZlIGQnQXNjcTEuMCwGA1UEChMlTkVUQVNRIC0g U2VjdXJlIEludGVybmV0IENvbm5lY3Rpdml0eTEnMCUGA1UECxMeTkVUQVNRIENlcnRpZmljYXRp b24gQXV0aG9yaXR5MB4XDTEzMDIxNTE1NDk1N1oXDTE0MDIxNTE1NDk1N1owgdoxCzAJBgNVBAYT AkZSMQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxsZW5ldXZlIGQnQXNjcTEuMCwGA1UEChMl TkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rpdml0eTEnMCUGA1UECxMeTkVUQVNRIENl cnRpZmljYXRpb24gQXV0aG9yaXR5MRowGAYDVQQDExFBbGV4YW5kcmUgTUFSVElOUzErMCkGCSqG SIb3DQEJARYcYWxleGFuZHJlLm1hcnRpbnNAbmV0YXNxLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAL4/gp0+01ma1Hi1C9Zw7TY8nZPJTmB3HG5eX1e062tMm+0CrNcDwfMwmF8w g47zuFzkzTYy/d6/waoHbbCLsj1AM2kRQcWfuqglpgnSu7FdnIAE0dSAOS9Ni0uWDsFhRr3UUHq5 qnDzQXOrPXRMzMz1W8nqiyqXYfykrDrq0sjzaIj20BYA/6AlDSWs+XKid1EM3wOe40Kyl+1HWLsA MuY9CpQdAkQh4rJb6Sbgx57DXJ3INCSWjzZWYK0KAE0JF8XhP5zLGcvHI5Atm7gN8WiMZ+DFRM2z HIOlZ6zhp1VHSSbs+c64UJtGgt+cq7QvuyaIoqBP6rDHsLMPbjNR0w8CAwEAAaOBuTCBtjAdBgNV HQ4EFgQUyiEDfxLvYJqY+A8btt9sZFYPejYwHwYDVR0jBBgwFoAUJyrrHdlE2joXc2oJICDJJaj5 f7IwCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCA+gwJwYDVR0RBCAwHoEcYWxleGFuZHJlLm1hcnRp bnNAbmV0YXNxLmNvbTARBglghkgBhvhCAQEEBAMCBLAwHQYDVR0lBBYwFAYIKwYBBQUHAwQGCCsG AQUFBwMCMA0GCSqGSIb3DQEBBQUAA4IBAQCaSZdSJKRujYP6KnfKcyYYlNNqRdIyQm16o4BIIeGG qxQGxAO/dzcQziNVQcE+G8RHTcuivayhOX/NRhIlYxyvTN+wWAbC5NQuul4eQzGrz4OxWfrfpm9S DnDbLfHf1qdjyvFkTM8Wgq21/oExphasFHdOxi/txN4099Be/BZpV8Fpqa0dKEirG2Wa3KfEn85A WaKnNs/k3x95gr/eeTt1NdlT7OqVYqnUdUlRmQVNvEi29wIQbfYi2WeZIGlpNh0PBthWdBaXzMKU U/pfjIzZhyP8E4ghUKz4uvmpA901Qj9LEhSYqOKWALRNOk/dCcNd0LV8S54te/vsFkDTHWvlMYIC UjCCAk4CAQEwgaAwgZExCzAJBgNVBAYTAkZSMQ0wCwYDVQQIEwROb3JkMRowGAYDVQQHExFWaWxs ZW5ldXZlIGQnQXNjcTEuMCwGA1UEChMlTkVUQVNRIC0gU2VjdXJlIEludGVybmV0IENvbm5lY3Rp dml0eTEnMCUGA1UECxMeTkVUQVNRIENlcnRpZmljYXRpb24gQXV0aG9yaXR5AgpwxrFIFmvykGw0 MAkGBSsOAwIaBQCggYcwGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcN MTMxMDI0MTQyMDI5WjAjBgkqhkiG9w0BCQQxFgQUvZOUwEpKE7BT4vMkXtdkJT1RP58wKAYJKoZI hvcNAQkPMRswGTALBglghkgBZQMEAQIwCgYIKoZIhvcNAwcwDQYJKoZIhvcNAQEBBQAEggEANs8d dW2nc0fjg/AbviOwrzw+ZlOAiSIQQZ59FkPVLuJoXMOFClEUOjbnlB+u+MrAtpkGdbKDMjbX3QyR 8ytsisEtZovKIu8U+dLgFNjneFjfb/CTSR5hJuYLXUBuyaMkzQjOMqU2UjgcqEpA30Yr0UT18uic MQ3epgRjwiK5tv1R22BV659i10jWF5euAQ7x+Ty8zHhZFt9K53zWUwQMG9nRNvhTX8Y0d5A5NQsv 6c2oa3xOhAf6NVZkYRcODu3A50+NLUQmEcHq4aGhPeHnlficVQpudlwuteLnsdlDKr484eGVhdFd ueBaylLym4BZvzghRfHSNQ7aFQJ7KncpAQAAAAAAAA== --nextPart1776756.9qKd4RWsUc--