Skip to content

Commit f0eaba4

Browse files
greg-leachkartben
authored andcommitted
boards: ezurio: bl54l15_dvk: Add BL54L15/L15u DVK support
Adds support for the BL54L15 and BL54L15u DVK boards. Signed-off-by: Greg Leach <greg.leach@ezurio.com>
1 parent 9c7e8ba commit f0eaba4

File tree

52 files changed

+2376
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+2376
-0
lines changed

boards/ezurio/bl54l15_dvk/Kconfig

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# Copyright (c) 2025 Ezurio LLC
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# BL54L15 DVK board configuration
6+
7+
if BOARD_BL54L15_DVK_NRF54L10_CPUAPP_NS || BOARD_BL54L15_DVK_NRF54L15_CPUAPP_NS
8+
9+
DT_NRF_MPC := $(dt_nodelabel_path,nrf_mpc)
10+
11+
config NRF_TRUSTZONE_FLASH_REGION_SIZE
12+
hex
13+
default $(dt_node_int_prop_hex,$(DT_NRF_MPC),override-granularity)
14+
help
15+
This defines the flash region size from the TrustZone perspective.
16+
It is used when configuring the TrustZone and when setting alignments
17+
requirements for the partitions.
18+
This abstraction allows us to configure TrustZone without depending
19+
on peripheral-specific symbols.
20+
21+
config NRF_TRUSTZONE_RAM_REGION_SIZE
22+
hex
23+
default $(dt_node_int_prop_hex,$(DT_NRF_MPC),override-granularity)
24+
help
25+
This defines the RAM region size from the TrustZone perspective.
26+
It is used when configuring the TrustZone and when setting alignments
27+
requirements for the partitions.
28+
This abstraction allows us to configure TrustZone without depending
29+
on peripheral specific symbols.
30+
31+
endif # BOARD_BL54L15_DVK_NRF54L10_CPUAPP_NS || BOARD_BL54L15_DVK_NRF54L15_CPUAPP_NS
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Copyright (c) 2024 Nordic Semiconductor ASA
2+
# Copyright (c) 2025 Ezurio LLC
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
config BOARD_BL54L15_DVK
6+
select SOC_NRF54L10_CPUAPP if BOARD_BL54L15_DVK_NRF54L10_CPUAPP || BOARD_BL54L15_DVK_NRF54L10_CPUAPP_NS
7+
select SOC_NRF54L15_CPUAPP if BOARD_BL54L15_DVK_NRF54L15_CPUAPP || BOARD_BL54L15_DVK_NRF54L15_CPUAPP_NS
8+
select SOC_NRF54L15_CPUFLPR if BOARD_BL54L15_DVK_NRF54L15_CPUFLPR || \
9+
BOARD_BL54L15_DVK_NRF54L15_CPUFLPR_XIP
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Copyright (c) 2024 Nordic Semiconductor ASA
2+
# Copyright (c) 2025 Ezurio LLC
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# Workaround for not being able to have commas in macro arguments
6+
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition
7+
DT_CHOSEN_Z_SRAM_PARTITION := zephyr,sram-secure-partition
8+
9+
if BOARD_BL54L15_DVK_NRF54L10_CPUAPP || BOARD_BL54L15_DVK_NRF54L15_CPUAPP
10+
11+
config ROM_START_OFFSET
12+
default 0x800 if BOOTLOADER_MCUBOOT
13+
14+
endif # BOARD_BL54L15_DVK_NRF54L10_CPUAPP || BOARD_BL54L15_DVK_NRF54L15_CPUAPP
15+
16+
if BOARD_BL54L15_DVK_NRF54L10_CPUAPP_NS || BOARD_BL54L15_DVK_NRF54L15_CPUAPP_NS
17+
18+
config BT_CTLR
19+
default BT
20+
21+
config FLASH_LOAD_OFFSET
22+
default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION))
23+
24+
config FLASH_LOAD_SIZE
25+
default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION))
26+
27+
# By default, if we build for a Non-Secure version of the board,
28+
# enable building with TF-M as the Secure Execution Environment.
29+
config BUILD_WITH_TFM
30+
default y
31+
32+
endif # BOARD_BL54L15_DVK_NRF54L10_CPUAPP_NS || BOARD_BL54L15_DVK_NRF54L15_CPUAPP_NS
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/*
2+
* Copyright (c) 2024 Nordic Semiconductor ASA
3+
* Copyright (c) 2025 Ezurio LLC
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
#include "bl54l15_dvk_nrf54l_10_15-pinctrl.dtsi"
9+
10+
/ {
11+
leds {
12+
compatible = "gpio-leds";
13+
14+
led0: led_0 {
15+
gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
16+
label = "Green LED 0";
17+
};
18+
19+
led1: led_1 {
20+
gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
21+
label = "Green LED 1";
22+
};
23+
24+
led2: led_2 {
25+
gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
26+
label = "Green LED 2";
27+
};
28+
29+
led3: led_3 {
30+
gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
31+
label = "Green LED 3";
32+
};
33+
};
34+
35+
pwmleds {
36+
compatible = "pwm-leds";
37+
38+
/*
39+
* PWM signal can be exposed on GPIO pin only within same domain.
40+
* There is only one domain which contains both PWM and GPIO:
41+
* PWM20/21/22 and GPIO Port P1.
42+
* Only LEDs connected to P1 can work with PWM, for example LED1.
43+
*/
44+
pwm_led1: pwm_led_1 {
45+
pwms = <&pwm20 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
46+
};
47+
};
48+
49+
buttons {
50+
compatible = "gpio-keys";
51+
52+
button0: button_0 {
53+
gpios = <&gpio1 13 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
54+
label = "Push button 0";
55+
zephyr,code = <INPUT_KEY_0>;
56+
};
57+
58+
button1: button_1 {
59+
gpios = <&gpio1 9 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
60+
label = "Push button 1";
61+
zephyr,code = <INPUT_KEY_1>;
62+
};
63+
64+
button2: button_2 {
65+
gpios = <&gpio1 8 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
66+
label = "Push button 2";
67+
zephyr,code = <INPUT_KEY_2>;
68+
};
69+
70+
button3: button_3 {
71+
gpios = <&gpio0 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
72+
label = "Push button 3";
73+
zephyr,code = <INPUT_KEY_3>;
74+
};
75+
};
76+
77+
aliases {
78+
led0 = &led0;
79+
led1 = &led1;
80+
led2 = &led2;
81+
led3 = &led3;
82+
pwm-led0 = &pwm_led1;
83+
sw0 = &button0;
84+
sw1 = &button1;
85+
sw2 = &button2;
86+
sw3 = &button3;
87+
watchdog0 = &wdt31;
88+
};
89+
};
90+
91+
&uart20 {
92+
current-speed = <115200>;
93+
pinctrl-0 = <&uart20_default>;
94+
pinctrl-1 = <&uart20_sleep>;
95+
pinctrl-names = "default", "sleep";
96+
};
97+
98+
&uart30 {
99+
current-speed = <115200>;
100+
pinctrl-0 = <&uart30_default>;
101+
pinctrl-1 = <&uart30_sleep>;
102+
pinctrl-names = "default", "sleep";
103+
};
104+
105+
&pwm20 {
106+
status = "okay";
107+
pinctrl-0 = <&pwm20_default>;
108+
pinctrl-1 = <&pwm20_sleep>;
109+
pinctrl-names = "default", "sleep";
110+
};
111+
112+
/* Get a node label for wi-fi spi to use in shield files */
113+
wifi_spi: &spi22 {};
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*
2+
* Copyright (c) 2024 Nordic Semiconductor ASA
3+
* Copyright (c) 2025 Ezurio LLC
4+
*
5+
* SPDX-License-Identifier: Apache-2.0
6+
*/
7+
8+
/dts-v1/;
9+
10+
#include <nordic/nrf54l10_cpuapp.dtsi>
11+
#include "nrf54l_10_15_cpuapp_common.dtsi"
12+
13+
/ {
14+
compatible = "ezurio,bl54l15_dvk_nrf54l10-cpuapp";
15+
model = "Ezurio BL54L15 DVK nRF54L10 Application MCU";
16+
17+
chosen {
18+
zephyr,code-partition = &slot0_partition;
19+
zephyr,sram = &cpuapp_sram;
20+
};
21+
};
22+
23+
/* FLPR not supported yet, give all SRAM and RRAM to the APP core */
24+
&cpuapp_sram {
25+
reg = <0x20000000 DT_SIZE_K(192)>;
26+
ranges = <0x0 0x20000000 DT_SIZE_K(192)>;
27+
};
28+
29+
&cpuapp_rram {
30+
reg = <0x0 DT_SIZE_K(1022)>;
31+
};
32+
33+
/* These partition sizes assume no FLPR area in RRAM */
34+
&cpuapp_rram {
35+
partitions {
36+
compatible = "fixed-partitions";
37+
#address-cells = <1>;
38+
#size-cells = <1>;
39+
40+
boot_partition: partition@0 {
41+
label = "mcuboot";
42+
reg = <0x0 DT_SIZE_K(64)>;
43+
};
44+
45+
slot0_partition: partition@10000 {
46+
label = "image-0";
47+
reg = <0x10000 DT_SIZE_K(224)>;
48+
};
49+
50+
slot0_ns_partition: partition@48000 {
51+
label = "image-0-nonsecure";
52+
reg = <0x48000 DT_SIZE_K(224)>;
53+
};
54+
55+
slot1_partition: partition@80000 {
56+
label = "image-1";
57+
reg = <0x80000 DT_SIZE_K(224)>;
58+
};
59+
60+
slot1_ns_partition: partition@b8000 {
61+
label = "image-1-nonsecure";
62+
reg = <0xb8000 DT_SIZE_K(224)>;
63+
};
64+
65+
/* 32K from 0xf0000 to 0xf7fff reserved for TF-M partitions */
66+
67+
storage_partition: partition@f8000 {
68+
label = "storage";
69+
reg = <0xf8000 DT_SIZE_K(28)>;
70+
};
71+
72+
/* 2K from 0xff000 to 0xff7ff unused */
73+
};
74+
};
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Copyright (c) 2024 Nordic Semiconductor ASA
2+
# Copyright (c) 2025 Ezurio LLC
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
identifier: bl54l15_dvk/nrf54l10/cpuapp
6+
name: BL54L15-DVK-nRF54L10-Application
7+
type: mcu
8+
arch: arm
9+
toolchain:
10+
- gnuarmemb
11+
- zephyr
12+
sysbuild: true
13+
ram: 192
14+
flash: 230
15+
supported:
16+
- adc
17+
- counter
18+
- gpio
19+
- i2c
20+
- pwm
21+
- retained_mem
22+
- spi
23+
- watchdog
24+
- i2s
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright (c) 2024 Nordic Semiconductor ASA
2+
# Copyright (c) 2025 Ezurio LLC
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# Enable UART driver
6+
CONFIG_SERIAL=y
7+
8+
# Enable console
9+
CONFIG_CONSOLE=y
10+
CONFIG_UART_CONSOLE=y
11+
12+
# Enable GPIO
13+
CONFIG_GPIO=y
14+
15+
# Enable MPU
16+
CONFIG_ARM_MPU=y
17+
18+
# Enable hardware stack protection
19+
CONFIG_HW_STACK_PROTECTION=y

0 commit comments

Comments
 (0)