This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nrfjprog qspi commands only work when UICR is erased

I am using a NRF52840 DK with a SoftDevice S140 6.1.1.  I have also flashed the secure ble bootloader on the device.

I have been using the nrfprog command line tools within a shell script successfully for quite a while.  The script helps automate writing data to the QSPI flash on the DK among other things.  However, just a few days ago I updated my CLI tools and the JLinkArm DLL to the following

nrfjprog version: 10.10.0
JLinkARM.dll version: 6.86a

Now my script has stopped working -- specifically the commands that interact with the QSPI.  So for example,

nrfjprog -f nrf52 --qspicustominit --erasepage 0x12030000
will either completely fail or I will get a message saying "Initializing the QSPI peripheral" and it will hang there.  Almost by accident I found that if I erase the UICR section of the chip first by calling 
nrfjprog -f nrf52 --snr --eraseuicr
then all subsequent calls to the nrfjprog qspi commands will work.  So my questions are 

1) Why did updating cause this new issue? Is there a new functionality in the CLI tools that could explain this behavior?
2) What is the interaction between the UICR section of the code and the CLI tools?  Is this a known issue?
3) Is there any other way to fix this?  Erasing the UICR section (I would assume -- haven't tested) would affect the bootloader behavior so is not desirable
Parents Reply Children
No Data
Related