In-depth technology research: finding new ways to recover data, accessing firmware, writing programs, reading bits off the platter, recovering data from dust.

Forum rules

Please do not post questions about data recovery cases here (use this forum instead). This forum is for topics on finding new ways to recover data. Accessing firmware, writing programs, reading bits off the platter, recovering data from dust...
Post a reply

force PIO at drive level?

October 25th, 2008, 20:15

I'm working on a project that involves a CompactFlash card in an IDE adapter. For whatever reason, this particular card/adapter freezes up when the card is addressed in DMA mode (specifically multi-word mode 2) but works fine in PIO.

I know that the drive is responsible for advertising which transfer modes it is capable of. Is there any way to tell it that it should only try to operate in PIO mode, or to only advertise PIO as a possibility instead of DMA?

My feeling is that this would probably be on the firmware level and thus require some flash media equivalent of PC3K, but if anyone has any ideas on how to do it I'd love to hear it.

Re: force PIO at drive level?

October 26th, 2008, 10:51

In your case the Ide adapter section is the sole responsible, not the CF. If you can program it, it's ok. Otherwise you have to work at bios level or driver level. It's simple!

Re: force PIO at drive level?

October 26th, 2008, 17:20

You need to check the ATA/ATAPI spec for ECh (Identify device). The values you need are returned here, but you need to look at the spec to work out which bytes you need to look at to determine PIO modes accepted by the device.

Re: force PIO at drive level?

October 28th, 2008, 11:48

BlackST wrote:In your case the Ide adapter section is the sole responsible, not the CF. If you can program it, it's ok. Otherwise you have to work at bios level or driver level. It's simple!


The adapter is a straight passthrough, it doesnt have any logic on it at all.

Re: force PIO at drive level?

October 28th, 2008, 11:50

Daisy Woo wrote:You need to check the ATA/ATAPI spec for ECh (Identify device). The values you need are returned here, but you need to look at the spec to work out which bytes you need to look at to determine PIO modes accepted by the device.


Right... Ultimately I would like to modify the values that are returned by ECh such that it does not include any DMA modes.
Post a reply