Hello flashrom List !
This is reporting success reading (dumping) the ROM BIOS on my IBM Aptiva 2170-G (actually an ACER V75-M motherboard). This MoBo has the SiS 5595 southbridge, which per flashrom issued warning had been untested.
I have /not/ tried to write or erase, sorry; though have little doubts those operations would succeed similarly.
Many thanks go to the developers!
On Wed, 19 Dec 2012 11:28:32 +0000 (GMT) Bertho Grandpied y31415926536@yahoo.fr wrote:
Hello flashrom List !
This is reporting success reading (dumping) the ROM BIOS on my IBM Aptiva 2170-G (actually an ACER V75-M motherboard). This MoBo has the SiS 5595 southbridge, which per flashrom issued warning had been untested.
I have /not/ tried to write or erase, sorry; though have little doubts those operations would succeed similarly.
Many thanks go to the developers!
Hello Bertho and thanks for your report. Read tests are mostly pointless in general, even more without a log. If it is not too much of a hassle please send us the output of flashrom -p internal -V (which only probes for the flash chip). I do fully understand your refusal to test writing (but I am not so sure about its probability of success. Many boards needs a bit of extra effort to disable write protections).
Hi, Stefan Tauner !
I,(Czerno), wrote :
reporting success reading (dumping) the ROM BIOS on my IBM Aptiva 2170-G (actually an ACER V75-M motherboard) ....
(S.T.) said :
Read tests are mostly pointless in general, even more without a log. If it is not too much of a hassle please send us the output of flashrom -p internal -V
Sorry I did intend to include a log. Appending it now (inlined rather than attached, for the benefit of ppl like me who read from the list archive).
I have /not/ tried to write or erase, sorry; though
have little doubts those operations would succeed similarly.
I do fully understand your refusal to test writing (but I am not so sure about its probability of success. Many boards needs a bit of extra effort to disable write protections).
The reason I dared mention having little doubts (thus doubts still) is because that IBM machine is a desktop, not a portable. Not refusing to try the writing procedure, it's just... I had no particular reason to alter the EEPROM here, and wasn't even sure you'd have results already for this mobo and chipset. I /will/, since it's XMas time, test writing for the sake of you so, please, would you answer a couple questions :
- how many rewrites will a typical BIOS chip take (order of magnitude) ?
- when instructed to write, will Flashrom try its best to spare the chip, e.g. in the sense that (IIUC) it should write without preerasing regions that were not previously written to (i.e., are read as hex FFFF...) ?
- if I intended to test by flashing over a small, currently unused, part of the ROM, defining it in a /layout file/, do I have to /know/ precisely how my particular flash chip is organised /physically/, or does Flashrom use /logical/ regions, as I hope it does ?
Merry holidays
_____________________________________________________________________ flashrom v0.9.6.1-r1624 on MS-DOS 7 (i586) flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.1.5, GCC 4.4.4, little endian Command line (3 args): c:/flashrom/flashrom.exe -p internal -V Calibrating delay loop... OS timer resolution is 50000 usecs, 235M loops per second, delay more than 10% too short (got 86% of expected delay), recalculating... 246M loops per second, delay more than 10% too short (got 88% of expected delay), recalculating... 225M loops per second, delay more than 10% too short (got 86% of expected delay), recalculating... 262M loops per second, 10 myus = 0 us, 100 myus = 0 us, 1000 myus = 0 us, 10000 myus = 0 us, 200000 myus = 220000 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "IBM " DMI string system-product-name: "217023G" DMI string system-version: "0000000000000000" DMI string baseboard-manufacturer: "Acer " DMI string baseboard-product-name: "V75M " DMI string baseboard-version: "-1 " DMI string chassis-type: "Mini Tower" Found chipset "SiS 530" with PCI ID 1039:0530. Enabling flash write... Found southbridge 1039:0008 at 00:01:0 OK. The following protocols are supported: Non-SPI. Probing for AMD Am29F010A/B, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BB, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F002(N)BT, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F016D, 2048 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F040B, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29F080B, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV001BB, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV001BT, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV002BB, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV002BT, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV004BB, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV004BT, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV008BB, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV008BT, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV040B, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMD Am29LV081B, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002B, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29002T, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A29040B, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for AMIC A49LF040A, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT29C512, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT29C010A, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT29C020, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT29C040A, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT49BV512, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT49F002(N), 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT49F002(N)T, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT49(H)F010, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT49F020, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT49F040, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Atmel AT49F080, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49F080T, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Catalyst CAT28F512, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Bright BM29F040, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for EMST F49B002UA, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Eon EN29F010, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for Eon EN29F002(A)(N)B, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Eon EN29F002(A)(N)T, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Eon EN29LV640B, 8192 kB: probe_en29lv640b: id1 0xffff, id2 0x00ff Probing for Fujitsu MBM29F004BC, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F004TC, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Fujitsu MBM29F400BC, 512 kB: probe_m29f400bt: id1 0x00, id2 0x55 Probing for Fujitsu MBM29F400TC, 512 kB: probe_m29f400bt: id1 0x00, id2 0x55 Probing for Hyundai HY29F002T, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Hyundai HY29F002B, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Hyundai HY29F040A, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F001BN/BX-B, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Intel 28F001BN/BX-T, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Intel 28F002BC/BL/BV/BX-T, 256 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F008S3/S5/SC, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-B, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F004B5/BE/BV/BX-T, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-B, 512 kB: probe_82802ab: id1 0x00, id2 0x55, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 28F400BV/BX/CE/CV-T, 512 kB: probe_82802ab: id1 0x00, id2 0x55, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001B, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F001T, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002(N)B, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F002(N)T, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29F040, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Macronix MX29LV040, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for MoselVitelic V29C51000B, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for MoselVitelic V29C51000T, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for MoselVitelic V29C51400B, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for MoselVitelic V29C51400T, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for MoselVitelic V29LC51000, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for MoselVitelic V29LC51001, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for MoselVitelic V29LC51002, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for PMC Pm29F002T, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm29F002B, 256 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV010, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV020, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV040, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm39LV512, 64 kB: probe_jedec_common: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Sharp LH28F008BJT-BTLZ1, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST28SF040A, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST29EE010, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST29LE010, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST29EE020A, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST29LE020, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39SF512, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39SF010A, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39SF020A, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39SF040, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39VF512, 64 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39VF010, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39VF020, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39VF040, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST39VF080, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF020, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST49LF020A, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST49LF040, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST49LF040B, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SST SST49LF080A, 1024 kB: Chip lacks correct probe timing information, using default 10mS/40uS. probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SST SST49LF160C, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F002B, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Found ST flash chip "M29F002T/NT" (256 kB, Parallel) at physical address 0xfffc0000. Probing for ST M29F040B, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29F400BB, 512 kB: probe_m29f400bt: id1 0x00, id2 0x55 Probing for ST M29F400BT, 512 kB: probe_m29f400bt: id1 0x00, id2 0x55 Probing for ST M29W010B, 128 kB: probe_jedec_common: id1 0xe9, id2 0x38, id1 is normal flash content, id2 is normal flash content Probing for ST M29W040B, 512 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M29W512B, 64 kB: probe_jedec_common: id1 0x00, id2 0x00, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for ST M50LPW116, 2048 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for SyncMOS/MoselVitelic {F,S,V}29C51001B, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SyncMOS/MoselVitelic {F,S,V}29C51001T, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SyncMOS/MoselVitelic {F,S,V}29C51002B, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SyncMOS/MoselVitelic {F,S,V}29C51002T, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SyncMOS/MoselVitelic {F,S,V}29C51004B, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SyncMOS/MoselVitelic {F,S,V}29C51004T, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SyncMOS/MoselVitelic {S,V}29C31004B, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for SyncMOS/MoselVitelic {S,V}29C31004T, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for TI TMS29F002RB, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for TI TMS29F002RT, 256 kB: probe_jedec_common: id1 0x00, id2 0x80, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012-old, 128 kB: Old Winbond W29* probe method disabled because the probing sequence puts the AMIC A49LF040A in a funky state. Use 'flashrom -c W29C010(M)/W29C011A/W29EE011/W29EE012-old' if you have a board with such a chip. Probing for Winbond W29C010(M)/W29C011A/W29EE011/W29EE012, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W29C020(C)/W29C022, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W29C040/P, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39F010, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39L010, 128 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39L020, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39L040, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V040A, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V040B, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V040C, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V080A, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W49F002U/N, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W49F020, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W49V002A, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Found ST flash chip "M29F002T/NT" (256 kB, Parallel). === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE 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, -VE, -Vw), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! No operations were specified. Restoring PCI config space for 00:01:0 reg 0x45 Restoring PCI config space for 00:01:0 reg 0x40 _________________________________________________________________________
On Tue, 25 Dec 2012 13:48:23 +0000 (GMT) Bertho Grandpied y31415926536@yahoo.fr wrote:
I,(Czerno), wrote :
reporting success reading (dumping) the ROM BIOS on my IBM Aptiva 2170-G (actually an ACER V75-M motherboard) ....
(S.T.) said :
Read tests are mostly pointless in general, even more without a log. If it is not too much of a hassle please send us the output of flashrom -p internal -V
Sorry I did intend to include a log. Appending it now (inlined rather than attached, for the benefit of ppl like me who read from the list archive).
Hi Czerno, thanks, looks good.
I have /not/ tried to write or erase, sorry; though
have little doubts those operations would succeed similarly.
I do fully understand your refusal to test writing (but I am not so sure about its probability of success. Many boards needs a bit of extra effort to disable write protections).
The reason I dared mention having little doubts (thus doubts still) is because that IBM machine is a desktop, not a portable. Not refusing to try the writing procedure, it's just... I had no particular reason to alter the EEPROM here, and wasn't even sure you'd have results already for this mobo and chipset.
My words were not meant to blame you or something like that, we don't ask users to test modifying operations without need, because the risk is usually not worth it. The M29F002T/NT is still untested, so from our point of view it would be interesting to know if it works. The chipset code was tested some time ago, but SiS chipsets are quite uncommon hence seldom tested (but of course we try to not break already working code :)
I /will/, since it's XMas time, test writing for the sake of you so, please, would you answer a couple questions :
That would be very nice, thank you.
- how many rewrites will a typical BIOS chip take (order of magnitude) ?
Quoting the datasheet for your chip (which is typical): "100,000 PROGRAM/ERASE CYCLES per BLOCK" NB: not all chips meet their specs.
- when instructed to write, will Flashrom try its best to spare the chip, e.g. in the sense that (IIUC) it should write without preerasing regions that were not previously written to (i.e., are read as hex FFFF...) ?
flashrom only erases and writes blocks with changed data only, this includes the special case you mentioned. This allows to do partial writes as mentioned below very easily by reading the old contents, flipping a bit and rewriting that image. This lowers the test coverage significantly though.
- if I intended to test by flashing over a small, currently unused, part of the ROM, defining it in a /layout file/, do I have to /know/ precisely how my particular flash chip is organised /physically/, or does Flashrom use /logical/ regions, as I hope it does ?
The physical layout is not known to flashrom with the exception of erase block boundaries (probably what you meant with physical layout). In general we are just operating on a linear address space.
Because of answers 1 and 2, I would prefer if you could test the complete chip as follows.
- verify that the image read by flashrom looks legit (e.g. not all 0xFF) - copy the image read somewhere safe. - edit the other copy of it and change a single byte in the middle of any larger 0xFF block. - write the modified image (this should be somewhat safer than what follows, but you can also skip it). - erase the whole chip with flashrom -o erase.log -E ... - write back the backup copied in step 1 with flashrom -o write.log -w ...
If anything unexpected happens and/or flashrom shouts at you, first try to write the backup. This usually leads to a safe state again and should never make things worse.
Hi Stefan, hi List !
I'm glad to report full success (write modified image, erase, rewrite original) using flashrom w/ aforementionned system :
IBM Aptiva 2170-G (actually an ACER V75-M motherboard) ... SiS 5595 southbridge
Here's a verbose (pruned down) log for one write operation. In addition to flashrom's own verification, I did check the "live" contents of flash memory against the "dead" binary image for any discrepancy, finding none.
Thanks again for the nice tool!
___________________________________________________________________ flashrom v0.9.6.1-r1624 on MS-DOS 7 (i586) flashrom was built with libpci 3.1.5, GCC 4.4.4, little endian Command line (7 args): c:/flashrom/flashrom.exe -p internal -w BIOS.BIN -V -o WRITE.LOG Calibrating delay loop... OS timer resolution is 50000 usecs, 235M loops per second, delay more than 10% too short (got 88% of expected delay), recalculating... 215M loops per second, delay more than 10% too short (got 88% of expected delay), recalculating... 290M loops per second, 10 myus = 0 us, 100 myus = 0 us, 1000 myus = 0 us, 10000 myus = 50000 us, 200000 myus = 220000 us, OK. Initializing internal programmer No coreboot table found. DMI string system-manufacturer: "IBM " DMI string system-product-name: "217023G" DMI string system-version: "0000000000000000" DMI string baseboard-manufacturer: "Acer " DMI string baseboard-product-name: "V75M " DMI string baseboard-version: "-1 " DMI string chassis-type: "Mini Tower" Found chipset "SiS 530" with PCI ID 1039:0530. Enabling flash write... Found southbridge 1039:0008 at 00:01:0 OK. The following protocols are supported: Non-SPI. Probing for AMD [ snip .......] Probing for ST M29F002T/NT, 256 kB: probe_jedec_common: id1 0x20, id2 0xb0 Found ST flash chip "M29F002T/NT" (256 kB, Parallel) at physical address 0xfffc0000. Probing [ snip .......] Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x20, id2 0xb0 Found ST flash chip "M29F002T/NT" (256 kB, Parallel). === This flash part has status UNTESTED for operations: PROBE READ ERASE WRITE 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, -VE, -Vw), and mention which mainboard or programmer you tested. Please mention your board in the subject line. Thanks for your help! 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:S, 0x010000-0x01ffff:S, 0x020000-0x02ffff:S, 0x030000-0x037fff:S, 0x038000-0x039fff:S, 0x03a000-0x03bfff:S, 0x03c000-0x03ffff:EW Erase/write done. Verifying flash... VERIFIED. Restoring PCI config space for 00:01:0 reg 0x45 Restoring PCI config space for 00:01:0 reg 0x40 _____________________________________________________________________
On Wed, 26 Dec 2012 14:22:21 +0000 (GMT) Bertho Grandpied y31415926536@yahoo.fr wrote:
I'm glad to report full success (write modified image, erase, rewrite original) using flashrom w/ aforementionned system :
Hello Czerno,
thanks for your report! I have added your board to our list of supported hardware, modified the flash chip status and will commit that later together with other small changes.