Davicom DM9000A on MPC5200B (powerpc) works using a dirty offsetting and byte trick
Henk Stegeman
henk.stegeman at gmail.com
Mon Mar 9 20:32:19 EST 2009
Juergen,
I don't understand how this would work,
Now I do one byte-swap, which works.
-I byteswap in software, for 16-bit cycles by byte swapping and for 8
bit cycles by adding an offset of 1.
(The byte swapping on the chipselect is off)
Your advice includes two byteswaps, one by re-routing the data bus and
one by enabling the byte swap on the chip-select.
Or does one of them not really swap bytes?
Henk
On Sat, Mar 7, 2009 at 11:09 AM, Juergen Beisert <jbe at pengutronix.de> wrote:
> Henk,
>
> On Freitag, 20. Februar 2009, Henk Stegeman wrote:
>> - Any suggestions to what could be wrong here? Or does the MPC5200 in
>> this case only byte swap u16 reads, but a u8 read is unchanged?
>
> You should not follow the Freescale bus signal names when you connect your
> external little endian device. Otherwise the offsets are always wrong.
>
> Do it in this way instead:
>
> MPC LE Device
> D[0..7] <-> D[24..31]
> D[8..15] <-> D[16..23]
> D[16..23] <-> D[8..15]
> D[24..31] <-> D[0..7]
>
> If you connect your device in such a way, just enable CS's byte swap feature
> depending on your bus size and you are done (no additional software
> manipulation required). Now you can write bytes, words or longs and you will
> always write the correct data into the corresponding device register.
>
> Hope it helps
> Juergen
>
> --
> Pengutronix e.K. | Juergen Beisert |
> Linux Solutions for Science and Industry | Phone: +49-8766-939 228 |
> Vertretung Sued/Muenchen, Germany | Fax: +49-5121-206917-5555 |
> Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de/ |
>
More information about the Linuxppc-dev
mailing list