Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jul 2008 10:47:04 GMT
From:      "M.R. Fremouw" <maarten@fremouw.nl>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/125713: Add support for AHCI on MCP67 chipset
Message-ID:  <200807171047.m6HAl4UM067269@www.freebsd.org>
Resent-Message-ID: <200807171050.m6HAo2lm087372@freefall.freebsd.org>

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

>Number:         125713
>Category:       kern
>Synopsis:       Add support for AHCI on MCP67 chipset
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jul 17 10:50:02 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     M.R. Fremouw
>Release:        FreeBSD 7.0-STABLE
>Organization:
>Environment:
FreeBSD UberAap.lan 7.0-STABLE FreeBSD 7.0-STABLE #10: Thu Jul 17 09:19:36 UTC 2008     root@UberAap.lan:/usr/obj/usr/src/sys/GENERIC  amd64
>Description:
The attached patch adds support for AHCI in combination with the Nvidia MCP67 chipset.
>How-To-Repeat:

>Fix:


Patch attached with submission follows:

diff -Naur sys.orig/dev/ata/ata-chipset.c sys/dev/ata/ata-chipset.c
--- sys.orig/dev/ata/ata-chipset.c	2008-07-16 16:23:41.000000000 +0000
+++ sys/dev/ata/ata-chipset.c	2008-07-16 16:28:55.000000000 +0000
@@ -3047,6 +3047,8 @@
      { 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_S1, 0, 0,         AHCI,    ATA_SA300, "nForce MCP67" },
+     { ATA_NFORCE_MCP67_S2, 0, 0,         AHCI,    ATA_SA300, "nForce MCP67" }, 
      { ATA_NFORCE_MCP73,    0, AMDNVIDIA, NVIDIA,  ATA_UDMA6, "nForce MCP73" },
      { ATA_NFORCE_MCP77,    0, AMDNVIDIA, NVIDIA,  ATA_UDMA6, "nForce MCP77" },
      { 0, 0, 0, 0, 0, 0}} ;
@@ -3077,6 +3079,9 @@
 						   &ctlr->r_rid2, RF_ACTIVE))) {
 	    int offset = ctlr->chip->cfg2 & NV4 ? 0x0440 : 0x0010;
 
+            if(ctlr->chip->cfg2 == AHCI)
+                return ata_ahci_chipinit(dev);
+
 	    ctlr->allocate = ata_nvidia_allocate;
 	    ctlr->reset = ata_nvidia_reset;
 
diff -Naur sys.orig/dev/ata/ata-pci.h sys/dev/ata/ata-pci.h
--- sys.orig/dev/ata/ata-pci.h	2008-07-16 16:23:42.000000000 +0000
+++ sys/dev/ata/ata-pci.h	2008-07-16 16:26:45.000000000 +0000
@@ -238,6 +238,8 @@
 #define ATA_NFORCE_MCP61_S3     0x03f710de
 #define ATA_NFORCE_MCP65        0x044810de
 #define ATA_NFORCE_MCP67        0x056010de
+#define ATA_NFORCE_MCP67_S1     0x055410de // AHCI
+#define ATA_NFORCE_MCP67_S2     0x058410de // Linux AHCI
 #define ATA_NFORCE_MCP73        0x056c10de
 #define ATA_NFORCE_MCP77        0x075910de
 


>Release-Note:
>Audit-Trail:
>Unformatted:



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