kern/60278: add support for Sis 96x

Yen-Ming Lee leeym at utopia.leeym.com
Mon Dec 15 12:40:23 PST 2003


>Number:         60278
>Category:       kern
>Synopsis:       add support for Sis 96x
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Dec 15 12:40:13 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Yen-Ming Lee
>Release:        FreeBSD 5.2-RC i386
>Organization:
>Environment:
System: FreeBSD utopia.leeym.com 5.2-RC FreeBSD 5.2-RC #3: Tue Dec 16 04:18:02 CST 2003 leeym at utopia.leeym.com:/mnt3/obj/usr/src/sys/UTOPIA i386


>Description:

Sis 963L returns 0x55131039 as its PCI ID.

# pciconf -l|grep atapci
atapci0 at pci0:2:5:       class=0x01018a card=0x55131039 chip=0x55131039 rev=0x00 hdr=0x00


>How-To-Repeat:

Install FreeBSD on the box with SiS 963L controller on the motherboard,
says "MSI 661FM-L" or "Asrock K7S8X"

>Fix:

	

--- ata-chipset.c.diff begins here ---
Index: ata-chipset.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v
retrieving revision 1.50
diff -u -r1.50 ata-chipset.c
--- ata-chipset.c	8 Dec 2003 09:22:20 -0000	1.50
+++ ata-chipset.c	15 Dec 2003 20:28:05 -0000
@@ -1957,10 +1957,11 @@
     if (!(idx = ata_find_chip(dev, ids, -pci_get_slot(dev)))) 
 	return ENXIO;
 
-    if (idx->cfg1 == SIS_SOUTH) {
+    if (idx->cfg1 == SIS_SOUTH || idx->cfg1 == SIS33) {
 	pci_write_config(dev, 0x57, pci_read_config(dev, 0x57, 1) & 0x7f, 1);
 	if (pci_read_config(dev, 0x00, 4) == ATA_SIS5518) {
 	    idx->cfg1 = SIS133NEW;
+	    idx->max_dma = ATA_UDMA6;
 	    sprintf(buffer, "SiS 96X %s controller",ata_mode2str(idx->max_dma));
 	}
 	else {
--- ata-chipset.c.diff ends here ---


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


More information about the freebsd-bugs mailing list