Commit 3d1fa8b3 authored by Karol Lasończyk's avatar Karol Lasończyk Committed by Daniel DeGrasse
Browse files

board: nrf: Add nRF54LM20DK board

Adding board for nRF54LM20A device.

Signed-off-by: default avatarKarol Lasończyk <karol.lasonczyk@nordicsemi.no>
parent 387520c8
Loading
Loading
Loading
Loading
+9 −0
Changes for boards/nordic/nrf54lm20dk/Kconfig.defconfig: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP

config ROM_START_OFFSET
	default 0x800 if BOOTLOADER_MCUBOOT

endif # BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP
+6 −0
Changes for boards/nordic/nrf54lm20dk/Kconfig.nrf54lm20dk: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config BOARD_NRF54LM20DK
	select SOC_NRF54LM20A_ENGA_CPUAPP if BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP
	select SOC_NRF54LM20A_ENGA_CPUFLPR if BOARD_NRF54LM20DK_NRF54LM20A_CPUFLPR
+11 −0
Changes for boards/nordic/nrf54lm20dk/board.cmake: 11 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

if(CONFIG_SOC_NRF54LM20A_ENGA_CPUAPP)
  board_runner_args(jlink "--device=cortex-m33" "--speed=4000")
elseif(CONFIG_SOC_NRF54LM20A_ENGA_CPUFLPR)
  board_runner_args(jlink "--speed=4000")
endif()

include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
+43 −0
Changes for boards/nordic/nrf54lm20dk/board.yml: 43 added lines, 0 removed lines.
Original line number Diff line number Diff line
board:
  name: nrf54lm20dk
  full_name: nRF54LM20 DK
  vendor: nordic
  socs:
  - name: nrf54lm20a
    variants:
    - name: xip
      cpucluster: cpuflpr
runners:
  run_once:
    '--recover':
    - runners:
      - nrfjprog
      - nrfutil
      run: first
      groups:
      - boards:
        - nrf54lm20dk/nrf54lm20a/cpuapp
        - nrf54lm20dk/nrf54lm20a/cpuflpr
        - nrf54lm20dk/nrf54lm20a/cpuflpr/xip
    '--erase':
    - runners:
      - nrfjprog
      - jlink
      - nrfutil
      run: first
      groups:
      - boards:
        - nrf54lm20dk/nrf54lm20a/cpuapp
        - nrf54lm20dk/nrf54lm20a/cpuflpr
        - nrf54lm20dk/nrf54lm20a/cpuflpr/xip
    '--reset':
    - runners:
      - nrfjprog
      - jlink
      - nrfutil
      run: last
      groups:
      - boards:
        - nrf54lm20dk/nrf54lm20a/cpuapp
        - nrf54lm20dk/nrf54lm20a/cpuflpr
        - nrf54lm20dk/nrf54lm20a/cpuflpr/xip
+102 −0
Changes for boards/nordic/nrf54lm20dk/doc/index.rst: 102 added lines, 0 removed lines.
Original line number Diff line number Diff line
.. zephyr:board:: nrf54lm20dk

Overview
********

The nRF54LM20 Development Kit hardware provides support for the Nordic Semiconductor
nRF54LM20A Arm Cortex-M33 CPU and the following devices:

* :abbr:`SAADC (Successive Approximation Analog to Digital Converter)`
* CLOCK
* RRAM
* :abbr:`GPIO (General Purpose Input Output)`
* :abbr:`TWIM (I2C-compatible two-wire interface master with EasyDMA)`
* MEMCONF
* :abbr:`MPU (Memory Protection Unit)`
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
* :abbr:`PWM (Pulse Width Modulation)`
* :abbr:`GRTC (Global real-time counter)`
* Segger RTT (RTT Console)
* :abbr:`SPI (Serial Peripheral Interface)`
* :abbr:`UARTE (Universal asynchronous receiver-transmitter)`
* :abbr:`WDT (Watchdog Timer)`

Hardware
********

nRF54LM20 DK has two crystal oscillators:

* High-frequency 32 MHz crystal oscillator (HFXO)
* Low-frequency 32.768 kHz crystal oscillator (LFXO)

The crystal oscillators can be configured to use either
internal or external capacitors.

Supported Features
==================

.. zephyr:board-supported-hw::

Programming and Debugging
*************************

.. zephyr:board-supported-runners::

Applications for the ``nrf54lm20dk/nrf54lm20a/cpuapp`` board target can be
built, flashed, and debugged in the usual way. See
:ref:`build_an_application` and :ref:`application_run` for more details on
building and running.

Applications for the ``nrf54lm20dk/nrf54lm20a/cpuflpr`` board target need
to be built using sysbuild to include the ``vpr_launcher`` image for the application core.

Enter the following command to compile ``hello_world`` for the FLPR core:

.. code-block:: console

   west build -p -b nrf54lm20dk/nrf54lm20a/cpuflpr --sysbuild


Flashing
========

As an example, this section shows how to build and flash the :zephyr:code-sample:`hello_world`
application.

.. warning::

   When programming the device, you might get an error similar to the following message::

    ERROR: The operation attempted is unavailable due to readback protection in
    ERROR: your device. Please use --recover to unlock the device.

   This error occurs when readback protection is enabled.
   To disable the readback protection, you must *recover* your device.

   Enter the following command to recover the core::

    west flash --recover

   The ``--recover`` command erases the flash memory and then writes a small binary into
   the recovered flash memory.
   This binary prevents the readback protection from enabling itself again after a pin
   reset or power cycle.

Follow the instructions in the :ref:`nordic_segger` page to install
and configure all the necessary software. Further information can be
found in :ref:`nordic_segger_flashing`.

To build and program the sample to the nRF54LM20 DK, complete the following steps:

First, connect the nRF54LM20 DK to you computer using the IMCU USB port on the DK.
Next, build the sample by running the following command:

.. zephyr-app-commands::
   :zephyr-app: samples/hello_world
   :board: nrf54lm20dk/nrf54lm20a/cpuapp
   :goals: build flash

Testing the LEDs and buttons in the nRF54LM20 DK
************************************************

Test the nRF54LM20 DK with a :zephyr:code-sample:`blinky` sample.
Loading