I need to store a hardware-revision value on an nRF9160 during manufacturing (using something like nrfjprog), and the non-secure application firmware must be able to read this value at runtime to decide logic.
I’m looking for guidance on which nRF9160 memory area is recommended for this purpose.
Requirements:
-
Written once at factory (e.g., HW_REV = 1,2,3…).
-
Application (non-secure) must be able to read it.
-
Application must not be able to overwrite it accidentally.
Questions:
-
What is the best location on nRF9160 to store a small factory-programmed value—UICR OTP, KMU, internal flash region, or external flash?
-
If UICR OTP is used, what is the proper way for non-secure firmware to read it?
-
What is the recommended tool/command for factory programming (e.g.,
nrfjprog --memwr, J-Link script, etc.)?
Looking for best practices for storing hardware revision or board identification on nRF9160.