oscarboiro wrote: ↑20 Feb 2019, 16:40
I try to erase and have next fail:
Even if doing anything right, this error occurs. It seem to have a time component, means that it do for some time and then fails. Sometimes one could erase/flash up to 30 sectors without an issue, but other ranges can only be programmed with a few sectors at one. It seems arbitrary. This may be caused by the fact that programming/erasing is not a linear process. For example: if you erase a single sector which contains data, this process take some time. If it is clear and you erase it agina, it is just like "boom - finished". This is because of the nature of the flash and also the optimizations of Seggers J-Flash software. If all the bits are set to '1', there is no need to do it again. You get this if you successfully erased a chip and do the process again. The second run will be finished in seconds, whereas the first run needs minutes, and even now multiple iterations.
J-Flash first HALT the CPU, then "downloads" a piece of software into the SRAM of the OMAP and executes it. This software (i call it an "exploit") accesses the flash directly, parallel by the OMAP IO-lines and sends the data back and forth using the JTAG-protocol (serial). This piece of software gets interrupted somehow and therefore the errormessage appears, because communication get lost. This is also reflected by the current drop you can read on an amperemeter or the display of the power supply.
As long as the radioprocessors watchdog is active, i understand that it aborts after 12 seconds from the moment the CPU is halted. But by chilling the watchdog with grounding pin 13 of serviceport 2, erasing and writing should work like reading. Technically i see no difference, and have no clue why and what is interfering here. Maybe what we are faced is a software error of the J-Flash exploit, we should not push this to far away, even if it sounds unlikely. But there are also watchdog components on the OMAP, namely the CoProcessor (CP15) and the Memory-Management-Unit (MMU) of the CPU itself. Maybe they get triggered by writing to the flash only...
What makes me think that there is another component (namely a watchdog) interrupting the process is that the PC (program counter) seems always to be "0x0000 0000", which is the boot-sequence. I attached two more errormessages from programming aborts i get, which also shows this correlation.
We should dig deeper into what the messages tells us and what all those
register values mean!
You do not have the required permissions to view the files attached to this post.