Re: iomapping a big endian area

From: Russell King
Date: Tue Apr 05 2005 - 14:08:14 EST


On Tue, Apr 05, 2005 at 09:05:15AM -0500, James Bottomley wrote:
> On Tue, 2005-04-05 at 08:42 +0100, Russell King wrote:
> > Not so. There are two different styles of big endian. (Lets just face
> > it, BE is fucked in the head anyway...)
> >
> > physical bus: 31...24 23...16 15...8 7...0
> >
> > BE version 1 (word invariant)
> > byte access byte 0 byte 1 byte 2 byte 3
> > word access 31-24 23-16 15-8 7-0
> >
> > BE version 2 (byte invariant)
> > byte access byte 3 byte 2 byte 1 byte 0
> > word access 7-0 15-8 23-16 31-24
>
> These are just representations of the same thing. However, I did
> deliberately elect not to try to solve this problem in the accessors. I
> know all about the register relayout, because 53c700 has to do that on
> parisc.

They aren't. On some of our platforms, we have to exclusive-or the address
for byte accesses with 3 to convert to the right endian-ness.

Sure, from the point of view of which byte each byte of a word represents,
it's true that they're indentical. But as far as the hardware is concerned,
they're definitely different.

See the Intel IXP platforms for an example.

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/