Looks like it failed to overwrite the descriptor region (Intel ME-related headache): https://www.flashrom.org/ME
You can target regions more carefully using a layout file. It appears the other regions (ME, BIOS, GbE) are unlocked, so you can try creating a layout that includes only those regions. On Mon, Dec 19, 2016 at 7:54 PM, Shawn <cit...@gmail.com> wrote: > Hi flashrom maintainers, > > I failed to write a modified ROM to the flash via internal. Maybe this > chipset can only be writable via external programmer? > > root@sysresccd /root % flashrom -p internal > flashrom v0.9.8-r1888 on Linux 4.4.28-std490-amd64 (x86_64) > flashrom is free software, get the source code at http://www.flashrom.org > > Calibrating delay loop... OK. > Found chipset "Intel B75". > Enabling flash write... Warning: SPI Configuration Lockdown activated. > OK. > Found Macronix flash chip "MX25L6405" (8192 kB, SPI) mapped at > physical address 0xff800000. > Found Macronix flash chip "MX25L6405D" (8192 kB, SPI) mapped at > physical address 0xff800000. > Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) > mapped at physical address 0xff800000. > Found Macronix flash chip > "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E" (8192 kB, SPI) mapped at > physical address 0xff800000. > Multiple flash chip definitions match the detected chip(s): > "MX25L6405", "MX25L6405D", "MX25L6406E/MX25L6408E", > "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E" > Please specify which chip definition to use with the -c <chipname> option. > > > root@sysresccd /root % flashrom -VV -p internal -c MX25L6405 -w > factory_giga1.bin.new.new > flashrom v0.9.8-r1888 on Linux 4.4.28-std490-amd64 (x86_64) > flashrom is free software, get the source code at http://www.flashrom.org > > flashrom was built with libpci 3.4.1, GCC 4.8.5, little endian > Command line (7 args): flashrom -VV -p internal -c MX25L6405 -w > factory_giga1.bin.new.new > Calibrating delay loop... OS timer resolution is 1 usecs, 1944M loops > per second, 10 myus = 10 us, 100 myus = 117 us, 1000 myus = 1021 us, > 10000 myus = 10021 us, 4 myus = 4 us, OK. > Initializing internal programmer > No coreboot table found. > Using Internal DMI decoder. > DMI string chassis-type: "Desktop" > DMI string system-manufacturer: "Gigabyte Technology Co., Ltd." > DMI string system-product-name: "To be filled by O.E.M." > DMI string system-version: "To be filled by O.E.M." > DMI string baseboard-manufacturer: "Gigabyte Technology Co., Ltd." > DMI string baseboard-product-name: "B75M-D3V" > DMI string baseboard-version: "To be filled by O.E.M." > Found ITE Super I/O, ID 0x8728 on port 0x2e > Found chipset "Intel B75" with PCI ID 8086:1e49. > Enabling flash write... Root Complex Register Block address = 0xfed1c000 > GCS = 0xc64: BIOS Interface Lock-Down: disabled, Boot BIOS Straps: 0x3 > (SPI) > Top Swap: enabled (A16(+) inverted) > 0xfff80000/0xffb80000 FWH IDSEL: 0x0 > 0xfff00000/0xffb00000 FWH IDSEL: 0x0 > 0xffe80000/0xffa80000 FWH IDSEL: 0x1 > 0xffe00000/0xffa00000 FWH IDSEL: 0x1 > 0xffd80000/0xff980000 FWH IDSEL: 0x2 > 0xffd00000/0xff900000 FWH IDSEL: 0x2 > 0xffc80000/0xff880000 FWH IDSEL: 0x3 > 0xffc00000/0xff800000 FWH IDSEL: 0x3 > 0xff700000/0xff300000 FWH IDSEL: 0x4 > 0xff600000/0xff200000 FWH IDSEL: 0x5 > 0xff500000/0xff100000 FWH IDSEL: 0x6 > 0xff400000/0xff000000 FWH IDSEL: 0x7 > 0xfff80000/0xffb80000 FWH decode enabled > 0xfff00000/0xffb00000 FWH decode enabled > 0xffe80000/0xffa80000 FWH decode enabled > 0xffe00000/0xffa00000 FWH decode enabled > 0xffd80000/0xff980000 FWH decode enabled > 0xffd00000/0xff900000 FWH decode enabled > 0xffc80000/0xff880000 FWH decode enabled > 0xffc00000/0xff800000 FWH decode enabled > 0xff700000/0xff300000 FWH decode enabled > 0xff600000/0xff200000 FWH decode enabled > 0xff500000/0xff100000 FWH decode enabled > 0xff400000/0xff000000 FWH decode enabled > Maximum FWH chip size: 0x100000 bytes > SPI Read Configuration: prefetching enabled, caching enabled, > BIOS_CNTL = 0x09: BIOS Lock Enable: disabled, BIOS Write Enable: enabled > SPIBAR = 0xf7795000 + 0x3800 > 0x04: 0xe008 (HSFS) > HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=1 > Warning: SPI Configuration Lockdown activated. > Reading OPCODES... done > OP Type Pre-OP > op[0]: 0x02, write w/ addr, none > op[1]: 0x03, read w/ addr, none > op[2]: 0x20, write w/ addr, none > op[3]: 0x05, read w/o addr, none > op[4]: 0x9f, read w/o addr, none > op[5]: 0x01, write w/o addr, none > op[6]: 0x00, read w/o addr, none > op[7]: 0x00, read w/o addr, none > Pre-OP 0: 0x06, Pre-OP 1: 0x00 > 0x06: 0x0000 (HSFC) > HSFC: FGO=0, FCYCLE=0, FDBC=0, SME=0 > 0x08: 0x00000000 (FADDR) > 0x50: 0x0000ffff (FRAP) > BMWAG 0x00, BMRAG 0x00, BRWA 0xff, BRRA 0xff > 0x54: 0x00000000 FREG0: Flash Descriptor region > (0x00000000-0x00000fff) is read-write. > 0x58: 0x07ff0000 FREG1: BIOS region (0x00000000-0x007fffff) is read-write. > 0x5C: 0x04ff0001 FREG2: Management Engine region > (0x00001000-0x004fffff) is read-write. > 0x60: 0x00001fff FREG3: Gigabit Ethernet region is unused. > 0x64: 0x00001fff FREG4: Platform Data region is unused. > 0x74: 0x00000000 (PR0 is unused) > 0x78: 0x00000000 (PR1 is unused) > 0x7C: 0x00000000 (PR2 is unused) > 0x80: 0x00000000 (PR3 is unused) > 0x84: 0x00000000 (PR4 is unused) > 0x90: 0x84 (SSFS) > SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 > 0x91: 0xf94240 (SSFC) > SSFC: SCGO=0, ACS=0, SPOP=0, COP=4, DBC=2, SME=0, SCF=1 > 0x94: 0x0006 (PREOP) > 0x96: 0x043b (OPTYPE) > 0x98: 0x05200302 (OPMENU) > 0x9C: 0x0000019f (OPMENU+4) > 0xA0: 0x00000000 (BBAR) > 0xC4: 0x00802005 (LVSCC) > LVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=1 > 0xC8: 0x00002005 (UVSCC) > UVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20 > 0xD0: 0x00000000 (FPB) > Reading flash descriptors mapped by the chipset via FDOC/FDOD... done. > === Content Section === > FLVALSIG 0x0ff0a55a > FLMAP0 0x02040003 > FLMAP1 0x12100206 > FLMAP2 0x00210120 > > --- Details --- > NR (Number of Regions): 3 > FRBA (Flash Region Base Address): 0x040 > NC (Number of Components): 1 > FCBA (Flash Component Base Address): 0x030 > ISL (ICH/PCH Strap Length): 18 > FISBA/FPSBA (Flash ICH/PCH Strap Base Address): 0x100 > NM (Number of Masters): 3 > FMBA (Flash Master Base Address): 0x060 > MSL/PSL (MCH/PROC Strap Length): 1 > FMSBA (Flash MCH/PROC Strap Base Address): 0x200 > > === Component Section === > FLCOMP 0x09300024 > FLILL 0x00000000 > > --- Details --- > Component 1 density: 8 MB > Component 2 is not used. > Read Clock Frequency: 20 MHz > Read ID and Status Clock Freq.: 33 MHz > Write and Erase Clock Freq.: 33 MHz > Fast Read is supported. > Fast Read Clock Frequency: 33 MHz > Dual Output Fast Read Support: enabled > No forbidden opcodes. > > === Region Section === > FLREG0 0x00000000 > FLREG1 0x07ff0000 > FLREG2 0x04ff0001 > FLREG3 0x00001fff > FLREG4 0x00001fff > > --- Details --- > Region 0 (Descr.) 0x00000000 - 0x00000fff > Region 1 (BIOS ) 0x00000000 - 0x007fffff > Region 2 (ME ) 0x00001000 - 0x004fffff > Region 3 (GbE ) is unused. > Region 4 (Platf.) is unused. > > === Master Section === > FLMSTR1 0xffff0000 > FLMSTR2 0xffff0000 > FLMSTR3 0xffff0118 > > --- Details --- > Descr. BIOS ME GbE Platf. > BIOS rw rw rw rw rw > ME rw rw rw rw rw > GbE rw rw rw rw rw > > OK. > No IT87* serial flash segment enabled. > The following protocols are supported: FWH, SPI. > Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 > 0xc2, id2 0x2017 > Found Macronix flash chip "MX25L6405" (8192 kB, SPI) mapped at > physical address 0xff800000. > 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 > Block protection is disabled. > Flash image seems to be a legacy BIOS. Disabling coreboot-related checks. > Reading old flash chip contents... done. > Erasing and writing flash chip... Trying erase function 0... > 0x000000-0x00ffff:EFAILED at 0x00001000! Expected=0xff, Found=0x20, > failed byte count from 0x00000000-0x0000ffff: 0xb55d > ERASE FAILED! > Reading current flash chip contents... done. Looking for another erase > function. > Trying erase function 1... 0x000000-0x00ffff:EInvalid OPCODE 0x06, > will not execute. > spi_block_erase_d8 failed during command execution at address 0x0 > Reading current flash chip contents... done. Looking for another erase > function. > Trying erase function 2... 0x000000-0x7fffff:EInvalid OPCODE 0x06, > will not execute. > spi_chip_erase_60 failed during command execution > Reading current flash chip contents... done. Looking for another erase > function. > Trying erase function 3... 0x000000-0x7fffff:EInvalid OPCODE 0x06, > will not execute. > spi_chip_erase_c7 failed during command execution > Looking for another erase function. > No usable erase functions left. > FAILED! > Uh oh. Erase/write failed. Checking if anything has changed. > Reading current flash chip contents... done. > Apparently at least some data has changed. > Your flash chip is in an unknown state. > Get help on IRC at chat.freenode.net (channel #flashrom) or > mail flashrom@flashrom.org with the subject "FAILED: <your board name>"! > ------------------------------------------------------------ > ------------------- > DO NOT REBOOT OR POWEROFF! > Restoring MMIO space at 0xf77988a0 > Restoring PCI config space for 00:1f:0 reg 0xdc > > > -- > GNU powered it... > GPL protect it... > God blessing it... > > regards > Shawn > > _______________________________________________ > flashrom mailing list > flashrom@flashrom.org > https://www.flashrom.org/mailman/listinfo/flashrom >
_______________________________________________ flashrom mailing list flashrom@flashrom.org https://www.flashrom.org/mailman/listinfo/flashrom