dediprog read regression due to multi-i/o read implementation
Hi everyone, Hi Nico, Currently there is a regression in flashprog that causes the dediprog to read wrong data from the flash chip. I git bisected the issue to the following commit "dediprog: Implement multi-i/o reads" (a1b7f35). Here is a sample diff on a W25Q128BV 16MiB chip (left: flashprog read, right: correct data) ``` < 00000000 9c 90 02 00 d6 00 00 00 05 ff ff ff ff 5a a5 f0 |.............Z..| < 00000010 0f 03 00 04 00 08 02 10 5a 30 03 34 00 00 00 20 |........Z0.4... | < 00000020 00 ff ff ff ff ff ff ff ff ff ff ff ff f5 fc 50 |...............P| < 00000030 12 21 42 60 ad b7 b9 c4 c7 ff ff ff ff 00 00 00 |.!B`............| < 00000040 00 00 04 ff 0f 03 00 ff 03 01 00 02 00 ff 7f 00 |................| < 00000050 00 ff 7f 00 00 ff 7f 00 00 ff 7f 00 00 ff 7f 00 |................| < * < 00000070 00 ff 7f 00 00 ff 7f 00 00 ff 7f 00 00 00 0f a0 |................| < 00000080 00 00 0d 40 00 00 09 80 00 00 00 00 00 00 01 01 |...@............| < 00000090 10 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff |................| ---
00000000 11 00 00 9c 90 02 00 d6 00 00 00 05 ff ff ff ff |................| 00000010 5a a5 f0 0f 03 00 04 00 08 02 10 5a 30 03 34 00 |Z..........Z0.4.| 00000020 00 00 20 00 ff ff ff ff ff ff ff ff ff ff ff ff |.. .............| 00000030 f5 fc 50 12 21 42 60 ad b7 b9 c4 c7 ff ff ff ff |..P.!B`.........| 00000040 00 00 00 00 00 04 ff 0f 03 00 ff 03 01 00 02 00 |................| 00000050 ff 7f 00 00 ff 7f 00 00 ff 7f 00 00 ff 7f 00 00 |................| * 00000080 00 0f a0 00 00 0d 40 00 00 09 80 00 00 00 00 00 |......@.........| 00000090 00 01 01 10 00 00 00 00 ff ff ff ff ff ff ff ff |................| [...]
With flashprog I always get the same wrong data result, so this is
probably a deterministic problem.
Do you know what the problem might be? Let me know if you want me to
test a patch or provide additional information.
Thanks
Marcello
Hi Marcello, thank you for tracking this down. It looks like it lost the first three bytes? Could be a protocol issue, and might mean that we need a Matrix of products x firmware version to fully support the Dediprog jungle. You can try to disable the dual-i/o support: `-p dediprog:iomode=single`. If that helps, we should switch the default. You can also try `quad` if your hardware setup supports this. Hope that helps, Nico
participants (1)
-
Marcello Sylvester Bauer
-
Nico Huber