Yosemite/440EP why are readl()/ioread32() setup to readlittle-endian?
Matt Porter
mporter at kernel.crashing.org
Thu Feb 2 14:07:21 EST 2006
On Wed, Feb 01, 2006 at 06:54:09PM -0600, Kumar Gala wrote:
> On Wed, 1 Feb 2006, Peter Korsgaard wrote:
>
> > >>>>> "Matt" == Matt Porter <mporter at kernel.crashing.org> writes:
> >
> > Matt> read*/write* and ioread*/iowrite* generate outbound little
> > Matt> endian cycles on ALL arches, period. They are intended
> > Matt> only for PCI use and have generic names only because of
> > Matt> the assumption that "all the world is a PC".
> >
> > What is the preferred way of accessing non-PCI devices then? Direct
> > pointer access?
>
> No direct pointer access is bad. On PPC You can use
> in_be{8,16,32}/out_be{8,16,32}
Ack. Also, it should be pointed out that there are countless
examples of PPC drivers where this is done properly. 4xx, 83xx,
85xx, etc. on-chip peripherals all do this since they are
naturally BE registers.
-Matt
More information about the Linuxppc-embedded
mailing list