Hi Tony,
It turns I'm having the same problem and saw you've done some research.
# dmesg| grep DMA
pciide0 at pci0 dev 15 function 0 VIA VT82C571 IDE rev 0x06: DMA,
channel 0 configured to compatibility, channel 1 configured to compatibility
wd0(pciide0:0:0): using PIO mode 4, DMA mode 2
It's due to chipset detection, so in the interm, I added this:
/usr/src/sys/dev/pci/pciide.c -- line 2650
case PCI_PRODUCT_VIATECH_VT82C571:
Or a diff:
--- pciide.c.orig Wed Nov 9 10:35:24 2005
+++ pciide.cWed Nov 9 10:35:43 2005
@@ -2648,6 +2648,7 @@
We have some motherboards with (what we think) are the same chips and
revisions with the same hard drives, but some drives are being detected
as DMA and others as ATA133. Here is an example:
pciide0 at pci0 dev 17 function 1 VIA VT82C571 IDE rev 0x06: ATA133,
channel 0 configured to
--On 12 September 2005 16:24 -0500, Tony Lambiris wrote:
We have some motherboards with (what we think) are the same chips and
revisions with the same hard drives, but some drives are being
detected as DMA and others as ATA133. Here is an example:
pciide0 at pci0 dev 17 function 1 VIA VT82C571
Well I thought I knew what the problem was (nope).. I found something
interesting though...
The motherboards that don't setup UDMA properly uses a VIA VT8237 ISA
for pcib; the one's that setup UDMA properly uses a VIA VT8235 ISA. I
added some debugging in pciide.c in function apollo_chip_map
I forgot to ask, would it be bad practice to just add
PCI_PRODUCT_VIATECH_VT82C571 to one of the cases in the switch
statement? It seems like this might go a little deeper
Tony Lambiris wrote:
Well I thought I knew what the problem was (nope).. I found something
interesting though...
Sorry for all the noise, this seems to have fixed it (from NetBSD):
--- via82c586.c.origMon Sep 12 19:38:35 2005
+++ via82c586.c Mon Sep 12 20:27:28 2005
@@ -256,9 +256,10 @@
reg = pci_conf_read(ph-ph_pc, ph-ph_tag,
VP3_CFG_PIRQ_REG);
Man I must need sleep or something... this doesn't fix my problem, I
forgot I had the extra case in the switch statement still in pciide.c.
That did work, however, adding PCI_PRODUCT_VIATECH_VT82C571 as a case.
Like I said before I don't know if this is the right way to do this, but
it's a
8 matches
Mail list logo