Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Sep 2002 14:55:49 -0700 (PDT)
From:      Patrick Bihan-Faou <patrick@mindstep.com>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/43345: Support for the SiS 651 ATA controller
Message-ID:  <200209242155.g8OLtnDu067178@www.freebsd.org>

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

>Number:         43345
>Category:       kern
>Synopsis:       Support for the SiS 651 ATA controller
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Sep 24 15:00:14 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Patrick Bihan-Faou
>Release:        RELENG_4 on i386
>Organization:
MindStep Corporation
>Environment:
Checked out using the following tags:

-r RELENG_4 -D "2002/09/14 00:00 UTC"

>Description:
The ATA controller in the SiS951 chipset is not recognized properly. This causes FreeBSD to treat it as a basic ATA controller. However using the default BIOS config (with ultra-dma enabled) this causes the system to freeze as soon as the system tries to use the hard drives.

While this controller supposedly supports ATA-133, using it like other ATA-100 chipsets from SiS fixes the problem.
>How-To-Repeat:
      
>Fix:
Either disable 'ultra-dma' from the bios or add code to detect the SiS951 integrated ATA controller in the same way as the SiS950 chipset.

The parent device ID for this chipset is: 0x06511039

The following patch does the trick:

--- ata-dma.c.orig      Mon Sep 16 15:46:42 2002
+++ ata-dma.c   Mon Sep 16 15:51:14 2002
@@ -503,6 +503,7 @@
            ata_find_dev(parent, 0x06401039, 0) ||      /* SiS 640 */
            ata_find_dev(parent, 0x06451039, 0) ||      /* SiS 645 */
            ata_find_dev(parent, 0x06501039, 0) ||      /* SiS 650 */
+           ata_find_dev(parent, 0x06511039, 0) ||      /* SiS 651 */
            ata_find_dev(parent, 0x07301039, 0) ||      /* SiS 730 */
            ata_find_dev(parent, 0x07331039, 0) ||      /* SiS 733 */
            ata_find_dev(parent, 0x07351039, 0) ||      /* SiS 735 */
bash-2.05a# diff -u ata-pci.c.orig ata-pci.c
--- ata-pci.c.orig      Mon Sep 16 15:41:26 2002
+++ ata-pci.c   Tue Sep 24 19:50:33 2002
@@ -190,6 +190,7 @@
            ata_find_dev(dev, 0x06401039, 0) ||
            ata_find_dev(dev, 0x06451039, 0) ||
            ata_find_dev(dev, 0x06501039, 0) ||
+           ata_find_dev(dev, 0x06511039, 0) ||
            ata_find_dev(dev, 0x07301039, 0) ||
            ata_find_dev(dev, 0x07331039, 0) ||
            ata_find_dev(dev, 0x07351039, 0) ||


These are against:
ata-pic.c 1.32.2.9
ata-dma.c 1.32.2.26


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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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