kern/118447: [ata] Troublesome DMA modes with VIA Apollo VP
Frank W. Josellis
frank at dynamical-systems.org
Sat Jan 5 07:30:05 PST 2008
The following reply was made to PR kern/118447; it has been noted by GNATS.
From: "Frank W. Josellis" <frank at dynamical-systems.org>
To: bug-followup at 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:
<quote>
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.
</quote>
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 ---
More information about the freebsd-bugs
mailing list