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