From owner-freebsd-bugs@FreeBSD.ORG Sat Jan 5 15:30:05 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A88DE16A47E for ; Sat, 5 Jan 2008 15:30:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B225313C4EA for ; Sat, 5 Jan 2008 15:30:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m05FU5Cj010528 for ; Sat, 5 Jan 2008 15:30:05 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m05FU5iN010521; Sat, 5 Jan 2008 15:30:05 GMT (envelope-from gnats) Date: Sat, 5 Jan 2008 15:30:05 GMT Message-Id: <200801051530.m05FU5iN010521@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Frank W. Josellis" Cc: Subject: Re: kern/118447: [ata] Troublesome DMA modes with VIA Apollo VP X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: "Frank W. Josellis" List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2008 15:30:05 -0000 The following reply was made to PR kern/118447; it has been noted by GNATS. From: "Frank W. Josellis" To: bug-followup@FreeBSD.org Cc: Subject: Re: kern/118447: [ata] Troublesome DMA modes with VIA Apollo VP Date: Sat, 5 Jan 2008 16:28:41 +0100 (CET) ERRATUM: Meanwhile I learned that my southbridge "chip=0x05861106 rev=0x02" is just a VT82C586, without a trailing 'A'. There is indeed no such letter marked on the chip, and according to the web article [1] the A-chip is actually supposed to support UDMA: The 586 originally had no USB or Ultra DMA. VIA added these features with the 586A, and then ACPI with the 586B. The 586B is the same as an AMD-645 chip. Last but not least, the Linux kernel assigns the following revs to the various chips: rev 0x00 - 0x0f -> 82C586 rev 0x20 - 0x2f -> 82C586A rev 0x30 - 0x4f -> 82C586B Provided that this is correct, the below patch presumably solves the whole problem for FreeBSD. Frank Josellis References: [1] http://www.ds-computing.com/chipset.htm --- patch begins here --- --- ata-chipset.c.orig Wed Jun 1 16:39:01 2005 +++ ata-chipset.c Sat Jan 5 16:11:28 2008 @@ -2784,7 +2784,7 @@ struct ata_pci_controller *ctlr = device_get_softc(dev); struct ata_chip_id *idx; static struct ata_chip_id ids[] = - {{ ATA_VIA82C586, 0x02, VIA33, 0x00, ATA_UDMA2, "VIA 82C586B" }, + {{ ATA_VIA82C586, 0x20, VIA33, 0x00, ATA_UDMA2, "VIA 82C586A" }, { ATA_VIA82C586, 0x00, VIA33, 0x00, ATA_WDMA2, "VIA 82C586" }, { ATA_VIA82C596, 0x12, VIA66, VIACLK, ATA_UDMA4, "VIA 82C596B" }, { ATA_VIA82C596, 0x00, VIA33, 0x00, ATA_UDMA2, "VIA 82C596" }, --- patch ends here ---