Malcolm Gillies wrote:
My PATA hard disk is crippled by CRC errors when it's on the same cable
as a 1GB SanDisk Ultra II CompactFlash card in CF to IDE adaptor. Any
ideas why?
By swapping around components, I've established that the problem is
unlikely due to the cable (which is 50cm long 80-wire), hard disk or
controller. When I swap to another, slower CF card (one that only
supports PIO rather than MWDMA), the error goes away and the hard disk
operates happily at UDMA/33.
..
ata_piix 0000:00:1f.1: version 2.11
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
ACPI: PCI Interrupt 0000:00:1f.1[A] -> Link [LNKC] -> GSI 11 (level,
low) -> IRQ
11
PCI: Setting latency timer of device 0000:00:1f.1 to 64
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max UDMA/100 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x0001ffa0
irq 14
ata2: PATA max UDMA/100 cmd 0x00010170 ctl 0x00010376 bmdma 0x0001ffa8
irq 15
ata1.00: CFA: SanDisk SDCFH-1024, HDX 4.07, max MWDMA2
ata1.00: 2001888 sectors, multi 0: LBA
ata1.01: ATA-7: SAMSUNG HD400LD, WQ100-14, max UDMA/100
ata1.01: 781422768 sectors, multi 0: LBA48
ata1.01: limited to UDMA/33 due to 40-wire cable
ata1.00: configured for MWDMA2
ata1.01: configured for UDMA/33
ata2.00: ATAPI: LG CD-ROM CRN-8245B, 1.18, max UDMA/33
ata2.00: configured for UDMA/33
..
Alan / Malcolm,
The fastest DMA speed reported for the CF is MWDMA2, which is considerably
slower than UDMA/33. When two devices share a cable, normally both must be
limited to the speed of the slower device, which is MWDMA2 in this case.
Both devices report being capable of 120ns cycle times for DMA,
but UDMA double-clocks those cycles, something that is incompatible
with non-UDMA devices.
I don't think we can safely assume that UDMA can co-operate with non-UDMA
on the same cable. In this case, it might be causing the CF device to falsely
detect control cycles.
???
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html