MMIO and gcc re-ordering issue

Pantelis Antoniou panto at
Thu May 29 21:05:48 EST 2008

On 28 Μαϊ 2008, at 11:36 ΠΜ, Haavard Skinnemoen wrote:

> Benjamin Herrenschmidt <benh at> wrote:
>>>> I'm happy to say that __raw is purely about ordering and make them
>>>> byteswap on powerpc tho (ie, make them little endian like the non- 
>>>> raw
>>>> counterpart).
>>> That would break a lot of drivers.
>> How many actually use __raw_ * ?
> I do -- in all the drivers for on-chip peripherals that are shared
> between AT91 ARM (LE) and AVR32 (BE). Since everything goes on inside
> the chip, we must use LE accesses on ARM and BE accesses on AVR32.
> Currently, this is the only interface I know that can do native-endian
> accesses, so if you take it away, I'm gonna need an alternative
> interface that doesn't do byteswapping.
> Haavard

I certainly do too.

Quite a lot of SoC specific drivers use __raw for accessing their
on-chip peripherals.

Please don't change the __raw semantics, you'll end up breaking almost
everything that's BE.

-- Pantelis

More information about the Linuxppc-dev mailing list