beautypg.com

1 ixp2800 network processor endianness, 43 little-endian encoding 44 big-endian encoding – Intel NETWORK PROCESSOR IXP2800 User Manual

Page 120

background image

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

Table 44

:

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}