Okay, here's the latest scoop:
UDMA2: corruption
UDMA1: not tried
UDMA0: no corruption
DMA2: no corruption (identical timings to UDMA0/PIO4)
PIO4: no corruption (identical timings to DMA2/UDMA0)
Looks like we could put together a kernel patch to auto-detect
the card, and automatically convert UDMA2 settings to UDMA0
to prevent data corruption.
Easy to do for the chipset, but the drive also needs to be told,
via "hdparm -X64".
PROBLEM: some drives require a reset (?) when changing UDMA modes.
Ugh.
Maybe for linux-2.1.xxx, we should just have the kernel auto-detect
the chipset, check for UDMA > 0, and not use DMA if the chipset is
programmed for UDMA > 0.
The user can then later correct this using /proc/ide/*/config and hdparm.
For linux-2.3.xxx, we can add significantly more functionality to
to the kernel to do all this automatically.
-- mlord@pobox.com- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/