1 ixp2800 network processor endianness, 43 little-endian encoding 44 big-endian encoding – Intel NETWORK PROCESSOR IXP2800 User Manual
Page 120
120
Hardware Reference Manual
Intel
®
IXP2800 Network Processor
Intel XScale
®
Core
3.10.1
IXP2800 Network Processor Endianness
Endianness defines the way bytes are addressed within a word. A little-endian system is one in
which byte 0 is the least significant byte (LSB) in the word and byte 3 is the most significant byte
(MSB). A big-endian system is one in which byte 0 is the MSB and byte 3 is the LSB. For
example, the value of 0x12345678 at address 0x0 in a 32-bit little-endian system looks like this:
The same value stored in a big-endian system is shown in
:
Bits within a byte are always in little-endian order. The least significant bit resides at bit location 0
and the most significant bit resides at bit location 7 (7:0).
The following conventions are used in this document:
Endianness for the IXP2800 network processor can be divided into three major categories:
•
Read and write transactions initiated by the Intel XScale
®
core:
— Reads initiated by the Intel XScale
®
core
— Writes initiated by the Intel XScale
®
core
•
SRAM and DRAM access:
— 64-bit Data transfer between DRAM and the Intel XScale
®
core
— Byte, word, or longword transfer between SRAM/DRAM and the Intel XScale
®
core
— Data transfer between SRAM/DRAM and PCI
— Microengine-initiated access to SRAM and DRAM
•
PCI Accesses
— Intel XScale
®
core generated reads/writes to PCI in memory space
— Intel XScale
®
core generated read/write of external/internal PCI configuration registers
Table 43. Little-Endian Encoding
Address/Byte
Lane
0x0/ByteLane 3
0x0/ByteLane 2
0x0/ByteLane 1
0x0/ByteLane 0
Byte Value
0x12
0x34
0x56
0x78
Table 44. Big-Endian Encoding
Address/Byte
Lane
0x0/ByteLane 3
0x0/ByteLane 2
0x0/ByteLane 1
0x0/ByteLane 0
Byte Value
0x78
0x56
0x34
0x12
1 Byte: 8-bit data
1 Word: 16-bit data
1 Longword: 32-bit data
Longword Little-Endian
Format (LWLE)
32-bit data (0x12345678) arranged as {12 34 56 78}
64-bit data 0x12345678 9ABCDE56 arranged as {12 34 56 78 9A BC DE 56}
Longword Big-Endian format
(LWBE):
32-bit data (0x12345678) arranged as {78 56 34 12}
64-bit data 0x12345678 9ABCDE56 arranged as {78 56 34 12, 56 DE BC 9A}