Partition Manager: nRF54L15 OTP Memory Region Size Mismatch

Board: nRF54L15DK

NCS: v3.1.1

When I build an application for the nRF54L15 processor, the "otp" memory region in the auto generated "partitions.yml" file has a size of 0x4FC:

otp:
  address: 0xffd500
  end_address: 0xffd9fc
  region: otp
  size: 0x4fc

The real size of the OTP section is 0x500 (320 4-byte registers) "nrf54l15_types.h":

/* UICR_OTP: One time programmable memory */
  #define UICR_OTP_MaxCount (320UL)                  /*!< Max size of OTP[320] array.                                          */
  #define UICR_OTP_MaxIndex (319UL)                  /*!< Max index of OTP[320] array.                                         */
  #define UICR_OTP_MinIndex (0UL)                    /*!< Min index of OTP[320] array.                                         */

I tracked this autogenerated memory region to the "ncs/v3.1.1/nrf/cmake/sysbuild/partition_manager.cmake" file on lines 526 to 532:

    if(DEFINED ${image_name}_CONFIG_SOC_NRF54L15_CPUAPP
      OR DEFINED ${image_name}_CONFIG_SOC_NRF54L05_CPUAPP
      OR DEFINED ${image_name}_CONFIG_SOC_NRF54L10_CPUAPP
      )
      set(otp_start_addr "0xffd500")
      set(otp_size 1276)  # 319 * 4
    endif()

Is the last of the OPT registers reserved for something?  Why is there a size discrepancy?

Parents
  • Hello,

    I remember seeing this somewhere, but I couldn't find the source for it. It is correct that the OTP is a bit smaller than 0x500. But in fact, even more is reserved, if you intend to use NCS. Some of these are used by the bootloader. And although it doesn't say in the documentation.

    Perhaps you can elaborate a bit about how much of the OTP register you were planning on using, and I can find the internal ticket tomorrow stating how much is actually reserved for the customer, and how much that is reserved by NCS.

    Best regards,

    Edvin

Reply
  • Hello,

    I remember seeing this somewhere, but I couldn't find the source for it. It is correct that the OTP is a bit smaller than 0x500. But in fact, even more is reserved, if you intend to use NCS. Some of these are used by the bootloader. And although it doesn't say in the documentation.

    Perhaps you can elaborate a bit about how much of the OTP register you were planning on using, and I can find the internal ticket tomorrow stating how much is actually reserved for the customer, and how much that is reserved by NCS.

    Best regards,

    Edvin

Children
Related