English
Language : 

319282-007 Datasheet, PDF (178/586 Pages) Intel Corporation – 10 GbE Controller
Intel® 82598 10 GbE Controller
3.4.2.4.8 Configuration Customization Options PCI Function 2 – Word 0x39
This word is the same as word 31h, but for function 2 of the device.
3.4.2.4.9 Setup Options PCI Function 3 – Word 0x3A
This word is the same as word 30h, but for function 3 of the device.
3.4.2.4.10 Configuration Customization Options PCI Function 3 – Word 0x3B
This word is the same as word 31h, but for function 3 of the device.
3.4.2.5 EEPROM Checksum Calculation
#define IXGBE_EEPROM_CHECKSUM
0x3F
#define IXGBE_EEPROM_SUM
0xBABA
#define IXGBE_PCIE_ANALOG_PTR
03
#define IXGBE_FW_PTR
0F
static u16 ixgbe_eeprom_calc_checksum(struct ixgbe_hw *hw)
{
u16 i;
u16 j;
u16 checksum = 0;
u16 length = 0;
u16 pointer = 0;
u16 word = 0;
/* Include 0x0-0x3F in the checksum */
for (i = 0; i < IXGBE_EEPROM_CHECKSUM; i++) {
if (ixgbe_eeprom_read(hw, i, &word) != IXGBE_SUCCESS) {
DEBUGOUT("EEPROM read failed\n");
break;
}
checksum += word;
}
/* Include all data from pointers except for the fw pointer */
for (i = IXGBE_PCIE_ANALOG_PTR; i < IXGBE_FW_PTR; i++) {
ixgbe_eeprom_read(hw, i, &pointer);
/* Make sure the pointer seems valid */
if (pointer != 0xFFFF && pointer != 0) {
ixgbe_eeprom_read(hw, pointer, &length);
if (length != 0xFFFF && length != 0) {
for (j = pointer+1; j <= pointer+length; j++) {
ixgbe_eeprom_read(hw, j, &word);
checksum += word;
}
}
}
}
Intel® 82598 10 GbE Controller
Datasheet
178
Reference Number: 319282-007
Revision Number: 3.2
October 2010