nrf54L10 : Can nRF54L10 build be used on nRF54L15 board with only hardware difference is MCU with same partition table?

Hi,

We are using both nRF54L15 and nRF54L10 in our product, with DFU support where an external flash is used as the secondary partition on both MCUs. The hardware connections are identical on both boards.

To define partitions, we use partition manager with a pm_static.yml file (attached), which is the same for both MCUs and allocates around 850–900 KB of internal flash.

Question:
From our understanding, the only difference between nRF54L15 and nRF54L10 is the available flash and RAM, while the rest of the hardware is the same.

Our project is built using the nRF54L10 configuration to account for memory limitations.

  • Board target: nrf54l15dk/nrf54l10/cpuapp

  • Base overlay: our custom board overlay

hence we are using partition manager so its overtight other partition right?
  
Can we run the same nRF54L10 build on the nRF54L15 board?


external_flash:
  address: 0x00000000
  size:    0x00800000   # 8_MB total
  region:  external_flash

reserved_ext_flash_a:
  address: 0x00000000
  size:    0x00400000   # 4MB_(not mcuboot_secondary)
  region:  external_flash

mcuboot_secondary:
  address: 0x00400000
  size:    0x000E0000   #  896 KiB = 224*4 KiB matches primary
  #size:    0x000F0000   # 960 KiB = 240*4 KiB matches primary
  region:  external_flash
  device:  DT_CHOSEN(nordic_pm_ext_flash)

reserved_ext_flash_b:
  address: 0x004E0000
  size:    0x00320000   # remaining external space
  region:  external_flash

# Internal flash (primary)

mcuboot:
  address: 0x00000000
  size:    0x00010000   # 64 KiB bootloader
  region:  flash_primary
  placement:
    align:
      end: 0x1000
    before:
      - mcuboot_primary

mcuboot_pad:
  address: 0x00010000
  size:    0x00001000   # 4 KiB pad 
  region:  flash_primary
  placement:
    align:
      start: 0x1000
    before:
      - mcuboot_primary_app

app:
  address: 0x00011000
  size:    0x000E0000   # 896 KiB app_AR
  # size:    0x000EF000   # 956 KiB app_AR
  region:  flash_primary


mcuboot_primary:
  address: 0x00010000
  size:    0x000E0000   # 896 KiB total (pad + app)_4 KiB*
  region:  flash_primary
  span:
    - mcuboot_pad
    - app

mcuboot_primary_app:
  address: 0x00011000
  size:    0x000E0000
  region:  flash_primary
  span:
    - app
  placement :
    before:
     - app


bootconf:
  address: 0x00FFD080
  size:    0x00000004
  region:  bootconf

sram_primary:
  address: 0x20000000
  size:    0x00030000   # 192 KiB
  region:  sram_primary

# General Settings
CONFIG_NCS_SAMPLES_DEFAULTS=y
CONFIG_HEAP_MEM_POOL_SIZE=8192
CONFIG_MAIN_STACK_SIZE=16384
CONFIG_RESET_ON_FATAL_ERROR=y
CONFIG_REBOOT=y
CONFIG_PM_DEVICE=y

# Bluetooth Configuration
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_CENTRAL=y
CONFIG_BT_DEVICE_NAME="WA_X"
CONFIG_BT_DEVICE_NAME_DYNAMIC=y
CONFIG_BT_DEVICE_APPEARANCE=832
CONFIG_BT_MAX_CONN=1
CONFIG_BT_MAX_PAIRED=1
CONFIG_BT_EXT_ADV=y
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=250

CONFIG_BT_SMP=y
CONFIG_DFU_TARGET=y

CONFIG_BT_SCAN=y
CONFIG_BT_SCAN_FILTER_ENABLE=y
CONFIG_BT_SCAN_UUID_CNT=1

CONFIG_BT_GATT_CLIENT=y
CONFIG_BT_GATT_DM=y

# CONFIG_BT_HRS=y
# CONFIG_BT_HRS_CLIENT=y

CONFIG_BT_SETTINGS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
CONFIG_SETTINGS=y

CONFIG_DK_LIBRARY=y


# MPSL support
CONFIG_MPSL=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y

# Enable the GPIO peripheral
CONFIG_GPIO=y
CONFIG_GPIO_NRFX=y
CONFIG_GPIO_NRFX_INTERRUPT=y
CONFIG_INPUT=y


# Enable the I2C peripheral
CONFIG_I2C=y
CONFIG_SENSOR=y
CONFIG_LIS2DW12=y
CONFIG_TMP112=y  # TMP110 is compatible with TMP112 driver
# CONFIG_BQ35100=y

# Enable triggers (interrupt-based events)
# CONFIG_LIS2DW12_TRIGGER_GLOBAL_THREAD=y

# Enable the SPI peripheral
CONFIG_SPI=y
CONFIG_SPI_NOR=y

# Enable the UART peripheral
CONFIG_SERIAL=y
#CONFIG_UART_INTERRUPT_DRIVEN=y  # If you're using interrupts
CONFIG_UART_ASYNC_API=y

# Logging Core
CONFIG_LOG=y
CONFIG_LOG_DEFAULT_LEVEL=3
CONFIG_LOG_MODE_DEFERRED=y
CONFIG_LOG_BUFFER_SIZE=4096
CONFIG_LOG_BACKEND_SHOW_COLOR=y

# RTT backend
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y

# Disable UART backend completely
CONFIG_LOG_BACKEND_UART=n
CONFIG_UART_CONSOLE=n
CONFIG_CONSOLE=n
CONFIG_STDOUT_CONSOLE=n

# STEP 2.2 - Enable FOTA over Bluetooth LE
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y

#enble watchdog 
CONFIG_WATCHDOG=y

# Enable the Fuel Gauge
CONFIG_FUEL_GAUGE=y

# Enable the CJSON library for JSON parsing
CONFIG_CJSON_LIB=y

# Enable the CRC library for checksum calculations
CONFIG_CRC=y

# Enable Mbed TLS and Nordic's security wrapper
CONFIG_MBEDTLS=y
CONFIG_NRF_SECURITY=y

# Enable AES and CBC mode in Mbed TLS
CONFIG_MBEDTLS_LEGACY_CRYPTO_C=y
CONFIG_MBEDTLS_AES_C=y
CONFIG_MBEDTLS_CIPHER_MODE_CBC=y

# Enable full cipher module (recommended)
CONFIG_MBEDTLS_CIPHER_C=y

#Added by chetan to solve float problem in Sprintf
CONFIG_NEWLIB_LIBC=y
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y

CONFIG_LOG_PRINTK=y
CONFIG_CBPRINTF_FP_SUPPORT=y

CONFIG_BASE64=y

# Step 1.1 - Enable SPI driver for the application
CONFIG_SPI_NOR_SFDP_DEVICETREE=y
CONFIG_SPI_NOR_FLASH_LAYOUT_PAGE_SIZE=4096
# QSPI drivers are enabled by defualt for some chips.
# Disable it explicitly to be sure QSPI is disabled.
CONFIG_NORDIC_QSPI_NOR=n 

# Enable mcumgr DFU in application
CONFIG_MCUMGR=y

# Enable MCUMGR management for both OS and Images
CONFIG_MCUMGR_GRP_OS=y
CONFIG_MCUMGR_GRP_IMG=y

# # Configure MCUMGR transport to UART
# CONFIG_MCUMGR_TRANSPORT_UART=y

# Dependencies
# Configure dependencies for CONFIG_MCUMGR  
CONFIG_NET_BUF=y
CONFIG_ZCBOR=y
CONFIG_CRC=y

# Configure dependencies for CONFIG_MCUMGR_GRP_IMG  
CONFIG_FLASH=y
CONFIG_IMG_MANAGER=y

# Configure dependencies for CONFIG_IMG_MANAGER  
CONFIG_STREAM_FLASH=y
CONFIG_FLASH_MAP=y

CONFIG_UARTE_NRFX_UARTE_COUNT_BYTES_WITH_TIMER=y


CONFIG_BT_SCAN_ADDRESS_CNT=1




Thanks and Regards,
Jay
WaveInnova inc

Related