On Tue, Sep 07, 2010 at 08:23:50PM +0200, Uwe Hermann wrote:
On Sun, Aug 15, 2010 at 07:15:13AM +0200, Mattias Mattsson wrote:
Hi,
I have tested flashrom r1138 on an Abit VA6 with Atmel AT49F002NT flash. Probe, read, erase, write all work together with this patch: http://www.coreboot.org/pipermail/flashrom/2010-August/004439.html
lspci crashes with the -xxx option on this board (the lspci manpage mentions this could happen) so output is with -x only.
flashrom v0.9.2-r1138 on Linux 2.6.32-5-686 (i686), built with libpci 3.1.7, GCC 4.4.5 20100728 (prerelease), little endian flashrom is free software, get the source code at http://www.flashrom.org
Calibrating delay loop... OS timer resolution is 3 usecs, 225M loops per second, 10 myus = 11 us, 100 myus = 102 us, 1000 myus = 1000 us, 10000 myus = 10049 us, 12 myus = 13 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "VIA Technologies, Inc." DMI string system-product-name: "VT82C692BX" DMI string system-version: " " DMI string baseboard-manufacturer: " http://www.abit.com.tw" DMI string baseboard-product-name: "693A-686A(VA6)" DMI string baseboard-version: " " DMI string chassis-type: "Unknown" Found chipset "VIA VT82C69x", enabling flash write... chipset PCI ID is 1106:0691, OK - searching further chips. Found chipset "VIA VT82C686A/B", enabling flash write... chipset PCI ID is 1106:0686, OK. This chipset supports the following protocols: Non-SPI. Disabling flash write protection for board "abit VA6"... VIA Apollo ACPI: Dropping GPIO04. OK.
[...]
Found chip "Atmel AT49F002(N)T" (256 KB, Parallel) at physical address 0xfffc0000.
[...]
=== This flash part has status UNTESTED for operations: ERASE The test status of this chip may have been updated in the latest development version of flashrom. If you are running the latest development version, please email a report to flashrom@flashrom.org if any of the above operations work correctly for you with this flash part. Please include the flashrom output with the additional -V option for all operations you tested (-V, -Vr, -Vw, -VE), and mention which mainboard or programmer you tested. Thanks for your help! === Flash image seems to be a legacy BIOS. Disabling checks. Writing flash chip... Erasing flash chip... Looking at blockwise erase function 0... trying... 0x000000-0x01ffff, 0x020000-0x037fff, 0x038000-0x039fff, 0x03a000-0x03bfff, 0x03c000-0x03ffff, ERASE FAILED at 0x0003c000! Expected=0xff, Read=0x68, failed byte count from 0x0003c000-0x0003ffff: 0x3f47 ERASE FAILED!
^^^^^^^^^^^^^
Looking at blockwise erase function 1... trying... 0x000000-0x03ffff, SUCCESS. Programming page: address: 0x00000000 [...] DONE! COMPLETE. Verifying flash... VERIFIED.
This looks strange, erase FAILED but the write seems to have been successful anyway? Did you use the correct, patched flashrom version here? Can you retry with latest svn (patch was merged I think)?
I did som testing. It seems like flashrom have to run its erase routine twice to get error-free output after something is written to the flash chip:
# flashrom -w random.bin
# flashrom -VE (...) Erasing flash chip... Looking at blockwise erase function 0... trying... 0x000000-0x01ffff, 0x020000-0x037fff, 0x038000-0x039fff, 0x03a000-0x03bfff, 0x03c000-0x03ffff, ERASE FAILED at 0x0003c000! Expected=0xff, Read=0x41, failed byte count from 0x0003c000-0x0003ffff: 0x3fb9 ERASE FAILED!
Looking at blockwise erase function 1... trying... 0x000000-0x03ffff, SUCCESS.
# flashrom -VE (again) (...) Erasing flash chip... Looking at blockwise erase function 0... trying... 0x000000-0x01ffff, 0x020000-0x037fff, 0x038000-0x039fff, 0x03a000-0x03bfff, 0x03c000-0x03ffff, SUCCESS.
# flashrom -w va6.bin (orignal bios dumped with flashrom -r)
# flashrom -VE (...) Erasing flash chip... Looking at blockwise erase function 0... trying... 0x000000-0x01ffff, 0x020000-0x037fff, 0x038000-0x039fff, 0x03a000-0x03bfff, 0x03c000-0x03ffff, ERASE FAILED at 0x0003c000! Expected=0xff, Read=0x68, failed byte count from 0x0003c000-0x0003ffff: 0x3f47 ERASE FAILED!
Looking at blockwise erase function 1... trying... 0x000000-0x03ffff, SUCCESS.
# flashrom -VE (again) (...) Erasing flash chip... Looking at blockwise erase function 0... trying... 0x000000-0x01ffff, 0x020000-0x037fff, 0x038000-0x039fff, 0x03a000-0x03bfff, 0x03c000-0x03ffff, SUCCESS.
-mattias