Endian Control (Byte and Word Swapping)
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 201
Word Swap Non-Frame Data = 0 and Byte Swap Non-Frame Data = 0
This would require the software to use the following little-endian data structure on the host:
In this case, the data structure takes on a slightly new format because the words have been swapped.
Word Swap Non-Frame Data = 1 and Byte Swap Non-Frame Data = 0
This requires the software to use the following little-endian data structure on the host:
The disadvantage of this approach is if the host operating system supported a 64-bit data type for a physical
address, the host device driver would have to swap the two 32-bit words that comprise the 64-bit address that
the host operating system used.
Word Swap Non-Frame Data = 0 and Byte Swap Non-Frame Data = 1
This requires the software to use the following big-endian data structure on the host:
Table 70: Send Buffer Descriptor (Little-Endian 32-Bit format) with No Swapping
Byte #
3
2
1
0
Bit #
31
15
Host Address
0x00
MSB
0x04
Reserved
VLAN
0x08
MSB
Length
Flags
0x0C
Table 71: Send Buffer Descriptor (Little-Endian 32-Bit format) with Word Swapping
Byte #
3
2
1
0
Bit #
31
15
MSB
Host Address
0x00
0x04
MSB
Length
Flags
0x08
Reserved
VLAN
0x0C
Table 72: Send Buffer Descriptor (Big-Endian 32-bit format) with Byte Swapping
Byte #
0
1
2
3
Bit #
31
15
MSB
Host Address
0x00
0x04
Reserved
VLAN
0x08
MSB
Length
Flags
0x0C