Big and Little Endian Support
Copyright © 2002 Marvell
CONFIDENTIAL
Doc. No. MV-S300165-00, Rev. A
May 21, 2002, Preliminary
Document Classification: Proprietary Information
Page 153
An example is the following descriptor:
address 0x0
command/status
address 0x4
buffer size/byte count
address 0x8
buffer pointer
address 0xC
next descriptor pointer
must be written to memory on the CPU bus as followed:
address 0x0
buffer size/byte count
address 0x4
command/status
address 0x8
next descriptor pointer
address 0xC
buffer pointer
Note
All the data in the descriptor must be written on the CPU bus as Little Endian. The word swap is done only
by the software. There is no hardware support for this swap. The programer must switch the polarity of bit
2 of the address (0x0 <=> 0x4).
D.3 PCI Interface
The PCI interface only supports Little Endianess.
The problem with working in Big Endian is that the PCI is a 32-bit bus. Even with the extension to PCI64, every
transaction ends as a 32-bit transaction depending on the master and slave.
Big Endianess depends on the bus width. Because of that, the GT-64260A must work on the PCI in Big-32 mode.
If it is necessary to work with the PCI with Big-64, all of the transactions will have 8 byte width.
D.4 Swapping Options
Data swapping is made in the Lunit slave master.
Table 35:
PCI Big Endian Bit Ordering
Big Endian on a 32bit bus
width.
4
5
6
7
-
0
1
2
3