nrfjprog nrf5340 programming error when rbp enabled

I am trying to program nrf5340 using this command: nrfjprog -f NRF53 --program merged_domains.hex --verify --recover -r

It works fine if readback protection is not enabled, but when readback protection is enabled, it gives this error:
[error] [ Client] - Encountered error -90: Command read_memory_descriptors executed for 15 milliseconds with result -90
[error] [ Worker] - Can't read memory descriptors, ap-protection is enabled.
[ ####################] 2.334s | Erase file - Done erasing
[ ####################] 6.855s | Program file - Done programming
[ ####################] 6.998s | Verify file - Done verifying
Applying system reset.
Run.

Then I tried each of the following before running the above command:
1. nrfjprog --recover --coprocessor CP_APPLICATION
    nrfjprog --recover --coprocessor CP_NETWORK

2. nrfjprog --recover
    nrfjprog --recover --coprocessor CP_APPLICATION

3. nrfjprog --recover

For all these cases, when I first try to run the programming command it gives an error

[ ####################] 2.371s | Erase file - Done erasing
[error] [ Client] - Encountered error -102: Command program_file executed for 5113 milliseconds with result -102
[error] [ nRF53] - The write access failed, but no cause could be determined.
[error] [ nRF53] - It may be due to an unaligned access, accessing a nonexistent memory, or a communication issue.
[error] [ nRF53] - Failed while performing 'Write' operation on target address 0x00014000.
-102: An unknown error.
[error] [ nRF53] - Failed while reading device information.
[error] [ Worker] - An unknown error.
ERROR: JLinkARM DLL reported an error. Try again. If error condition
ERROR: persists, run the same command again with argument --log, contact Nordic
ERROR: Semiconductor and provide the generated log.log file to them.
NOTE: For additional output, try running again with logging enabled (--log).
NOTE: Any generated log error messages will be displayed.

Afterwards when I run the command again, it works properly as expected 

So, for every alternate programming command I get that error, is there anything else that I need to do so the programming command works every time?

These are the versions that I'm using:
nrfjprog version: 10.24.0 external
JLinkARM.dll version: 7.94l

Parents Reply Children
  • Hello Vidar,

    I upgraded to the latest version and when I run this command first: nrfjprog --recover --coprocessor CP_NETWORK,
    it gives the following error

    [error] [ Client] - Encountered error -90: Command enable_coprocessor executed for 14 milliseconds with result -90
    [error] [ Worker] - Application core access protection is enabled, can't enable coprocessor.

    and I'm getting the same errors while programming.

    But when I run only this command: nrfjprog -f NRF53 --program merged_domains.hex --verify --recover -r
    without running any recover command before this, it works every time without any error.

    Is it fine to use only the programming command without any recover command before it?

  • Hello,

    It seems like you may need to run the following sequence to ensure nrfjprog can unlock both cores. I will report this internally. I'm not sure if it is an issue with the documentation or nrfjprog.

    nrfjprog --recover
    nrfjprog --recover --coprocessor CP_NETWORK
    nrfjprog --recover 

    Piyush_222 said:
    Is it fine to use only the programming command without any recover command before it?

    Yes, the nrfjprog will perform the same "recover" procedure internally when you append the --recover argument to your programming command, so the end result will be the same.

  • Hello,

    After running these commands below, I still get errors while programming.
    nrfjprog --recover
    nrfjprog --recover --coprocessor CP_NETWORK
    nrfjprog --recover 

    Only the programming command with --recover works properly.

    Thanks

  • Thanks for confirming. I have not been able to reproduce this here with my board. But using the --recover with the programming command is fine. I hope we can address this reliability issue you experienced in a future release.

Related