Figure 4-4 shows the EEPROM update process. For EEPROM
firmware update, the whole process shall be
executed twice as per the EEPROM memory
organization: the first execution is to update one
region and the second execution is to update the
other region. Firmware will automatically
determine which region (Region-0 or Region-1)
needs to be updated first. Below is the process
for EEPROM patch bundle update from a host.
- The flash update process can be initiated by the
host when the device is fully functioning in the
FWUP mode (External EEPROM or USB Endpoint Boot
Mode), and the port shall be disabled during the
update process.
- The host will get information on which of the two
regions is the current active region – The active
region is the region on the external EEPROM from
which the device successfully loaded the patch
bundle during the current boot, and it could be
either Region-0 or Region-1. In FWUP mode, it may
set the active region as Region-0 as default.
- The host shall first
attempt to update the contents of the inactive
region. Only after the inactive region is
successfully updated, the host shall attempt to
update the contents of the active region. This
process ensures that a redundant and valid copy of
the patch bundle is available on the external
EEPROM so that the device always successful boots,
thereby making the EERPOM update process
fail-safe.
- The host shall implement the sequence below to
update the patch bundle:
- Execute SFWi command to get information on
which region to update.
- Execute SFWd command to flash the patch
bundle data to the external EEPROM through the PD
controller. The patch bundle data is divided into
data pages and each page has 64 bytes of
data.
- Execute SFWs or SFWu command after
the patch bundle data is sent to complete the
whole EEPROM update operation. If secure flashing
is required, use SFWs to write signature
data and key data (total 64 bytes). Otherwise, use
SFWu to end the EEPROM update. Both
commands will swap the region header to the other
region which has not been updated if this is the
first execution of the EEPROM firmware
update.