Subject: why no Ultra-DMA mode 5 for ServerWorks CSB5 IDE 0x93 with WDC WD600JB-00CRA1 drive?
To: NetBSD-current Discussion List <current-users@NetBSD.ORG>
From: Greg A. Woods <>
List: current-users
Date: 04/29/2003 18:44:11
Anyone have any idea why this drive attaches with Ultra-DMA mode 2
instead of Ultra-DMA mode 5?

pciide0 at pci0 dev 15 function 1: ServerWorks CSB5 IDE Controller (rev. 0x93)
pciide0: bus-master DMA support present
pciide0: primary channel configured to compatibility mode
wd0 at pciide0 channel 0 drive 0: <WDC WD600JB-00CRA1>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 57241 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 117231408 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, DMA mode 2, Ultra-DMA mode 2 (Ultra/33) (using DMA data transfers)

This appears to be caused by the following code:

1.149 (mycroft  12-Apr-02):                      /* use Ultra/DMA, check for 80-pin cable */
1.149 (mycroft  12-Apr-02):                      if (drvp->UDMA_mode > 2 &&
1.149 (mycroft  12-Apr-02):                          (PCI_PRODUCT(pci_conf_read(sc->sc_pc, sc->sc_tag, PCI_SUBSYS_ID_REG)) & (1 << (14 + channel))) == 0)
1.149 (mycroft  12-Apr-02):                              drvp->UDMA_mode = 2;

I'm just going to comment it out for now.

We're guessing that maybe the test needs to be different for a 0x93
revision chip, especially since I found an example via google of a
rev. 0x92 chip and some drives running at UDMA-5 in a message containing
OpenBSD-3.2-current dmesg output....

								Greg A. Woods

+1 416 218-0098;            <>;           <>
Planix, Inc. <>; VE3TCP; Secrets of the Weird <>