Bug 174880

Summary: ATI SB600 AHCI problem on BSD 8 and above
Product: Base System Reporter: NIKA <ngovoruha>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description NIKA 2013-01-01 12:40:00 UTC
I have a bug when installing BSD 8.3 and 9.1 on my ASUS A7U notebook (ATI RS690 chipset, SB600 south bridge). I get a message:

ahcich1: Timeout on slot 0 port 0 is 00000002 cs 00000000 ss 00000000 rs 00000001 tfd 50 serr 00000000 cmd 00042017.

So, install program can not see my hard drive, and can not resume install. My BIOS does not have option to switch to PATA mode, so AHCI is required.

In same time, BSD 7.4 can see it. With BSD 7.4 is no problem. Clearly, some bug in AHCI or ATA-ATI driver appeared in 8R.

I am interested to use PCBSD, but can not do it. Please, help.

How-To-Repeat: Try to run install program on ASUS A7U :)
Comment 1 dfilter service freebsd_committer freebsd_triage 2013-01-24 09:34:01 UTC
Author: mav
Date: Thu Jan 24 09:33:43 2013
New Revision: 245875
URL: http://svnweb.freebsd.org/changeset/base/245875

Log:
  Disable MSI interrupts for SB600 chipset.  According to the report they are
  not functional.
  
  PR:		kern/174880, kern/174985, kern/175002
  MFC after:	1 week

Modified:
  head/sys/dev/ahci/ahci.c

Modified: head/sys/dev/ahci/ahci.c
==============================================================================
--- head/sys/dev/ahci/ahci.c	Thu Jan 24 09:30:42 2013	(r245874)
+++ head/sys/dev/ahci/ahci.c	Thu Jan 24 09:33:43 2013	(r245875)
@@ -114,8 +114,9 @@ static struct {
 #define AHCI_Q_NOAA	512
 #define AHCI_Q_NOCOUNT	1024
 #define AHCI_Q_ALTSIG	2048
+#define AHCI_Q_NOMSI	4096
 } ahci_ids[] = {
-	{0x43801002, 0x00, "ATI IXP600",	0},
+	{0x43801002, 0x00, "ATI IXP600",	AHCI_Q_NOMSI},
 	{0x43901002, 0x00, "ATI IXP700",	0},
 	{0x43911002, 0x00, "ATI IXP700",	0},
 	{0x43921002, 0x00, "ATI IXP700",	0},
@@ -634,6 +635,8 @@ ahci_setup_interrupt(device_t dev)
 	int i, msi = 1;
 
 	/* Process hints. */
+	if (ctlr->quirks & AHCI_Q_NOMSI)
+		msi = 0;
 	resource_int_value(device_get_name(dev),
 	    device_get_unit(dev), "msi", &msi);
 	if (msi < 0)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 2 dfilter service freebsd_committer freebsd_triage 2013-01-31 20:47:42 UTC
Author: mav
Date: Thu Jan 31 20:47:35 2013
New Revision: 246156
URL: http://svnweb.freebsd.org/changeset/base/246156

Log:
  MFC r245875:
  Disable MSI interrupts for SB600 chipset.  According to the report they are
  not functional.
  
  PR:		kern/174880, kern/174985, kern/175002

Modified:
  stable/9/sys/dev/ahci/ahci.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/dev/   (props changed)

Modified: stable/9/sys/dev/ahci/ahci.c
==============================================================================
--- stable/9/sys/dev/ahci/ahci.c	Thu Jan 31 20:32:11 2013	(r246155)
+++ stable/9/sys/dev/ahci/ahci.c	Thu Jan 31 20:47:35 2013	(r246156)
@@ -120,8 +120,9 @@ static struct {
 #define AHCI_Q_NOAA	512
 #define AHCI_Q_NOCOUNT	1024
 #define AHCI_Q_ALTSIG	2048
+#define AHCI_Q_NOMSI	4096
 } ahci_ids[] = {
-	{0x43801002, 0x00, "ATI IXP600",	0},
+	{0x43801002, 0x00, "ATI IXP600",	AHCI_Q_NOMSI},
 	{0x43901002, 0x00, "ATI IXP700",	0},
 	{0x43911002, 0x00, "ATI IXP700",	0},
 	{0x43921002, 0x00, "ATI IXP700",	0},
@@ -638,6 +639,8 @@ ahci_setup_interrupt(device_t dev)
 	int i, msi = 1;
 
 	/* Process hints. */
+	if (ctlr->quirks & AHCI_Q_NOMSI)
+		msi = 0;
 	resource_int_value(device_get_name(dev),
 	    device_get_unit(dev), "msi", &msi);
 	if (msi < 0)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 3 dfilter service freebsd_committer freebsd_triage 2013-01-31 20:49:09 UTC
Author: mav
Date: Thu Jan 31 20:48:56 2013
New Revision: 246157
URL: http://svnweb.freebsd.org/changeset/base/246157

Log:
  MFC r245875:
  Disable MSI interrupts for SB600 chipset.  According to the report they are
  not functional.
  
  PR:		kern/174880, kern/174985, kern/175002

Modified:
  stable/8/sys/dev/ahci/ahci.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/dev/   (props changed)
  stable/8/sys/dev/ahci/   (props changed)

Modified: stable/8/sys/dev/ahci/ahci.c
==============================================================================
--- stable/8/sys/dev/ahci/ahci.c	Thu Jan 31 20:47:35 2013	(r246156)
+++ stable/8/sys/dev/ahci/ahci.c	Thu Jan 31 20:48:56 2013	(r246157)
@@ -120,8 +120,9 @@ static struct {
 #define AHCI_Q_NOAA	512
 #define AHCI_Q_NOCOUNT	1024
 #define AHCI_Q_ALTSIG	2048
+#define AHCI_Q_NOMSI	4096
 } ahci_ids[] = {
-	{0x43801002, 0x00, "ATI IXP600",	0},
+	{0x43801002, 0x00, "ATI IXP600",	AHCI_Q_NOMSI},
 	{0x43901002, 0x00, "ATI IXP700",	0},
 	{0x43911002, 0x00, "ATI IXP700",	0},
 	{0x43921002, 0x00, "ATI IXP700",	0},
@@ -641,6 +642,8 @@ ahci_setup_interrupt(device_t dev)
 	int i, msi = 1;
 
 	/* Process hints. */
+	if (ctlr->quirks & AHCI_Q_NOMSI)
+		msi = 0;
 	resource_int_value(device_get_name(dev),
 	    device_get_unit(dev), "msi", &msi);
 	if (msi < 0)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
Comment 4 Alexander Motin freebsd_committer freebsd_triage 2013-01-31 20:54:13 UTC
State Changed
From-To: open->closed

Patch disabling MSI for SB600 chipset AHCI committed and merged to 8/9-STABLE.