[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] readl(), writel() endianess change



Hi Claudio,

Claudio Lanconelli wrote:

this change (swap byte in readl,writel) broke my drivers and I spent a day
to dig into the issue.
After the kernel CVS update my drivers suddenly stop to work!

/*
* Defines for accessing PCI memory. PCI is inherently little-endian,
* so on Microblaze we byte swap.  For a discussion on this, see
* http://lkml.org/lkml/2004/11/18/390

I guess the best way to do I/O in Microblaze drivers is with in_be32()
and out_be32(), can you confirm it?

Yes, in/out_be should be fine. We spent a lot of time researching the question of endianess for readl/writel, and in the end the most authoritive answer we found was that it should only be used for accessing the PCI bus, and is therefore little endian.

PS Post a warning message on the list next time, please!!

Sorry about that - will make sure any changes like this get flagged in future.

John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/