I have mpc83xx,
I saw that I need to use swab32 to any read\write operation from registers,
I don't understand why I need it?
Do I need it for all registers?
Why in the mpc8313 reference in registers description some bits look like
31,30,29,.,3,2,1,0
And some: 0,1,2,3.,30,31
Is it just mistake? Or some registers are different then other?
Yoni Levin wrote:
I have mpc83xx,
I saw that I need to use swab32 to any read\write operation from registers,
Only little endian registers (such as PCI).
Why in the mpc8313 reference in registers description some bits look like
31,30,29,.,3,2,1,0
And some: 0,1,2,3.,30,31
Most PowerPC documentation numbers bits in the same endianness as the
bytes in the register.
Is it just mistake? Or some registers are different then other?
I consider big-endian bit numbering to be a mistake, but good luck
getting them to fix it. :-)
-Scott
Yoni Levin wrote:
I have mpc83xx,
I saw that I need to use swab32 to any read\write operation from registers,
BTW, you should be using in/out_le32() (or for PCI MMIO, readl/writel)
rather than swab32(). This will be more efficient since it can use the
lwbrx/stwbrx instructions, and it will keep working even if the code is
run little-endian.
-Scott