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?