Hi,
On Sun, Aug 30, 2015 at 6:10 PM, Guillaume Maugein guillaume.maugein@gmail.com wrote:
Hey,
First of all, thank you for the great work.
I am trying to access the Micron N25Q064A13 flash chip on my Synology NAS DS413j.
I happen to have a teensy board available at hand, so I programmed it with serprog software, using the instructions to which the flashrom website points to. I am under Xubuntu 15.04, and I installed flashrom from the daily builds ppa. If I remember, the version was 20150705~ubuntu14.04.1.
xubuntu@xubuntu:~$ flashrom -R flashrom v0.9.8-unknown on Linux 3.19.0-25-generic (x86_64)
I connected the programmer with GND, MISO, MOSI, CLK and CS using grips. As I am ISP, I did not connect the VCC.
I double-checked my connections, and they seem to be fine.
I start the NAS, and using serial terminal (on a different computer), I stop the boot sequence at uboot prompt. If I flinfo in the uboot, I get the following info :
Marvell>> flinfo
Bank#1: Flash Base Address : 0xf8000000 Flash Model : ST N25Q064 Manufacturer ID : 0x20 Device Id : 0xba17 Sector Size : 64K Number of sectors : 128 Page Size : 256 Write Protection : All
While the system is waiting on the prompt, I launch a flashrom command, and the chip is not recognized :
xubuntu@xubuntu:~$ sudo flashrom -V -p serprog:dev=/dev/ttyACM0:2000000 flashrom v0.9.8-unknown on Linux 3.19.0-25-generic (x86_64) flashrom is free software, get the source code at http://www.flashrom.org
flashrom was built with libpci 3.2.1, GCC 4.8.4, little endian Command line (3 args): flashrom -V -p serprog:dev=/dev/ttyACM0:2000000 Calibrating delay loop... OS timer resolution is 1 usecs, 1104M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 999 us, 10000 myus = 9998 us, 4 myus = 4 us, OK. Initializing serprog programmer Baud rate is 2000000 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 2037 serprog: Maximum read-n length is 400384 serprog: Programmer name is "Teensy LPC+SPI" serprog: Serial buffer size is 2044 serprog: operation buffer size is 2048 serprog: Output drivers enabled The following protocols are supported: SPI. Probing for {... the list is long ...}
Probing for Micron/Numonyx/ST N25Q064..1E, 8192 kB: RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0x00, id2 0x00 Probing for Micron/Numonyx/ST N25Q064..3E, 8192 kB: RDID byte 0 parity violation. probe_spi_rdid_generic: id1 0x00, id2 0x00
This (0x00 reply) means that there's something wrong with the connections/communications. My guess is either a wiring problem or the NAS is also driving the SPI I/O lines and the Teensy is not strong enough to override (it could also be harmful to the chipset if it was).
Maybe try finding a reset line and holding the NAS in reset while doing the programming.
Also note that I havent tested the teensy in any ISP application, so you're doing something untested. Have fun :)