Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Oct 2013 16:20:29 +0200
From:      Alexandre Martins <alexandre.martins@netasq.com>
To:        mav@freebsd.org
Cc:        fabien.thomas@netasq.com, current@freebsd.org, fabient@freebsd.org
Subject:   Re: Troubles with VIA VX900 chipset
Message-ID:  <2111820.j2pnCBbuyC@pc-alex.netasq.com>
In-Reply-To: <2304698.vixPKsOToE@pc-alex.netasq.com>
References:  <2304698.vixPKsOToE@pc-alex.netasq.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--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--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2111820.j2pnCBbuyC>