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

Reply via email to