Hi,
Just "forwarding" (really replying) this to the mailing list so others can see too. I see no serprog errors this time, so now it starts to feel like maybe some kind of flashrom problem (4k erase doesnt work after that addr? why?), but not sure. I'll take a look at the definitions and datasheet etc later, now at work.
On Tue, Mar 3, 2015 at 10:52 AM, The Raven originalraven@hotmail.com wrote:
Okidoki Dr. Johnes ;-)
Have tested the "MX25L6445E" with normal flashrom and frser-duino -> Same error as before!
Then i have compiled and used your special flashrom version (no compiler errors) with frser-duino -> Also same error! :-(
Here is the whole log:
raven@PC ~/flashrom-master $ ./flashrom -p serprog:dev=/dev/ttyACM0:115200 -c "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E" -VE flashrom v0.9.8-unknown on Linux 3.13.0-24-generic (i686) flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.2.1, GCC 4.8.2, little endian Command line (5 args): ./flashrom -p serprog:dev=/dev/ttyACM0:115200 -c MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E -VE Calibrating delay loop... OS timer resolution is 1 usecs, 1083M loops per second, 10 myus = 10 us, 100 myus = 143 us, 1000 myus = 963 us, 10000 myus = 10405 us, 4 myus = 5 us, OK. Initializing serprog programmer Baud rate is 115200 now. serprog: connected - attempting to synchronize ... serprog: Synchronized serprog: Interface version ok. serprog: Bus support: parallel=off, LPC=off, FWH=off, SPI=on serprog: Maximum write-n length is 256 serprog: Maximum read-n length is 23552 serprog: Programmer name is "frser-duino" serprog: Serial buffer size is 1020 serprog: operation buffer size is 12 serprog: Output drivers enabled The following protocols are supported: SPI. Probing for Macronix MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 Found Macronix flash chip "MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E" (8192 kB, SPI) on serprog. Chip status register is 0x00. Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set Chip status register: Bit 6 is not set Chip status register: Block Protect 3 (BP3) is not set Chip status register: Block Protect 2 (BP2) is not set Chip status register: Block Protect 1 (BP1) is not set Chip status register: Block Protect 0 (BP0) is not set Chip status register: Write Enable Latch (WEL) is not set Chip status register: Write In Progress (WIP/BUSY) is not set This chip may contain one-time programmable memory. flashrom cannot read and may never be able to write it, hence it may not be able to completely clone the contents of this chip (see man page for details). Erasing and writing flash chip... Trying erase function 0... 0x000000-0x000fff:E, 0x001000-0x001fff:E, 0x002000-0x002fff:E, 0x003000-0x003fff:E, 0x004000-0x004fff:E, 0x005000-0x005fff:E, 0x006000-0x006fff:E, 0x007000-0x007fff:E, 0x008000-0x008fff:E, 0x009000-0x009fff:E, 0x00a000-0x00afff:E, 0x00b000-0x00bfff:E, 0x00c000-0x00cfff:E, 0x00d000-0x00dfff:E, 0x00e000-0x00efff:E, 0x00f000-0x00ffff:E, 0x010000-0x010fff:E, 0x011000-0x011fff:E, 0x012000-0x012fff:E, 0x013000-0x013fff:E, 0x014000-0x014fff:E, 0x015000-0x015fff:E, 0x016000-0x016fff:E, 0x017000-0x017fff:E, 0x018000-0x018fff:E, 0x019000-0x019fff:E, 0x01a000-0x01afff:E, 0x01b000-0x01bfff:E, 0x01c000-0x01cfff:E, 0x01d000-0x01dfff:E, 0x01e000-0x01efff:E, 0x01f000-0x01ffff:E, 0x020000-0x020fff:E, 0x021000-0x021fff:E, 0x022000-0x022fff:E, 0x023000-0x023fff:E, 0x024000-0x024fff:E, 0x025000-0x025fff:E, 0x026000-0x026fff:E, 0x027000-0x027fff:E, 0x028000-0x028fff:E, 0x029000-0x029fff:E, 0x02a000-0x02afff:E, 0x02b000-0x02bfff:E, 0x02c000-0x02cfff:E, 0x02d000-0x02dfff:E, 0x02e000-0x02efff:E, 0x02f000-0x02ffff:E, 0x030000-0x030fff:E, 0x031000-0x031fff:E, 0x032000-0x032fff:E, 0x033000-0x033fff:E, 0x034000-0x034fff:E, 0x035000-0x035fff:E, 0x036000-0x036fff:E, 0x037000-0x037fff:E, 0x038000-0x038fff:E, 0x039000-0x039fff:E, 0x03a000-0x03afff:E, 0x03b000-0x03bfff:E, 0x03c000-0x03cfff:E, 0x03d000-0x03dfff:E, 0x03e000-0x03efff:E, 0x03f000-0x03ffff:E, 0x040000-0x040fff:E, 0x041000-0x041fff:E, 0x042000-0x042fff:E, 0x043000-0x043fff:E, 0x044000-0x044fff:E, 0x045000-0x045fff:E, 0x046000-0x046fff:E, 0x047000-0x047fff:E, 0x048000-0x048fff:E, 0x049000-0x049fff:E, 0x04a000-0x04afff:E, 0x04b000-0x04bfff:E, 0x04c000-0x04cfff:E, 0x04d000-0x04dfff:E, 0x04e000-0x04efff:E, 0x04f000-0x04ffff:E, 0x050000-0x050fff:E, 0x051000-0x051fff:E, 0x052000-0x052fff:E, 0x053000-0x053fff:E, 0x054000-0x054fff:E, 0x055000-0x055fff:E, 0x056000-0x056fff:E, 0x057000-0x057fff:E, 0x058000-0x058fff:E, 0x059000-0x059fff:E, 0x05a000-0x05afff:E, 0x05b000-0x05bfff:E, 0x05c000-0x05cfff:E, 0x05d000-0x05dfff:E, 0x05e000-0x05efff:E, 0x05f000-0x05ffff:E, 0x060000-0x060fff:E, 0x061000-0x061fff:E, 0x062000-0x062fff:E, 0x063000-0x063fff:E, 0x064000-0x064fff:E, 0x065000-0x065fff:E, 0x066000-0x066fff:E, 0x067000-0x067fff:E, 0x068000-0x068fff:E, 0x069000-0x069fff:E, 0x06a000-0x06afff:E, 0x06b000-0x06bfff:E, 0x06c000-0x06cfff:E, 0x06d000-0x06dfff:E, 0x06e000-0x06efff:E, 0x06f000-0x06ffff:E, 0x070000-0x070fff:E, 0x071000-0x071fff:E, 0x072000-0x072fff:E, 0x073000-0x073fff:E, 0x074000-0x074fff:E, 0x075000-0x075fff:E, 0x076000-0x076fff:E, 0x077000-0x077fff:E, 0x078000-0x078fff:E, 0x079000-0x079fff:E, 0x07a000-0x07afff:E, 0x07b000-0x07bfff:E, 0x07c000-0x07cfff:E, 0x07d000-0x07dfff:E, 0x07e000-0x07efff:E, 0x07f000-0x07ffff:E, 0x080000-0x080fff:E, 0x081000-0x081fff:E, 0x082000-0x082fff:E, 0x083000-0x083fff:E, 0x084000-0x084fff:E, 0x085000-0x085fff:E, 0x086000-0x086fff:E, 0x087000-0x087fff:E, 0x088000-0x088fff:E, 0x089000-0x089fff:E, 0x08a000-0x08afff:E, 0x08b000-0x08bfff:E, 0x08c000-0x08cfff:E, 0x08d000-0x08dfff:E, 0x08e000-0x08efff:E, 0x08f000-0x08ffff:E, 0x090000-0x090fff:E, 0x091000-0x091fff:E, 0x092000-0x092fff:E, 0x093000-0x093fff:E, 0x094000-0x094fff:E, 0x095000-0x095fff:E, 0x096000-0x096fff:E, 0x097000-0x097fff:E, 0x098000-0x098fff:E, 0x099000-0x099fff:E, 0x09a000-0x09afff:E, 0x09b000-0x09bfff:E, 0x09c000-0x09cfff:E, 0x09d000-0x09dfff:E, 0x09e000-0x09efff:E, 0x09f000-0x09ffff:E, 0x0a0000-0x0a0fff:E, 0x0a1000-0x0a1fff:E, 0x0a2000-0x0a2fff:E, 0x0a3000-0x0a3fff:E, 0x0a4000-0x0a4fff:E, 0x0a5000-0x0a5fff:E, 0x0a6000-0x0a6fff:E, 0x0a7000-0x0a7fff:E, 0x0a8000-0x0a8fff:E, 0x0a9000-0x0a9fff:E, 0x0aa000-0x0aafff:E, 0x0ab000-0x0abfff:E, 0x0ac000-0x0acfff:E, 0x0ad000-0x0adfff:E, 0x0ae000-0x0aefff:E, 0x0af000-0x0affff:E, 0x0b0000-0x0b0fff:E, 0x0b1000-0x0b1fff:E, 0x0b2000-0x0b2fff:E, 0x0b3000-0x0b3fff:E, 0x0b4000-0x0b4fff:E, 0x0b5000-0x0b5fff:E, 0x0b6000-0x0b6fff:E, 0x0b7000-0x0b7fff:E, 0x0b8000-0x0b8fff:E, 0x0b9000-0x0b9fff:E, 0x0ba000-0x0bafff:E, 0x0bb000-0x0bbfff:E, 0x0bc000-0x0bcfff:E, 0x0bd000-0x0bdfff:E, 0x0be000-0x0befff:E, 0x0bf000-0x0bffff:E, 0x0c0000-0x0c0fff:E, 0x0c1000-0x0c1fff:E, 0x0c2000-0x0c2fff:E, 0x0c3000-0x0c3fff:E, 0x0c4000-0x0c4fff:E, 0x0c5000-0x0c5fff:E, 0x0c6000-0x0c6fff:E, 0x0c7000-0x0c7fff:E, 0x0c8000-0x0c8fff:E, 0x0c9000-0x0c9fff:E, 0x0ca000-0x0cafff:E, 0x0cb000-0x0cbfff:E, 0x0cc000-0x0ccfff:E, 0x0cd000-0x0cdfff:E, 0x0ce000-0x0cefff:E, 0x0cf000-0x0cffff:E, 0x0d0000-0x0d0fff:E, 0x0d1000-0x0d1fff:E, 0x0d2000-0x0d2fff:E, 0x0d3000-0x0d3fff:E, 0x0d4000-0x0d4fff:E, 0x0d5000-0x0d5fff:E, 0x0d6000-0x0d6fff:E, 0x0d7000-0x0d7fff:E, 0x0d8000-0x0d8fff:E, 0x0d9000-0x0d9fff:E, 0x0da000-0x0dafff:E, 0x0db000-0x0dbfff:E, 0x0dc000-0x0dcfff:E, 0x0dd000-0x0ddfff:E, 0x0de000-0x0defff:E, 0x0df000-0x0dffff:E, 0x0e0000-0x0e0fff:E, 0x0e1000-0x0e1fff:E, 0x0e2000-0x0e2fff:E, 0x0e3000-0x0e3fff:E, 0x0e4000-0x0e4fff:E, 0x0e5000-0x0e5fff:E, 0x0e6000-0x0e6fff:E, 0x0e7000-0x0e7fff:E, 0x0e8000-0x0e8fff:E, 0x0e9000-0x0e9fff:E, 0x0ea000-0x0eafff:E, 0x0eb000-0x0ebfff:E, 0x0ec000-0x0ecfff:E, 0x0ed000-0x0edfff:E, 0x0ee000-0x0eefff:E, 0x0ef000-0x0effff:E, 0x0f0000-0x0f0fff:E, 0x0f1000-0x0f1fff:E, 0x0f2000-0x0f2fff:E, 0x0f3000-0x0f3fff:E, 0x0f4000-0x0f4fff:E, 0x0f5000-0x0f5fff:E, 0x0f6000-0x0f6fff:E, 0x0f7000-0x0f7fff:E, 0x0f8000-0x0f8fff:E, 0x0f9000-0x0f9fff:E, 0x0fa000-0x0fafff:E, 0x0fb000-0x0fbfff:E, 0x0fc000-0x0fcfff:E, 0x0fd000-0x0fdfff:E, 0x0fe000-0x0fefff:E, 0x0ff000-0x0fffff:E, 0x100000-0x100fff:EFAILED at 0x00100000! Expected=0xff, Found=0xeb, failed byte count from 0x00100000-0x00100fff: 0xfe5 ERASE FAILED! Reading current flash chip contents...
Again same address "0x00100000". What can i do or what should i test? Any idea? Maybe more "V" for verbose? Now i try to write random data, but i guess it does also not work. But i give it a try.
Greetings
Am 02.03.2015 um 23:51 schrieb Urja Rannikko:
Hi,
I'm also addressing the mailing list now, because i think the last bit is interesting to more people.
On Mon, Mar 2, 2015 at 11:48 PM, The Raven originalraven@hotmail.com wrote:
Hi again
I'd like to know how the "U2" firmware fails, and this flashrom might be better at breaking it and telling what happened: This is how to use that my flashrom branch: git clone git://github.com/urjaman/flashrom flashrom-serprog cd flashrom-serprog git checkout serprog-improvements make ./flashrom .... <same parameters here as you used before ...>
And report me what happened... then, there's a second thing i just made.
Does not compile! I got this: serprog.c: In function ‘serprog_map’: serprog.c:1128:3: error: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘size_t’ [-Werror=format=] msg_pwarn(MSGHEADER "incompatible mapping '%s' phys_addr 0x%08X len %d, returning NULL\n", ^ cc1: all warnings being treated as errors make: *** [serprog.o] Fehler 1
Can you tell me whats wrong? Tomorrow i try it again.
Sorry, my compiler was too old and it didnt produce this warning thus i didnt notice it. I think fixed it in my branch, so you can git pull make to try again with the fix. If there are other warnings that get in the way, you can disable -Werror with make WARNERROR=no
and send me all the warnings it produced so i can fix them all. Thanks a lot for reporting this :)
I got a bit carried away reading the serprog-duino firmware code and decided to just see what it'd look like with my frser-* codebase. So, fresh out of the oven, and untested (i tested on my m644p before i converted it for the m328p): https://github.com/urjaman/frser-duino To use it: git clone git://github.com/urjaman/frser-duino cd frser-duino make && make program
(the defaults are for the u2 arduino, eg. ttyACM0 and 115200, i didnt have time to work the makefile magic that hard.)
With luck it might work, but I'm expecting failure. Report where it failed. If its something simple you can fix it too if you want to, just commit it and send me the git format-patch -1 :) If it compiled and programmed, then try the flashrom-serprog again And if that works try the stock flashrom too.
Have tried this with the "normal" flashrom and it seems to work with the "M25P10-A"!!!
Look the "short" log: Found Micron/Numonyx/ST flash chip "M25P10-A" (128 kB, SPI). === This flash part has status UNTESTED for operations: 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 chip. Please include the flashrom log file for all operations you tested (see the man page for details), and mention which mainboard or programmer you tested in the subject line. Thanks for your help! Erasing and writing flash chip... Trying erase function 0... 0x000000-0x007fff:E, 0x008000-0x00ffff:E, 0x010000-0x017fff:E, 0x018000-0x01ffff:E Erase/write done. serprog: Output drivers disabled
Done! This was never possible with the "other" serprog code!
And writing of random data: Found Micron/Numonyx/ST flash chip "M25P10-A" (128 kB, SPI). === This flash part has status UNTESTED for operations: 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 chip. Please include the flashrom log file for all operations you tested (see the man page for details), and mention which mainboard or programmer you tested in the subject line. Thanks for your help! Reading old flash chip contents... done. Erasing and writing flash chip... Trying erase function 0... 0x000000-0x007fff:W, 0x008000-0x00ffff:W, 0x010000-0x017fff:W, 0x018000-0x01ffff:W Erase/write done. Verifying flash... VERIFIED. serprog: Output drivers disabled
Also done! I think this looks really good! :-) Tomorrow i try the MX25L6445E, let's see what happens!
THX for your help and making things better! :-)
I sent this to the mailing list too because that seems like a report for M25P10-A write tested ok :)