Hi everyone,
Having just now bricked an old i.MX RT106x board by slightly messing up the QSPI configuration (*sigh*), I wonder if there's anything that can be done in J-Link Commander to unbrick it?
As to the whole QSPI bricking mechanism, my best guess (please correct me if I'm wrong!) is that the J-Link Commander's built-in QSPI driver relies on the functions built into the RT106x on-chip ROM vector table to erase QSPI. So if you have previously corrupted the QSPI header, the ROM routines throw an error right at the start, e.g. typing in the J-Link Commander 'erase' command gives this error message:
Originally I thought that there was basically no way out of this brickedness: but then yesterday I found a post on a Renesas site where someone used a J-Link Commander script to poke just enough hardware registers to erase a flash. (And let's face it, all you'd need to do is send down a WRITEENABLE command followed by an ERASECHIP command to a QSPI.) So it seems that a J-Link Commander script could be written to set up the clocks, set up a tiny QSPI LUT, and then trigger those command. (You might even be able to bit-bang out a command to a GPIO, though perhaps code would be better for that.)
Has someone already written a J-Link Commander script to forcibly erase (and hence unbrick) a 106x (or 105x or 102x) QSPI? I've looked just about everywhere but without any luck.![:(](https://forum.segger.com/wcf/images/smilies/sad.png)
Thanks, Nick
Having just now bricked an old i.MX RT106x board by slightly messing up the QSPI configuration (*sigh*), I wonder if there's anything that can be done in J-Link Commander to unbrick it?
As to the whole QSPI bricking mechanism, my best guess (please correct me if I'm wrong!) is that the J-Link Commander's built-in QSPI driver relies on the functions built into the RT106x on-chip ROM vector table to erase QSPI. So if you have previously corrupted the QSPI header, the ROM routines throw an error right at the start, e.g. typing in the J-Link Commander 'erase' command gives this error message:
Erasing selected range...
Error while determining flash info (Bank @ 0x60000000)
ERROR: Erase returned with error code -1.
Originally I thought that there was basically no way out of this brickedness: but then yesterday I found a post on a Renesas site where someone used a J-Link Commander script to poke just enough hardware registers to erase a flash. (And let's face it, all you'd need to do is send down a WRITEENABLE command followed by an ERASECHIP command to a QSPI.) So it seems that a J-Link Commander script could be written to set up the clocks, set up a tiny QSPI LUT, and then trigger those command. (You might even be able to bit-bang out a command to a GPIO, though perhaps code would be better for that.)
Has someone already written a J-Link Commander script to forcibly erase (and hence unbrick) a 106x (or 105x or 102x) QSPI? I've looked just about everywhere but without any luck.
![:(](https://forum.segger.com/wcf/images/smilies/sad.png)
Thanks, Nick