在 2013年4月2日 星期二 20:40:39,Stefan Tauner 写道:
On Wed, 03 Apr 2013 00:11:11 +0800
Chi Zhang zhangchi866@gmail.com wrote:
The programmer is my newly built serprog with STM32 MCU. Please refer to https://github.com/dword1511/serprog-stm32vcp .
Nice stuff :) What was the motivation for that project? Should we add it to http://flashrom.org/Serprog ?
At first I built a serprog with ATMEGA8L. But that one was slow and requires a UART to USB bridge and so some extra wirings. As I remember there was a STM32 USB virtual COM port example, I decided to build a serprog without a physical UART and aim at high speed.
You can put it on the wiki page if you like, I will be very proud of it :)
These flash chips are first bought to test the programmer rather than flashrom itself :) The programmer has been verified by me with a commercial CH341A-based programmer, and a few bricks as well :)
Some performance information about flashrom with these chips can be found at: https://github.com/dword1511/serprog-stm32vcp/blob/master/PERFORMANCE (btw, SST25VF040B is really slow at writing! Is it supposed to be this slow?)
I think the problem is the AAI write mode. It requires a lot of tiny communication steps and this is were serprog, CDC and USB are really bad at... (long round trip times).
I see. Thanks.
The pasted logs are organized in probe-write-read-erase sequences.
AT25F512A: http://paste.flashrom.org/view.php?id=1569
Added to my tested_stuff branch.
AT26DF161A: http://paste.flashrom.org/view.php?id=1570
That one needs some further analysis: "Some block protection in effect, disabling... Block protection could not be disabled!"
Saw that too. But interestingly write and erase still work. Maybe because nWP is pulled high?
$ flashrom -p serprog:dev=/dev/ttyACM0:4000000,spispeed=36000000 -E ...... $ flashrom -p serprog:dev=/dev/ttyACM0:4000000,spispeed=36000000 -r tmp ...... $ hd tmp 00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00200000 $ flashrom -p serprog:dev=/dev/ttyACM0:4000000,spispeed=36000000 -w rand2mb.bin ...... $ flashrom -p serprog:dev=/dev/ttyACM0:4000000,spispeed=36000000 -r tmp ...... $ md5sum rand2mb.bin tmp 31db08a08c250f8848e361271a8d8b4d rand2mb.bin 31db08a08c250f8848e361271a8d8b4d tmp $ flashrom -p serprog:dev=/dev/ttyACM0:4000000,spispeed=36000000 -E ...... $ flashrom -p serprog:dev=/dev/ttyACM0:4000000,spispeed=36000000 -r tmp ...... $ hd tmp 00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00200000
Added to my tested_stuff branch.
MX25L12845E(mistaken as 'MX25L12805(D)'): http://paste.flashrom.org/view.php?id=1572
Macronix really likes to share IDs... we need to look at the 45 series more closely.
Pm25LV010A: http://paste.flashrom.org/view.php?id=1573
Added to my "Refine PMC Pm25LV series" patch. http://patchwork.coreboot.org/patch/3926/
You probably want to take a look at this patch too as it adds support for the Pm25LD512C you have in your performance file: http://patchwork.coreboot.org/patch/3925/
Will test.
SST25VF040B: http://paste.flashrom.org/view.php?id=1574 SST25VF040B with REMS: http://paste.flashrom.org/view.php?id=1575 M25P05-A: http://paste.flashrom.org/view.php?id=1576
All added to my tested_stuff branch.
Also, there exists a patch set that adds support for the AT45DB161D, but we have not decided if we want to go with that implementation. See http://patchwork.coreboot.org/patch/3873/ etc.
AT45 have different pinout with 25 series. I will have to add some wirings.
The two sanyo chips are completely unsupported yet I think...
I found them on my hard disk PCB. No plan for testing them though. They are still in use.
Thanks a lot for your effort!