[PATCH/RFC] ata: Add support for the MPC52xx ATA controller using libata

Jarno Manninen jarno.manninen at tut.fi
Sat Nov 18 05:49:48 EST 2006


On Friday 17 November 2006 00:12, Sylvain Munaut wrote:

> * The manual states we should check for the TIP bit before all
> PIO transaction. That's not really supported by libata and requires
> reimplementing almost all the hooks. But after talking to Freescale,
> it turnsout it's not really necessary. So this driver doesn't implement
> that check. I noticed no problem so far ...

I've had some bad experiences with 2.4 line kernel when using BAPI 2.2 on Rev. 
A 5200 while imposing heavy I/O load. Problems manifested as hanging XLB-bus 
and so on. Funny thing is that combinations like Rev.A + BAPI 2.1 and Rev.B + 
BAPI 2.[12] seem to be immune while doing similar stress tests.

Problems went away after wrapping PIO access like this:

1. Stop XLB-pipelining
2. Wait for TIP bit to go down.
3. Do the access
4. Restore XLB-pipelining.

Just polling for the TIP bit is not enough due to errata on Rev. A if the 
pipelining is enabled.

Just in case if someone else is having mysterious hangs on Rev.A:s with newer 
microcode. :)

- Jarno




More information about the Linuxppc-embedded mailing list