On 2011/04/18 8:51 PM, Alexandre Pereira da Silva wrote: > I couldn't see much wrong besides: > flash bank eightMB cfi 0xff800000 0x800000 1 2 feroceon.cpu > > This one is working for me: > flash bank extnor cfi 0x81000000 0x100000 1 1 $_TARGETNAME x16_as_x8 > jedec_probe > > You should confirm the real bus witdh. Normally you can configure > either as x16 or x8. And you have to make sure your reset-init does > initialize it. > > You missed the x16_as_x8 parameter too. > > If that doesn't work, you will have to debug the source code in cfi.c > > Thanks.
Hi Alexandre, Your working cfi definition worked for me, too, after adjusting addresses and sizes. Thanks you! Now the flash is recognized, and all the sectors are properly identified. However, I am still not able to flash a replacement firmware to the part. It seem that the unprotect command fails, and thus the file cannot be written to the flash. I placed a debug log of the following command: openocd -f buspirate.cfg -f dns323.cfg -d3 -l openocd.log \ -c "flash probe 0" \ -c "flash info 0" \ -c "flash erase_address pad unlock 0xfffd0000 0x30000" \ -c "flash write_image erase unlock mtdblock4 0xfffd0000" \ -c "shutdown" at: http://dawes.za.net/rogan/openocd-20110418-211900.log.gz The only difference in config files is the flash definition changed to: flash bank eightMB cfi 0xff800000 0x800000 1 1 $_TARGETNAME x16_as_x8 jedec_probe as suggested. Any ideas why the flash unprotect might fail? Thanks Rogan > > On Mon, Apr 18, 2011 at 2:32 PM, Rogan Dawes <[email protected]> wrote: >> On 2011/04/18 5:52 PM, Alexandre Pereira da Silva wrote: >>> Hi, >>> >>> I've had some similar problems like that in the past. It was about a >>> non-cfi x16 part connected to a x8 bus. Which flash part are you >>> trying to program? Can you send a verbose log of what openocd is >>> trying to do to detect your part? >>> >>> Thanks. >> >> The flash chip is a Spansion S29GL064M90TFIR4. To the best of my >> knowledge (and according to the datasheet), it IS a CFI part. >> >> It is just that the detection routine required to detect it on an 8-bit >> bus is slightly different than OpenOCD is attempting. >> >> I placed a debug log of the following command: >> >> /usr/local/bin/openocd -f buspirate.cfg -f dns323.cfg -d3 -l openocd.log >> -c "flash probe 0" -c "shutdown" >> >> on my website at: >> >> http://dawes.za.net/rogan/openocd-20110418-182940.log >> >> Config files are: >> >> http://dawes.za.net/rogan/buspirate.cfg >> http://dawes.za.net/rogan/dns323.cfg >> >> I hope that is everything required? If anything else is needed, please >> let me know. >> >> Thanks >> >> Rogan >> >>> >>> On Mon, Apr 18, 2011 at 8:47 AM, Rogan Dawes <[email protected]> wrote: >>>> Hi folks, >>>> >>>> I have a D-Link DNS323, which has an 8MB Spansion flash chip in it. >>>> >>>> The CPU is a Marvell Orion5x (Feroceon) MV88F5182 (CPUTAPID 0x07926041, >>>> which is not in the existing sources, FWIW). >>>> >>>> I can identify the CPU fine, but am unable to identify the flash part. I >>>> suspect that part of the problem is that the flash part is a 16-bit >>>> device on an 8-bit bus, and consequently probe addresses and read >>>> addresses need to be doubled. >>>> >>>> The thread starting here: >>>> >>>> http://lists.denx.de/pipermail/u-boot/2010-July/073885.html >>>> >>>> details some of the things attempted to get it to work with U-Boot, with >>>> a hacky solution shown here: >>>> >>>> http://www.mail-archive.com/[email protected]/msg49320.html >>>> >>>> I have seen that the OpenOCD CFI cfi driver also has code to double the >>>> address (using cfi_info->x16_as_x8 as a flag), but I think the initial >>>> probe does not know to set that flag, and even hard coding it to 1 >>>> doesn't work. >>>> >>>> The main oddity seems to be that to enter CFI command mode, the >>>> following commands work: >>>> >>>> mw.w 0xff8000aa 9800 (rather than 9898 which the U-Boot code defaulted to) >>>> >>>> or >>>> >>>> mw.b 0xff8000aa 98 (also worked fine to enter QRY mode) >>>> >>>> The results then looked like: >>>> >>>> md.b 0xff800020 20 >>>> ff800020: 51 51 52 52 59 59 02 02 00 00 40 40 00 00 00 00 QQRRYY....@@.... >>>> ff800030: 00 00 00 00 00 00 27 27 36 36 00 00 00 00 04 04 ......''66...... >>>> >>>> Note: I have bricked my DNS323 (hence my interest in OpenOCD! :-) ) and >>>> cannot regain access to the U-Boot shell to repeat this at the moment. >>>> >>>> In OpenOCD, however, neither of those commands result in the chip >>>> entering command mode, surprisingly. And, the existing CFI driver does >>>> not identify the chip. >>>> >>>> Does anyone have any suggestions as to how I can regain access to the >>>> flash on this device? >>>> >>>> Many thanks! >>>> >>>> Rogan >>>> _______________________________________________ >>>> Openocd-development mailing list >>>> [email protected] >>>> https://lists.berlios.de/mailman/listinfo/openocd-development >>>> >> >> _______________________________________________ Openocd-development mailing list [email protected] https://lists.berlios.de/mailman/listinfo/openocd-development
