From patchwork Fri Dec 11 07:23:46 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: cannot work on Intel ICH7/ICH7R & SST SST25VF016B (2048 KB, SPI) Date: Fri, 11 Dec 2009 06:23:46 -0000 From: Water Chen X-Patchwork-Id: 638 Message-Id: <13e5c51d0912102323sa2d76aek3566fffde1db48e9@mail.gmail.com> To: flashrom@flashrom.org, libv@skynet.be Hi, According to the Device Operation Instructions in page 8 in SST25VF016B datasheet (http://www.sst.com/dotAsset/40371.pdf), I modify OPCODES O_ST_M25P as below. Then flashrom can flash BIOS successfully. Can someone check if any problem or side effect to other boards? Electronic Manufacturer Signature {JEDEC_WRSR, SPI_OPCODE_TYPE_WRITE_NO_ADDRESS, 1}, // Write Status Register # ./flashrom -w 7sll2069.ROM flashrom v0.9.1-r796 No coreboot table found. Found chipset "Intel ICH7/ICH7R", enabling flash write... OK. This chipset supports the following protocols: SPI. Calibrating delay loop... OK. Found chip "SST SST25VF016B" (2048 KB, SPI) at physical address 0xffe00000. Flash image seems to be a legacy BIOS. Disabling checks. Writing flash chip... Erasing flash before programming... Erasing flash chip... SUCCESS. done. COMPLETE. Verifying flash... VERIFIED. Thank you. Water Chen 2009/12/8 Water Chen : > Hi, > > flashrom cannot work on Intel ICH7/ICH7R / SST SST25VF016B (2048 KB, SPI). > MB: Supermicro X7SLM-L / > http://www.supermicro.com/products/motherboard/Core2Duo/945/X7SLM-L.cfm > > The outputs of 'flashrom -V', 'lspci -nnvvvxxx', 'superiotool -deV', > 'dd if=/dev/mem of=sm_x7slm.system.rom bs=64k count=1 skip=15' are > attached. > > # ./flashrom -w BIOS_X7SLM-L.ROM > flashrom v0.9.1-r792 > No coreboot table found. > Found chipset "Intel ICH7/ICH7R", enabling flash write... OK. > This chipset supports the following protocols: SPI. > Calibrating delay loop... OK. > Found chip "SST SST25VF016B" (2048 KB, SPI) at physical address 0xffe00000. > Flash image seems to be a legacy BIOS. Disabling checks. > Writing flash chip... spi_write_status_register failed during command > execution spi_write_status_register failed Erasing flash before > programming... Erasing flash chip... spi_write_status_register failed > during command execution spi_write_status_register failed > spi_disable_blockprotect failed FAILED! > ERASE FAILED! > FAILED! > Your flash chip is in an unknown state. > Get help on IRC at irc.freenode.net (channel #flashrom) or mail > flashrom@flashrom.org! > ------------------------------------------------------------------------------- > DO NOT REBOOT OR POWEROFF! > > Thank you. > Water Chen > Index: flashrom/ichspi.c =================================================================== --- flashrom/ichspi.c (revision 796) +++ flashrom/ichspi.c (working copy) @@ -174,7 +174,7 @@ { {JEDEC_BYTE_PROGRAM, SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS, 1}, // Write Byte {JEDEC_READ, SPI_OPCODE_TYPE_READ_WITH_ADDRESS, 0}, // Read Data - {JEDEC_BE_D8, SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS, 1}, // Erase Sector + {JEDEC_EWSR, SPI_OPCODE_TYPE_WRITE_NO_ADDRESS, 0}, // Enable Write Status Register {JEDEC_RDSR, SPI_OPCODE_TYPE_READ_NO_ADDRESS, 0}, // Read Device Status Reg {JEDEC_REMS, SPI_OPCODE_TYPE_READ_WITH_ADDRESS, 0}, // Read