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

What is the purpose of UICR values?

I'm looking at the UICR hardware peripheral example, and trying to figure out the utility in writing to the UICR registers.

Why would I want to modify the compiled hex file? To serialize the device at manufacturing time? For security like hard-coding a secret key at manufacturing time? Is this a common feature (I haven't heard of it in other embedded contexts). Thank you.

Parents
  • The UICR contains for instance "RBPCONF" (read-back protection flags) or "FWID" (FW ID) which you might need to set to particular value during production. While something could be managed by Nordic tools (I mean by "nrfjprog" or "nRFgo Studio") you will probably use other tools for mass production and then modifying values of these registers are usually only possible through HEX file. You can of course prepare it manually and then merge but having option of doing all this during compilation time could be handy. And yes, you can use UICR for storing some more obscure static data such as IDs or even keys (but then you probably want to diversify it per produced unit which leads to more sophisticated architectures between build and manufacturing). However managing of RBCONF will be more common.

Reply
  • The UICR contains for instance "RBPCONF" (read-back protection flags) or "FWID" (FW ID) which you might need to set to particular value during production. While something could be managed by Nordic tools (I mean by "nrfjprog" or "nRFgo Studio") you will probably use other tools for mass production and then modifying values of these registers are usually only possible through HEX file. You can of course prepare it manually and then merge but having option of doing all this during compilation time could be handy. And yes, you can use UICR for storing some more obscure static data such as IDs or even keys (but then you probably want to diversify it per produced unit which leads to more sophisticated architectures between build and manufacturing). However managing of RBCONF will be more common.

Children
No Data
Related