Endian Conversion on Intel Based Single Board Computer

Description

The Intel Pentium based VMEbus SBCs use a different byte-ordering than the Motorola based 680x0 VMEbus modules.    Endian conversion or byte swapping is necessary because of the byte ordering differences between Motorola-compatible 680x0 VMEbus modules and the PCI to VMEbus interface on the Intel Pentium based microprocessors.  The VMEbus specification does not specify which byte of a Multi-byte transfer is most significant.  The VMEbus Specification does require certain byte lanes be associated with certain byte addresses.  Byte 0 must be transferred on D31-D24.  Byte 3 must be transferred on D7-D0.  The Motorola 680x0 processor writes multiple-byte data with the most significant byte at the lowest byte address.  This is the reason that they are called "big-endian".  The Intel Pentium 80X86 microprocessors write multiple-byte data with the most significant byte at the highest byte address.  This is the reason that they are called "little-endian".   The Pentium based SBCs use the Intel type processors which write data in the "little-endian" format.  The Endian conversion hardware is needed to allow the data to be translated into "big-endian" format on the VMEbus. 

Resolution

Pentium, Tundra Universe based SBCs have external Endian Conversion hardware that allows the user to configure the Byte Ordering on 16-bit and 32-bit transfers.  Two bits in the System Register control  Endian Conversion hardware.   The Master endian conversion bit enables the Endian conversion when the SBC is originating a Bus access to the VMEbus.   The Slave endian conversion bit enables the Endian conversion when the SBC is the destination for a Bus access.   Only 16 bit and 32 bit transfers can be converted.   Byte transfers are not converted.  Unaligned transfers are also not converted because they consist of a 3 byte transfer.  The Tundra Universe II chip breaks a 3 byte transfer into a Word and Byte transfer.   If this was converted, it would cause a word within the 3 bytes to be swapped.    This only affects transfers from the microprocessor to the VMEbus.   More information on Endian Conversion is included in Chapter 4 of the Tundra Universe II manual.