Data Sheet
Interconnects—Ethernet Controller I210
75
3.3.9.4 Flow for Updating One of the RW Legacy EEPROM Modules
When updating one or several fields from a legacy EEPROM module there is a risk that a hardware auto-
load event occurs in the middle of the operation (due to a sudden PCIe reset for instance), leading to
the auto-load of an invalid or inconsistent content from the internal shadow RAM into the device
registers or memory. Therefore unless the field(s) can be updated by a single EEPROM-mode access,
the updating software must repeatedly use the following procedure for each legacy EEPROM module to
be updated:
1. Take ownership over the Flash via semaphore bits. Refer to Section 4.6.
2. Invalidate the pointer to the module to be modified by setting it to 0xFFFF via EEPROM-mode
access. This way, if a hardware auto-load of the module is attempted, the associated register
defaults are loaded instead. Do not invalidate pointers to firmware modules.
3. Modify the contents of the module via EEPROM-mode access.
4. Restore the pointers to the modified module(s) via EEPROM-mode access.
5. Compute and update the software checksum (word 0x3F) if the contents covered by the software
checksum was modified.
6. Release the Flash semaphore.
7. Set the FLUPD bit in EEC register to ask the device to load the internal shadow RAM into the Flash.
8. Firmware dumps the shadow RAM into the Flash.
9. Poll the FLUDONE bit in EEC register until it is set by the device.
Note: Depending on the modified RO items, a system reset is generally required for loading the
modifications into the device. Refer to the Loading Trigger column in Table 3-18.
3.3.9.5 Flow for Updating the Option ROM Module
Updating software should proceed as follows. If a power cycle occurs in the middle of the flow, the
updating application must rerun the entire flow.
1. Take ownership over the Flash via the semaphore bits. Refer to Section 4.6.
2. Initiate sector erase instructions to the fixed 512 KB area to which the Option ROM module is
mapped.
a. In order to guaranty Flash semaphore ownership, time should not exceed the 3 second / 1
second timeout. It is recommended to perform at this step no more than four / two 4 KB sector
erase operations at once in a burst, releasing semaphore ownership for 10 ms in between. This
way, other entities can insert Flash read accesses in between a burst without waiting for the
entire update process to complete, which may take several minutes.
3. Write the new Option ROM module contents at the same location it was before.
a. For the same reason as before, it is recommended to write at this step no more than four / two
4 KB sectors at once in a burst, releasing semaphore ownership for 10 ms in between.
4. Release the Flash semaphore.
3.3.10 Flash Security
The Flash update integrity feature ensures that only Intel approved firmware code (or another
protected Flash module) is able to be updated on the I210 devices after manufacturing. This procedure
is performed whenever attempting to update one of the protected modules. Refer to Flash update flows
in Section 3.3.9.