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 <j...@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/ | > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev