I have made changes to serverworks.c to support UDMA 6 and tested on CSB5.
It works fine and the Maxtor 160 GB drives are detected in the UDMA 6 mode
both in the kernel log messages on bootup and in the IDENTIFY information
from the drive.
Following changes in in config_chipset_for_dma(..)
if ( (id->dma_ultra & 0x0040) || (ultra100)) {
speed = XFER_UDMA_6;
}
and
return ((int) ((id->dma_ultra >> 14) & 3) ? ide_dma_on :
((id->dma_ultra >> 11) & 7) ? ide_dma_on :
((id->dma_ultra >> 8) & 7) ? ide_dma_on :
((id->dma_mword >> 8) & 7) ? ide_dma_on :
((id->dma_1word >> 8) & 7) ? ide_dma_on :
ide_dma_off_quietly);
We can also set the UDMA speed successfully from hdparm and the changes show
UDMA 6. I have add long runs with these changes and the controller/drive
seem to work fine.
hdparm -x70 /dev/hdX
Thanks
Manish