Bug #643
openinternal programmer: BCR write enable failure causes flash write to fail on Intel Tiger Lake (regression since v1.5)
0%
Description
Summary¶
Since flashrom v1.5, writing to the internal flash fails on Intel Tiger Lake LP
platforms. The same operation succeeds with v1.4.0.
Symptoms¶
flashrom v1.5+ attempts to set BIOS Control Register (BCR) bit BIOSWE at 0xdc,
fails, and aborts with a transaction error:
Warning: Setting BIOS Control at 0xdc from 0x88 to 0x89 failed.
New value is 0x88.
SPI Configuration is locked down.
...
Transaction error between offset 0x00500000 and 0x00500000
Write Failed!
v1.4.0 behavior (working)¶
v1.4.0 detects the SPI lockdown, logs "OK" and proceeds using hardware
sequencing — the write succeeds:
SPI Configuration is locked down.
Enabling hardware sequencing because some important opcode is locked.
OK.
...
Verifying flash... VERIFIED.
Suspected cause¶
The regression likely originates from one or both changes introduced in v1.5:
- ichspi: Change the opcode position for reprogramming on the fly 2->4
- ichspi: Merge spi_master implementations for Intel ich
- Possibly related to the ECAM transition (libpci >= 3.13.0) changing how
PCI registers are accessed, affecting BCR read/write behavior.
Workaround¶
Using flashrom v1.4.0 compiled from source works correctly on the same system.
Steps to reproduce¶
sudo flashrom -p internal:laptop=this_is_not_a_laptop -w firmware.bin
No data to display