kern/121521: add VIA CX700M2 chipset to ata driver

Yoshihiko Sarumaru mistral at imasy.or.jp
Sun Mar 9 14:10:02 UTC 2008


>Number:         121521
>Category:       kern
>Synopsis:       add VIA CX700M2 chipset to ata driver
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 09 14:10:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Yoshihiko Sarumaru
>Release:        FreeBSD 6.3-RELEASE i386
>Organization:
>Environment:
System: FreeBSD yumi.yamayuri.org 6.2-RELEASE-p3 FreeBSD 6.2-RELEASE-p3 #0: Tue Mar 27 01:55:53 JST 2007 root at yumi.yamayuri.org:/usr/obj/usr/src/sys/YUMI i386


	
>Description:
	FreeBSD ata driver doesn't know VIA CX700M2 chipset and it fallback
	to UDMA33 mode on boot.
	This patch introduces VIA CX700M2 to FreeBSD ata driver.
	I'm not sure this chipset has AHCI feature.
	http://www.via.com.tw/en/products/chipsets/c-series/cx700m/

	before:
	atapci0: <VIA ATA controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xff00-0xff0f at device 15.0 on pci0
	ad2: 152627MB <Hitachi HTE541616J9AT00 SB4OA75H> at ata1-master UDMA33

	after:
	atapci0: <VIA CX700M2 SATA300 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xff00-0xff0f at device 15.0 on pci0
	ad2: 152627MB <Hitachi HTE541616J9AT00 SB4OA75H> at ata1-master UDMA100
	# HTE541616J9AT00 is an UDMA100 device.

	CX700 and CX700M are also not have been added to ata driver,
	but I don't know PCI IDs of these chipsets, sorry.
>How-To-Repeat:
	
>Fix:
patch to FreeBSD 6.3-RELEASE.

--- sys/dev/ata/ata-pci.h.orig	2007-11-22 16:50:36.000000000 +0900
+++ sys/dev/ata/ata-pci.h	2008-03-09 21:41:58.000000000 +0900
@@ -374,6 +374,7 @@
 #define ATA_VIA6410             0x31641106
 #define ATA_VIA6420             0x31491106
 #define ATA_VIA6421             0x32491106
+#define ATA_VIACX700M2		0x53241106
 
 /* chipset setup related defines */
 #define AHCI            1
--- sys/dev/ata/ata-chipset.c.orig	2007-12-10 04:27:19.000000000 +0900
+++ sys/dev/ata/ata-chipset.c	2008-03-09 21:43:27.000000000 +0900
@@ -5276,6 +5276,7 @@
      { ATA_VIA8237A,  0x00, VIA133, 0x00,    ATA_UDMA6, "8237A" },
      { ATA_VIA8237S,  0x00, VIA133, 0x00,    ATA_UDMA6, "8237S" },
      { ATA_VIA8251,   0x00, VIA133, 0x00,    ATA_UDMA6, "8251" },
+     { ATA_VIACX700M2,0x00, VIA133, 0x00,    ATA_UDMA6, "CX700M2" },
      { 0, 0, 0, 0, 0, 0 }};
     static struct ata_chip_id new_ids[] =
     {{ ATA_VIA6410,   0x00, 0,      0x00,    ATA_UDMA6, "6410" },
@@ -5284,6 +5285,7 @@
      { ATA_VIA8237A,  0x00, 7,      0x00,    ATA_SA150, "8237A" },
      { ATA_VIA8237S,  0x00, 7,      0x00,    ATA_SA150, "8237S" },
      { ATA_VIA8251,   0x00, 0,      VIAAHCI, ATA_SA300, "8251" },
+     { ATA_VIACX700M2,0x00, 0,      0x00,    ATA_SA300, "CX700M2" },
      { 0, 0, 0, 0, 0, 0 }};
 
     if (pci_get_devid(dev) == ATA_VIA82C571) {
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list