Attention is currently required from: Anastasia Klimchuk, Angel Pons, David Hendricks.
1 comment:
Patchset:
Hi Anastasia […]
Hi Anastasia
Reference documentation
618610_Intel_Xeon_Processor_Family_D-2700_EDSVol_1_Rev2p0.pdf - Section 41.1.6 Firmware Components
631913_Xeon_D-1700_2700_SPI_PG_Rev2_0.pdf - Section 4.3 Region Access Control
intel-sps-5-0-me-bios-interface-575642-rev1-8.pdf - 4.15.2.9 Dual iRC Update Support
iRC – Intelligent Reset Controller
iRC is a regional firmware for the Intel BIOS Firmware for Mehlow, Idaville and Jacobsville platforms.
iRC is stored in Region 13 which is split in two even sections: active image and backup image. On startup higher version is chosen to by applied.
This means that the status of the two region is not fixed. The higher version area will become the active image and the other region will become the backup image.
According to #631913 SPI programming guide and ME 5.0 spec description, in addition to giving Region 13 read and write permissions, updating iRC must also unlock iRC through Host ME Region Flash Protection Override (HMRFPO) HECI commands, otherwise iRC will not be writable.
According to iRC Update Flow, the HMRFPO command will only unlock the backup image and can only update the backup image each time. The active image cannot be written.
So for iRC, the submitted changes are divided into the following two parts:
1. Trigger HMRFPO command before updating iRC. HMRFPO command needs to be executed by BIOS Firmware, and flashrom needs to cooperate with BIOS to trigger the command to unlock before updating.
2. Skip errors caused by active image writing failure and continue updating other regions. Since the active image is not writable, during the erasing, writing and verification processes, an error will occur in the active image, causing the flashrom to end its operation.
The revised commit has put the changes to the erase and write parts into ich_hwseq_wait_for_cycle_complete() of ichspi.c.
But the changes to the validation part are still in flashrom.c's compare_range(), which doesn't seem to be transferable to ichspi.c.
Thanks
KevinYu
To view, visit change 79340. To unsubscribe, or for help writing mail filters, visit settings.