Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Jan 2006 12:42:08 GMT
From:      Christer Solskogen <solskogen@carebears.mine.nu>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/91502: ICH7 - finds only 2 out of 4 drives
Message-ID:  <200601081242.k08Cg855045515@www.freebsd.org>
Resent-Message-ID: <200601081250.k08Co3kN067846@freefall.freebsd.org>

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

>Number:         91502
>Category:       kern
>Synopsis:       ICH7 - finds only 2 out of 4 drives
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 08 12:50:02 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Christer Solskogen
>Release:        6.0-RELEASE
>Organization:
>Environment:
FreeBSD shine.carebears.net 6.0-RELEASE-p1 FreeBSD 6.0-RELEASE-p1 #0: Sat Jan  7 18:27:23 CET 2006     root@shine.carebears.net:/files3/build/obj/usr/src/sys/SHINE  amd64
   
>Description:
I got myself a mainboard with the ICH7 chipset. This chipset is supported
in FreeBSD, but on my board it had a problem. It found only 2 of my four
disks (ad0 and ad2) I tried updating to 6.0-stable (from 6.0-release) but
the problem resist.
I found a patch at bsdforums that did indeed work.       
>How-To-Repeat:
Install FreeBSD on a ICH7 mainbord with 4 SATA. 
(atacontrol finds the controllers, but not drivers attached)
>Fix:
Taken from http://www.bsdforums.org/forums/showthread.php?threadid=37304

--- ata-chipset.c       Thu Oct 13 10:07:46 2005
+++ ata-chipset-ich7.c  Sun Dec 11 23:25:48 2005
@@ -1845,10 +1845,13 @@
     struct ata_channel *ch = device_get_softc(dev);
     int mask, timeout;

-    /* ICH6 has 4 SATA ports as master/slave on 2 channels so deal with
pairs */
+    /* ICH6/7 has 4 SATA ports as master/slave on 2 channels so deal with
pairs */
     if (ctlr->chip->chipid == ATA_I82801FB_S1 ||
        ctlr->chip->chipid == ATA_I82801FB_R1 ||
-       ctlr->chip->chipid == ATA_I82801FB_M) {
+       ctlr->chip->chipid == ATA_I82801FB_M  ||
+       ctlr->chip->chipid == ATA_I82801GB_S1 ||
+       ctlr->chip->chipid == ATA_I82801GB_R1 ||
+       ctlr->chip->chipid == ATA_I82801GB_M) {
        mask = (0x0005 << ch->unit);
     }
     else {
>Release-Note:
>Audit-Trail:
>Unformatted:



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