boards: Add support for nRF54L20 PDK
Introduce doc and board description. Signed-off-by: Karol Lasończyk <karol.lasonczyk@nordicsemi.no>
This commit is contained in:
parent
76f8f20aa6
commit
d66110bb35
11 changed files with 404 additions and 0 deletions
18
boards/nordic/nrf54l20pdk/Kconfig.defconfig
Normal file
18
boards/nordic/nrf54l20pdk/Kconfig.defconfig
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if BOARD_NRF54L20PDK_NRF54L20_CPUAPP
|
||||
|
||||
config BT_CTLR
|
||||
default BT
|
||||
|
||||
config ROM_START_OFFSET
|
||||
default 0x800 if BOOTLOADER_MCUBOOT
|
||||
|
||||
config SOC_NRF54LX_SKIP_CLOCK_CONFIG
|
||||
default y
|
||||
|
||||
config SOC_NRF54LX_SKIP_GLITCHDETECTOR_DISABLE
|
||||
default y
|
||||
|
||||
endif # BOARD_NRF54L20PDK_NRF54L20_CPUAPP
|
5
boards/nordic/nrf54l20pdk/Kconfig.nrf54l20pdk
Normal file
5
boards/nordic/nrf54l20pdk/Kconfig.nrf54l20pdk
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_NRF54L20PDK
|
||||
select SOC_NRF54L20_ENGA_CPUAPP if BOARD_NRF54L20PDK_NRF54L20_CPUAPP
|
7
boards/nordic/nrf54l20pdk/board.cmake
Normal file
7
boards/nordic/nrf54l20pdk/board.cmake
Normal file
|
@ -0,0 +1,7 @@
|
|||
# Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(jlink "--device=cortex-m33" "--speed=4000")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
5
boards/nordic/nrf54l20pdk/board.yml
Normal file
5
boards/nordic/nrf54l20pdk/board.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
name: nrf54l20pdk
|
||||
vendor: nordic
|
||||
socs:
|
||||
- name: nrf54l20
|
91
boards/nordic/nrf54l20pdk/doc/index.rst
Normal file
91
boards/nordic/nrf54l20pdk/doc/index.rst
Normal file
|
@ -0,0 +1,91 @@
|
|||
.. _nrf54l20pdk_nrf54l20:
|
||||
|
||||
nRF54L20 PDK
|
||||
############
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
.. note::
|
||||
|
||||
All software for the nRF54L20 SoC is experimental and hardware availability
|
||||
is restricted to the participants in the limited sampling program.
|
||||
|
||||
The nRF54L20 Preview Development Kit hardware provides
|
||||
support for the Nordic Semiconductor nRF54L20 Arm Cortex-M33 CPU and
|
||||
the following devices:
|
||||
|
||||
* CLOCK
|
||||
* RRAM
|
||||
* :abbr:`GPIO (General Purpose Input Output)`
|
||||
* :abbr:`GRTC (Global real-time counter)`
|
||||
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
|
||||
* :abbr:`UARTE (Universal asynchronous receiver-transmitter)`
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
nRF54L20 PDK 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
|
||||
==================
|
||||
|
||||
The ``nrf54l20pdk/nrf54l20/cpuapp`` board target configuration supports the following
|
||||
hardware features:
|
||||
|
||||
+-----------+------------+----------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+======================+
|
||||
| CLOCK | on-chip | clock_control |
|
||||
+-----------+------------+----------------------+
|
||||
| RRAM | on-chip | flash |
|
||||
+-----------+------------+----------------------+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+----------------------+
|
||||
| GRTC | on-chip | system clock |
|
||||
+-----------+------------+----------------------+
|
||||
| NVIC | on-chip | arch/arm |
|
||||
+-----------+------------+----------------------+
|
||||
| UARTE | on-chip | serial |
|
||||
+-----------+------------+----------------------+
|
||||
|
||||
Other hardware features have not been enabled yet for this board.
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
Applications for the ``nrf54l20pdk/nrf54l20/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.
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
As an example, this section shows how to build and flash the :ref:`hello_world`
|
||||
application.
|
||||
|
||||
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 nRF54L20 PDK, complete the following steps:
|
||||
|
||||
First, connect the nRF54L20 PDK to you computer using the IMCU USB port on the PDK.
|
||||
Next, build the sample by running the following command:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: nrf54l20pdk/nrf54l20/cpuapp
|
||||
:goals: build flash
|
||||
|
||||
Testing the LEDs and buttons in the nRF54L20 PDK
|
||||
************************************************
|
||||
|
||||
Test the nRF54L20 PDK with a :zephyr:code-sample:`blinky` sample.
|
117
boards/nordic/nrf54l20pdk/nrf54l20_cpuapp_common.dtsi
Normal file
117
boards/nordic/nrf54l20pdk/nrf54l20_cpuapp_common.dtsi
Normal file
|
@ -0,0 +1,117 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/* This file is common to the secure and non-secure domain */
|
||||
|
||||
#include <nordic/nrf54l20_enga_cpuapp.dtsi>
|
||||
#include "nrf54l20pdk_nrf54l20-common.dtsi"
|
||||
|
||||
/ {
|
||||
chosen {
|
||||
zephyr,console = &uart20;
|
||||
zephyr,shell-uart = &uart20;
|
||||
zephyr,uart-mcumgr = &uart20;
|
||||
zephyr,bt-mon-uart = &uart20;
|
||||
zephyr,bt-c2h-uart = &uart20;
|
||||
zephyr,flash-controller = &rram_controller;
|
||||
zephyr,flash = &cpuapp_rram;
|
||||
zephyr,bt-hci = &bt_hci_controller;
|
||||
zephyr,ieee802154 = &ieee802154;
|
||||
};
|
||||
};
|
||||
|
||||
&cpuapp_sram {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&lfxo {
|
||||
load-capacitors = "internal";
|
||||
load-capacitance-femtofarad = <15500>;
|
||||
};
|
||||
|
||||
&hfxo {
|
||||
load-capacitors = "internal";
|
||||
load-capacitance-femtofarad = <15000>;
|
||||
};
|
||||
|
||||
&grtc {
|
||||
owned-channels = <0 1 2 3 4 5 6 7 8 9 10 11>;
|
||||
/* Channels 7-11 reserved for Zero Latency IRQs, 3-4 for FLPR */
|
||||
child-owned-channels = <3 4 7 8 9 10 11>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&cpuapp_rram {
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
boot_partition: partition@0 {
|
||||
label = "mcuboot";
|
||||
reg = <0x0 DT_SIZE_K(64)>;
|
||||
};
|
||||
slot0_partition: partition@10000 {
|
||||
label = "image-0";
|
||||
reg = <0x10000 DT_SIZE_K(449)>;
|
||||
};
|
||||
slot0_ns_partition: partition@80400 {
|
||||
label = "image-0-nonsecure";
|
||||
reg = <0x80400 DT_SIZE_K(449)>;
|
||||
};
|
||||
slot1_partition: partition@f0800 {
|
||||
label = "image-1";
|
||||
reg = <0xf0800 DT_SIZE_K(449)>;
|
||||
};
|
||||
slot1_ns_partition: partition@160c00 {
|
||||
label = "image-1-nonsecure";
|
||||
reg = <0x160c00 DT_SIZE_K(449)>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart20 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpio2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpiote20 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpiote30 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&radio {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&temp {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clock {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&bt_hci_controller {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ieee802154 {
|
||||
status = "okay";
|
||||
};
|
72
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20-common.dtsi
Normal file
72
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20-common.dtsi
Normal file
|
@ -0,0 +1,72 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "nrf54l20pdk_nrf54l20-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
led0: led_0 {
|
||||
gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
|
||||
label = "Green LED 0";
|
||||
};
|
||||
led1: led_1 {
|
||||
gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
|
||||
label = "Green LED 1";
|
||||
};
|
||||
led2: led_2 {
|
||||
gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
|
||||
label = "Green LED 2";
|
||||
};
|
||||
led3: led_3 {
|
||||
gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
|
||||
label = "Green LED 3";
|
||||
};
|
||||
};
|
||||
|
||||
buttons {
|
||||
compatible = "gpio-keys";
|
||||
button0: button_0 {
|
||||
gpios = <&gpio1 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||
label = "Push button 0";
|
||||
zephyr,code = <INPUT_KEY_0>;
|
||||
};
|
||||
button1: button_1 {
|
||||
gpios = <&gpio1 9 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||
label = "Push button 1";
|
||||
zephyr,code = <INPUT_KEY_1>;
|
||||
};
|
||||
button2: button_2 {
|
||||
gpios = <&gpio1 8 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||
label = "Push button 2";
|
||||
zephyr,code = <INPUT_KEY_2>;
|
||||
};
|
||||
button3: button_3 {
|
||||
gpios = <&gpio0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
|
||||
label = "Push button 3";
|
||||
zephyr,code = <INPUT_KEY_3>;
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &led0;
|
||||
led1 = &led1;
|
||||
led2 = &led2;
|
||||
led3 = &led3;
|
||||
sw0 = &button0;
|
||||
sw1 = &button1;
|
||||
sw2 = &button2;
|
||||
sw3 = &button3;
|
||||
watchdog0 = &wdt31;
|
||||
};
|
||||
};
|
||||
|
||||
&uart20 {
|
||||
current-speed = <115200>;
|
||||
pinctrl-0 = <&uart20_default>;
|
||||
pinctrl-1 = <&uart20_sleep>;
|
||||
pinctrl-names = "default", "sleep";
|
||||
};
|
24
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20-pinctrl.dtsi
Normal file
24
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20-pinctrl.dtsi
Normal file
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
&pinctrl {
|
||||
/omit-if-no-ref/ uart20_default: uart20_default {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(UART_TX, 1, 4)>;
|
||||
};
|
||||
group2 {
|
||||
psels = <NRF_PSEL(UART_RX, 1, 5)>;
|
||||
bias-pull-up;
|
||||
};
|
||||
};
|
||||
|
||||
/omit-if-no-ref/ uart20_sleep: uart20_sleep {
|
||||
group1 {
|
||||
psels = <NRF_PSEL(UART_TX, 1, 4)>,
|
||||
<NRF_PSEL(UART_RX, 1, 5)>;
|
||||
low-power-enable;
|
||||
};
|
||||
};
|
||||
};
|
19
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20_cpuapp.dts
Normal file
19
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20_cpuapp.dts
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include "nrf54l20_cpuapp_common.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "nordic,nrf54l20pdk_nrf54l20-cpuapp";
|
||||
model = "Nordic nRF54L20 PDK nRF54L20 Application MCU";
|
||||
|
||||
chosen {
|
||||
zephyr,code-partition = &slot0_partition;
|
||||
zephyr,sram = &cpuapp_sram;
|
||||
};
|
||||
};
|
17
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20_cpuapp.yaml
Normal file
17
boards/nordic/nrf54l20pdk/nrf54l20pdk_nrf54l20_cpuapp.yaml
Normal file
|
@ -0,0 +1,17 @@
|
|||
# Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
identifier: nrf54l20pdk/nrf54l20/cpuapp
|
||||
name: nRF54L20-PDK-nRF54L20-Application
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
- zephyr
|
||||
sysbuild: true
|
||||
ram: 512
|
||||
flash: 449
|
||||
supported:
|
||||
- counter
|
||||
- gpio
|
|
@ -0,0 +1,29 @@
|
|||
# Copyright (c) 2024 Nordic Semiconductor ASA
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Enable UART driver
|
||||
CONFIG_SERIAL=y
|
||||
|
||||
# Enable console
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
# Enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable hardware stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
# MPU-based null-pointer dereferencing detection cannot
|
||||
# be applied as the (0x0 - 0x400) is unmapped for this target.
|
||||
CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE=y
|
||||
|
||||
# Enable Cache
|
||||
CONFIG_CACHE_MANAGEMENT=y
|
||||
CONFIG_EXTERNAL_CACHE=y
|
||||
|
||||
# Start SYSCOUNTER on driver init
|
||||
CONFIG_NRF_GRTC_START_SYSCOUNTER=y
|
Loading…
Add table
Add a link
Reference in a new issue