English
Language : 

82598EB Datasheet, PDF (470/596 Pages) Intel Corporation – Intel® 82598EB 10 Gigabit Ethernet Controller Datasheet
Intel® 82598EB 10 GbE Controller - SMBus Troubleshooting Guide
During the initialization phase, the firmware within the 82598EB allocates buffers based upon the
SMBus fragment size setting within the EEPROM. The 82598EB firmware has a finite amount of RAM for
its use, as such the larger the SMBus fragment size, the fewer buffers it can allocate. As such, the BMC
implementation must take care to send data over the SMBus in an efficient way.
For example, the 82598EB firmware has 3 KB of RAM it can use for buffering SMBus fragments. If the
SMBus fragment size is 32 bytes then the firmware could allocate 96 buffers of size 32 bytes each. As a
result, the BMC could then send a large packet of data (such as KVM) that is 800 bytes in size in 25
fragments of size 32 bytes apiece.
However, this might not be the most efficient way because the BMC must break the 800 bytes of data
into 25 fragments and send each one at a time.
If the SMBus fragment size is changed to 240 bytes, the 82598EB firmware can create 12 buffers of
240 bytes each to receive SMBus fragments. The BMC can now send that same 800 bytes of KVM data
in only four fragments, which is much more efficient.
The problem of changing the SMBus fragment size in the EEPROM is if the BMC does not also reflect this
change. If a programmer changes the SMBus fragment size in the 82598EB to 240 bytes and then
wants to send 800 bytes of KVM data, the BMC can still only send the data in 32 byte fragments. As a
result, the firmware runs out of memory.
This is because the 82598EB firmware created the 12 buffers of 240 bytes each for fragments, however
the BMC is only sending fragments of size 32 bytes. This results in a memory waste of 208 bytes per
fragment in this case, and when the BMC attempts to send more than 12 fragments in a single
transaction, the 82598EB NACKs the SMBus transaction due to not enough memory to store the KVM
data.
In summary, if a programmer increases the size of the SMBus fragment size in the EEPROM, which is
recommended for efficiency purposes, take care to ensure that the BMC implementation reflects this
change and uses that fragment size to its fullest when sending SMBus fragments.
5.3.12.8 Enable XSum Filtering
If XSum filtering is enabled, the BMC does not need to perform the task of checking this checksum for
incoming packets. Only packets that have a valid XSum is passed to the BMC, all others are silently
discarded.
This is a way to offload some work from the BMC.
5.3.12.9 Still Having Problems?
If problems still exist, contact your field representative. Before contacting, be prepared to provide the
following:
• The contents of status registers:
• 0x5820
• 0x5860
• 0x10148
• A SMBus trace if possible
• A dump of the EEPROM image
• This should be taken from the actual 82598EB, rather than the EEPROM image provided by
Intel. Parts of the EEPROM image are changed after writing, such as the physical EEPROM
size. This information could be key in helping assist in solving an issue.
470