Thank you Ivan.
As I mentioned, I did try with/without the board plugged in, and with/without the VCC pin connected to the programmer. (I also tried, on an identical board that still has a booting BIOS, powering it on to a point that likely has no BMC traffic.)
One thing that we have determined, using a scope, is that the VCC pin does likely get appropriate voltage, but the signals on the MOSI pin are not at a high enough voltage: The voltage at the MOSI pin, when signals are being sent, is about 1/2 VCC. This explains why it almost always isn't successful at finding the chip, but every once in a while, on a rare occasion, it is. So now the question is, why is the voltage on the MOSI pin too low - what is pulling it down.
I'm getting identical results with both the Dediprog SF100 and a Bus Pirate (not sure which version). And I did try the trick on the Bus Pirate where you apply the VCC voltage to the Bus Pirate's VUP (pull-up voltage) pin, and used the flashrom argument to turn on the pull-ups.
On Wed, Nov 22, 2017 at 10:29 AM, Ivan Ivanov firstname.lastname@example.org wrote:
Hi Yaron, please read about the In-System Programming. It could be that the peripheral devices of your motherboard are consuming some percentage of the power that was aimed to power a BIOS chip during the access - because of that, there is not enough power for a BIOS chip and your attempts are failing. What to do:
I) You could try to reduce the amount of peripheral devices - e.g. disconnect the RAM modules from your system and try again
II) Also you can try to power a BIOS chip by the motherboard :
- disconnect a VCC wire from your programmer, also disconnect WP and
HOLD just in case 2) disconnect all the boot devices from your motherboard 3) connect a clip to a BIOS chip 4) connect a power adapter to your motherboard and turn it on 5) just in case, wait 5 minutes so that all the initialization processes will be completed 6) read the contains of a BIOS chip a few times 7) compare the checksums of read files, if they are the same - erase the BIOS chip (by filling it with FF's), turn off the motherboard, then turn it on again, wait 5 minutes - then flash your desired binary image to this BIOS chip
III) Alternatively you may want to de-solder a BIOS chip from motherboard and connect it to your programmer with DIP adapter, but probably could be avoided if you do I) or II) successfully
IV) Try a different programmer, e.g. CH341A which is super cheap simple hardware fully supported by flashrom - should be reliable
I wish you good luck, sadly Supermicro X10DRT-Lis not supported by coreboot open source BIOS - hopefully you will be able to get a better hardware one day...
2017-11-21 17:57 GMT+03:00 Yaron Shragai email@example.com:
Hello, I am trying to use flashrom to program a Winbond W25Q128FV chip, on a Supermicro X10DRT-L mobo, with a Dediprog SF 100.
I am running flashrom from an Ubuntu VM on a Win10 laptop as well as
Minnowboard Max system running Ubuntu. I am running flashrom v0.9.9-rc1-r1942, installed via apt. I am connecting to the chip via a SOIC clip.
I should note that I have looked at the product support data on the
web site. It lists full support for the W25Q128FV. It does not list the X10DRT-L mobo.
flashrom almost never "sees" the flash chip (output: "No EEPROM/flash
I say "almost", b/c it did see it a couple of times (out of, I would say, ~100 tries) - which was enough for me to read out the pre-existing
and write to it an image that has effectively bricked it. :-) So, now
trying to flash the pre-existing content back... (There is no documented way to force the X10DRT-L to use the recovery block, and I have yet to
an undocumented way...)
I have tried with the system board plugged in and unplugged, and with and without connecting the VCC pin to the programmer.
I have been using these two command lines, at various times: flashrom -p dediprog flashrom -p dediprog:voltage=3.5
When I add -VVV, the following relevant lines appear in the output:
Probing for Winbond W25Q128.V, 16384 kB: programmer_map_flash_region: mapping W25Q128.V from 0x00000000ff000000 to 0x0000000000000000 dediprog_spi_send_command, writecnt=1, readcnt=3 RDID returned 0xff 0xff 0xff. RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff programmer_unmap_flash_region: unmapped 0x0000000000000000
...and further down...
Probing for Winbond unknown Winbond (ex Nexcom) SPI chip, 0 kB: dediprog_spi_send_command, writecnt=1, readcnt=3 RDID returned 0xff 0xff 0xff. RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0xff, id2 0xffff
One more datapoint: When I connect my laptop -> Dediprog -> to the flash chip on the Minnowboard Max (Micron 25Q064A), it does recognize the chip.
Any advice would be appreciated!
flashrom mailing list firstname.lastname@example.org https://mail.coreboot.org/mailman/listinfo/flashrom