On 12.04.2010 03:20, Magnus Alm wrote:
sudo flashrom -f -c SST39SF040 -w BACKUP2.rom
-f (--force) is always a bad idea. We will probably replace it with --bad-idea-kill-the-machine in the future.
flashrom v0.9.1-r993 on Linux 2.6.32-19-generic (i686), built with libpci 3.0.0, GCC 4.4.3 ======================================================================== WARNING! You seem to be running flashrom on a laptop. 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 http://www.flashrom.org/Laptops for details. ======================================================================== Found chipset "VIA VT8235", enabling flash write... OK. This chipset supports the following protocols: Non-SPI. Disabling flash write protection for board "Acer Ferrari 3400"... OK. Calibrating delay loop... OK. No EEPROM/flash device found.
Sure, that is expected. If you run standalone erase on your laptop, the machine is basically dead. You didn't only tell the EC to go to sleep, you also told it explicitly to execute garbage and crash. AFAIK the only way to recover is to remove all power (battery and power supply) after you reflash the chip. However, you told the EC to crash, and it is unlikely that you can write to the chip at all right now.
But a forced read works:
sudo flashrom -f -r -c SST39SF040 crap.rom
No, forced read does not work. The only thing you get is some random garbage from upper memory. Sometimes you get some ROM contents by accident, but very often it is just garbage.
flashrom v0.9.1-r993 on Linux 2.6.32-19-generic (i686), built with libpci 3.0.0, GCC 4.4.3 No coreboot table found. ======================================================================== WARNING! You seem to be running flashrom on a laptop. 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 http://www.flashrom.org/Laptops for details. ======================================================================== Found chipset "VIA VT8235", enabling flash write... OK. This chipset supports the following protocols: Non-SPI. Disabling flash write protection for board "Acer Ferrari 3400"... OK. Calibrating delay loop... OK. No EEPROM/flash device found. Force read (-f -r -c) requested, forcing chip probe success: Found chip "SST SST39SF040" (512 KB, Parallel) at physical address 0xfff80000. Please note that forced reads most likely contain garbage. Reading flash... done.
I need a function added to flashrom so I can specify chip and address to write to.
Unless someone comes up with a magic undocumented way which tells the EC to pass through writes even in crashed state, you will have to disassemble your laptop and desolder your flash chip, reflash it with an external programmer, and then solder it back in.
Regards, Carl-Daniel