PIO, DMA, and general confusion

by hobbitalastair

The Toshiba Project continues!

My latest research has been focused on the hard drive, specifically, why it is limited to PIO 0.

With my new serial link, I’ve been trying various drivers and watching the output in an effort to figure out exactly why they don’t work. I’m no closer than before…

Currently, I know that both pata_isapnp and pata_legacy work. However, both fall back to PIO 0. The DSDT table suggests that at least three PIO modes are supported, so I should be able to get at least PIO 2 – 8.3MB/s, or at least twice as fast as PIO 0. However, it returns 0xFFFFFFFF for DMA, which suggests that I might not be able to get DMA to work. I’d like DMA – if I am correct, then the Piccolo chipset is capable of UDMA2, or 10 times faster than what I’ve got currently…

Anyway, pata_piccolo fails with ‘no available port’ and returns -19. Whatever that means. So does pata_acpi, although I think I was being overly hopeful with that one – the disks are under a non-standard name in the DSDT (HDD1.HD_1 as opposed to IDE1.DRV1).

I’ve been trying to understand exactly what the DSDT routines are doing, so that I can compare them with what the spec says – that should give me an idea as to whether or not my initial assumption (that device 0601 is a Piccolo chipset) is correct. Failing that, I’ll email the original author of pata_piccolo, and see whether he can help me identify the device. Along with that, I’ll continue to try to debug pata_piccolo, to get a better idea of exactly what fails and where.