MPC5200 PCI byte-swapping

Mark Chambers markc at
Tue Jan 4 01:07:39 EST 2005

> Mark Chambers wrote:
> >I've just realized that the 5200 does byte-lane swapping
> >on all PCI accesses.  That is, if you write a 32 bit word
> >0x12345678, 0x12 will go out on byte 0, 0x34 on byte 1,
> >etc.  Unfortunately, my target, a T.I. DM642, does not
> >do this, so I've got a big/little endian mismatch.  A couple
> >of questions if anybody knows:
> >
Sylvain wrote:

> I'm not sure of what you mean but look at the mapping
> aroung pdf page 337 of the user manual. It's not configurable
> as far as I can see.

Thanks.  I had an older manual that didn't spell it out so

I've been trying to interpret the PCI sections for some other
82xx family parts, and it appears that they do NOT do this
byte lane swapping, so this make the 5200 non-standard in
this regard, which is unfortunate.  If I'm understanding this
right, one would have to have different drivers for a PCI
device on a 5200 and an 8270, for instance.

Also, I note that when doing simple block reads from pre-
fetchable PCI space, it appears the 5200 does not prefetch,
but does each read individually.  This is using stock ELDK
u-boot and 2.4.24 so I haven't yet determined if it's a
configuration matter, (or ruled out target disconnects)
but I'm suspecting that you can't get burst mode from the 
5200 without using DMA.

Mark Chambers

More information about the Linuxppc-embedded mailing list