I have previously backed up the bios and am attempting to erase it, and am left in an "unknown" state. My desire is to successfully execute the erase. I am constrained from physically disassembling the mx204 router to confirm the board and chip.
Multiple flash chip definitions match the detected chip(s): "MX25L12805D", "MX25L12833F", "MX25L12835F/MX25L12873F", "MX25L12845E/MX25L12865E", "MX25L12850F" I tried doing wp-status on all of them, and all responded "Cannot read SECURITY: unsupported by chip" except for "MX25L12850F" which responded: Protection range: start=0x00000000 length=0x00000000 (none) Protection mode: disabled
node:/var/tmp/fw/x86_64-linux-gnu/sbin# ./flashrom -p internal:laptop=this_is_not_a_laptop -c "MX25L12850F" --ifd -i bios --erase -noverify-all --force -V flashrom 1.4.0-devel on Linux 5.2.60-rt15-LTS19 (x86_64) flashrom is free software, get the source code at https://flashrom.org
flashrom was built with GCC 12.2.0, little endian Command line (11 args): ./flashrom -p internal:laptop=this_is_not_a_laptop -c MX25L12850F --ifd -i bios --erase -noverify-all --force -V Initializing internal programmer /sys/class/mtd/mtd0 does not exist No coreboot table found. Using Internal DMI decoder. No DMI table found. Found chipset "Intel C610/X99 (Wellsburg)" with PCI ID 8086:8d44. This chipset is marked as untested. If you are using an up-to-date version of flashrom *and* were (not) able to successfully update your firmware with it, then please email a report to flashrom@flashrom.org including a verbose (-V) log. Thank you! Enabling flash write... Root Complex Register Block address = 0xfed1c000 GCS = 0xc01: BIOS Interface Lock-Down: enabled, Boot BIOS Straps: 0x3 (unknown) Top Swap: not enabled 0x7fffffff/0x7fffffff FWH IDSEL: 0x0 0x7fffffff/0x7fffffff FWH IDSEL: 0x0 0x7fffffff/0x7fffffff FWH IDSEL: 0x1 0x7fffffff/0x7fffffff FWH IDSEL: 0x1 0x7fffffff/0x7fffffff FWH IDSEL: 0x2 0x7fffffff/0x7fffffff FWH IDSEL: 0x2 0x7fffffff/0x7fffffff FWH IDSEL: 0x3 0x7fffffff/0x7fffffff FWH IDSEL: 0x3 0x7fffffff/0x7fffffff FWH IDSEL: 0x4 0x7fffffff/0x7fffffff FWH IDSEL: 0x5 0x7fffffff/0x7fffffff FWH IDSEL: 0x6 0x7fffffff/0x7fffffff FWH IDSEL: 0x7 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled 0x7fffffff/0x7fffffff FWH decode enabled Maximum FWH chip size: 0x100000 bytes SPI Read Configuration: prefetching disabled, caching enabled, BIOS_CNTL = 0x22: BIOS Lock Enable: enabled, BIOS Write Enable: disabled Warning: BIOS region SMM protection is enabled! Warning: Setting BIOS Control at 0xdc from 0x22 to 0x01 failed. New value is 0x22. SPIBAR = 0x00007fa5f44f1000 + 0x3800 0x04: 0xe008 (HSFS) HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=1 SPI Configuration is locked down. Reading OPCODES... done 0x06: 0x0004 (HSFC) HSFC: FGO=0, FCYCLE=2, FDBC=0, SME=0 0x50: 0x00007a5b (FRAP) BMWAG 0x00, BMRAG 0x00, BRWA 0x7a, BRRA 0x5b 0x54: 0x00000000 FREG0: Flash Descriptor region (0x00000000-0x00000fff) is read-only. 0x58: 0x0fff0800 FREG1: BIOS region (0x00800000-0x00ffffff) is read-write. 0x5C: 0x07ff0003 FREG2: Management Engine region (0x00003000-0x007fffff) is locked. 0x60: 0x00020001 FREG3: Gigabit Ethernet region (0x00001000-0x00002fff) is read-write. Not all flash regions are freely accessible by flashrom. This is most likely due to an active ME. Please see https://flashrom.org/ME for details. 0x74: 0x8fff0de0 PR0: Warning: 0x00de0000-0x00ffffff is read-only. 0x78: 0x8dab0dab PR1: Warning: 0x00dab000-0x00dabfff is read-only. 0x7C: 0x8da30d80 PR2: Warning: 0x00d80000-0x00da3fff is read-only. 0x80: 0x8cfe0820 PR3: Warning: 0x00820000-0x00cfefff is read-only. 0x84: 0x80000000 PR4: Warning: 0x00000000-0x00000fff is read-only. At least some flash regions are read protected. You have to use a flash layout and include only accessible regions. For write operations, you'll additionally need the --noverify-all switch. See manpage for more details. 0x90: 0x84 (SSFS) SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 0x91: 0xf84150 (SSFC) SSFC: SCGO=0, ACS=0, SPOP=0, COP=5, DBC=1, SME=0, SCF=0 0x94: 0x0606 (PREOP) 0x96: 0xf27c (OPTYPE) 0x98: 0x0002209f (OPMENU) 0x9c: 0x00000503 (OPMENU+4) 0xa0: 0x00000000 (BBAR) 0xc4: 0x80802015 (LVSCC) LVSCC: BES=0x1, WG=1, WSR=0, WEWS=1, EO=0x20, VCL=1 0xc8: 0x00002015 (UVSCC) UVSCC: BES=0x1, WG=1, WSR=0, WEWS=1, EO=0x20 0xd0: 0x50444653 (FPB) OK. ======================================================================== You may be running flashrom on an unknown laptop. We could not detect this for sure because your vendor has not set up the SMBIOS tables correctly. Some internal buses have been disabled for safety reasons. You can enforce using all buses by adding -p internal:laptop=this_is_not_a_laptop to the command line, but please read the following warning if you are not sure.
Laptops, notebooks and netbooks are difficult to support and we recommend to use the vendor flashing utility. The embedded controller (EC) in these machines often interacts badly with flashing. See the manpage and https://flashrom.org/Laptops for details.
If flash is shared with the EC, erase is guaranteed to brick your laptop and write may brick your laptop. Read and probe may irritate your EC and cause fan failure, backlight failure and sudden poweroff. You have been warned. ======================================================================== The following protocols are supported: FWH, SPI. Probing for Macronix MX25L12850F, 16384 kB: compare_id: id1 0xc2, id2 0x2018 Added layout entry 00000000 - 00ffffff named complete flash Found Macronix flash chip "MX25L12850F" (16384 kB, SPI) mapped at physical address 0x00000000ff000000. Chip status register is 0x00. Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set Chip status register: Bit 6 is not set Chip status register: Block Protect 3 (BP3) is not set Chip status register: Block Protect 2 (BP2) is not set Chip status register: Block Protect 1 (BP1) is not set Chip status register: Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set This chip may contain one-time programmable memory. flashrom cannot read and may never be able to write it, hence it may not be able to completely clone the contents of this chip (see man page for details). Skipping writeprotect-based unlocking for read/verify operations. Reading ich descriptor... read_flash: region (00000000..0xffffff) is readable, reading range (00000000..0x000fff). done. Added layout entry 00000000 - 00000fff named fd Added layout entry 00800000 - 00ffffff named bios Added layout entry 00003000 - 007fffff named me Added layout entry 00001000 - 00002fff named gbe Using region: "bios". spi_read_register: read from register 5 not supported by programmer. wp_read_register: read from register 5 not is supported by programmer, writeprotect operations will assume it contains 0x00. spi_read_register: read from register 5 not supported by programmer. wp_read_register: read from register 5 not is supported by programmer, writeprotect operations will assume it contains 0x00. spi_read_register: read from register 5 not supported by programmer. wp_read_register: read from register 5 not is supported by programmer, writeprotect operations will assume it contains 0x00. spi_read_register: read from register 5 not supported by programmer. wp_read_register: read from register 5 not is supported by programmer, writeprotect operations will assume it contains 0x00. erase_write: region (00000000..0xffffff) is writable, erasing range (0x800000..0x800fff). Transaction error! SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0 SSFC: SCGO=0, ACS=1, SPOP=0, COP=1, DBC=0, SME=0, SCF=0 Running OPCODE 0x20 failed at address 0x800000 (payload length was 0). spi_write_cmd failed during command execution at address 0x800000 Erase/write done from 800000 to ffffff Erase Failedspi_read_register: read from register 5 not supported by programmer. wp_read_register: read from register 5 not is supported by programmer, writeprotect operations will assume it contains 0x00. spi_read_register: read from register 5 not supported by programmer. wp_read_register: read from register 5 not is supported by programmer, writeprotect operations will assume it contains 0x00. spi_read_register: read from register 5 not supported by programmer. wp_read_register: read from register 5 not is supported by programmer, writeprotect operations will assume it contains 0x00. Your flash chip is in an unknown state. Get help on IRC (see https://www.flashrom.org/Contact) or mail flashrom@flashrom.org with the subject "FAILED: <your board name>"!------------------------------------------------------------------------------- DO NOT REBOOT OR POWEROFF! Restoring MMIO space at 0x7fa5f44f48a0 Restoring PCI config space for 00:1f:0 reg 0xdc