Skip to content

Commit b64cd0d

Browse files
pideu-sjkartben
authored andcommitted
boards: panasonic: Update PAN B511 Evaluation Board
The PAN B511 evaluation board is a development tool for the nRF54L15 from Nordic Semiconductor. Updates are based on latest changes for nrf54l15dk. Signed-off-by: Steffen Jahnke <steffen.jahnke@eu.panasonic.com>
1 parent abe18d2 commit b64cd0d

15 files changed

+297
-16
lines changed

boards/panasonic/panb511evb/Kconfig

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Copyright (c) 2025 Panasonic Industrial Devices Europe GmbH
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
# PANB511EVB configuration
5+
6+
if BOARD_PANB511EVB_NRF54L15_CPUAPP_NS
7+
8+
DT_NRF_MPC := $(dt_nodelabel_path,nrf_mpc)
9+
10+
config NRF_TRUSTZONE_FLASH_REGION_SIZE
11+
hex
12+
default $(dt_node_int_prop_hex,$(DT_NRF_MPC),override-granularity)
13+
help
14+
This defines the flash region size from the TrustZone perspective.
15+
It is used when configuring the TrustZone and when setting alignments
16+
requirements for the partitions.
17+
This abstraction allows us to configure TrustZone without depending
18+
on peripheral-specific symbols.
19+
20+
config NRF_TRUSTZONE_RAM_REGION_SIZE
21+
hex
22+
default $(dt_node_int_prop_hex,$(DT_NRF_MPC),override-granularity)
23+
help
24+
This defines the RAM region size from the TrustZone perspective.
25+
It is used when configuring the TrustZone and when setting alignments
26+
requirements for the partitions.
27+
This abstraction allows us to configure TrustZone without depending
28+
on peripheral specific symbols.
29+
30+
endif # BOARD_PANB511EVB_NRF54L15_CPUAPP_NS
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,31 @@
11
# Copyright (c) 2025 Panasonic Industrial Devices Europe GmbH
22
# SPDX-License-Identifier: Apache-2.0
33

4+
# Workaround for not being able to have commas in macro arguments
5+
DT_CHOSEN_Z_CODE_PARTITION := zephyr,code-partition
6+
DT_CHOSEN_Z_SRAM_PARTITION := zephyr,sram-secure-partition
7+
48
if BOARD_PANB511EVB_NRF54L15_CPUAPP
59

610
config ROM_START_OFFSET
711
default 0x800 if BOOTLOADER_MCUBOOT
812

913
endif # BOARD_PANB511EVB_NRF54L15_CPUAPP
14+
15+
if BOARD_PANB511EVB_NRF54L15_CPUAPP_NS
16+
17+
config BT_CTLR
18+
default BT
19+
20+
config FLASH_LOAD_OFFSET
21+
default $(dt_chosen_reg_addr_hex,$(DT_CHOSEN_Z_CODE_PARTITION))
22+
23+
config FLASH_LOAD_SIZE
24+
default $(dt_chosen_reg_size_hex,$(DT_CHOSEN_Z_CODE_PARTITION))
25+
26+
# By default, if we build for a Non-Secure version of the board,
27+
# enable building with TF-M as the Secure Execution Environment.
28+
config BUILD_WITH_TFM
29+
default y
30+
31+
endif # BOARD_PANB511EVB_NRF54L15_CPUAPP_NS

boards/panasonic/panb511evb/Kconfig.panb511evb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
config BOARD_PANB511EVB
5-
select SOC_NRF54L15_CPUAPP if BOARD_PANB511EVB_NRF54L15_CPUAPP
5+
select SOC_NRF54L15_CPUAPP if BOARD_PANB511EVB_NRF54L15_CPUAPP || BOARD_PANB511EVB_NRF54L15_CPUAPP_NS
66
select SOC_NRF54L15_CPUFLPR if BOARD_PANB511EVB_NRF54L15_CPUFLPR || \
77
BOARD_PANB511EVB_NRF54L15_CPUFLPR_XIP

boards/panasonic/panb511evb/board.cmake

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,15 @@
44
if(CONFIG_SOC_NRF54L15_CPUAPP)
55
board_runner_args(jlink "--device=nRF54L15_M33" "--speed=4000")
66
elseif(CONFIG_SOC_NRF54L15_CPUFLPR)
7-
set(JLINKSCRIPTFILE ${CMAKE_CURRENT_LIST_DIR}/support/nrf54l15_cpuflpr.JLinkScript)
8-
board_runner_args(jlink "--device=RISC-V" "--speed=4000" "-if SW" "--tool-opt=-jlinkscriptfile ${JLINKSCRIPTFILE}")
7+
board_runner_args(jlink "--device=nRF54L15_RV32")
8+
endif()
9+
10+
if(CONFIG_BOARD_PANB511EVB_NRF54L15_CPUAPP_NS)
11+
set(TFM_PUBLIC_KEY_FORMAT "full")
12+
endif()
13+
14+
if(CONFIG_TFM_FLASH_MERGED_BINARY)
15+
set_property(TARGET runners_yaml_props_target PROPERTY hex_file tfm_merged.hex)
916
endif()
1017

1118
include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)

boards/panasonic/panb511evb/board.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,42 @@ board:
77
variants:
88
- name: xip
99
cpucluster: cpuflpr
10+
- name: ns
11+
cpucluster: cpuapp
12+
runners:
13+
run_once:
14+
'--recover':
15+
- runners:
16+
- nrfjprog
17+
- nrfutil
18+
run: first
19+
groups:
20+
- boards:
21+
- panb511evb/nrf54l15/cpuapp
22+
- panb511evb/nrf54l15/cpuapp/ns
23+
- panb511evb/nrf54l15/cpuflpr
24+
- panb511evb/nrf54l15/cpuflpr/xip
25+
'--erase':
26+
- runners:
27+
- nrfjprog
28+
- jlink
29+
- nrfutil
30+
run: first
31+
groups:
32+
- boards:
33+
- panb511evb/nrf54l15/cpuapp
34+
- panb511evb/nrf54l15/cpuapp/ns
35+
- panb511evb/nrf54l15/cpuflpr
36+
- panb511evb/nrf54l15/cpuflpr/xip
37+
'--reset':
38+
- runners:
39+
- nrfjprog
40+
- jlink
41+
- nrfutil
42+
run: last
43+
groups:
44+
- boards:
45+
- panb511evb/nrf54l15/cpuapp
46+
- panb511evb/nrf54l15/cpuapp/ns
47+
- panb511evb/nrf54l15/cpuflpr
48+
- panb511evb/nrf54l15/cpuflpr/xip

boards/panasonic/panb511evb/panb511evb_nrf54l15-pinctrl.dtsi

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,24 @@
7575
low-power-enable;
7676
};
7777
};
78+
79+
/*
80+
* Note that P0.04 is the dedicated pin to output the LFCLK
81+
* (32 KHz clock). Add the following line:
82+
* <NRF_PSEL(GRTC_CLKOUT_32K, 0, 4)>
83+
* to the grtc_default and grtc_sleep node.
84+
* Note that this may will affect the uart30 (CTS) functionality.
85+
*/
86+
/omit-if-no-ref/ grtc_default: grtc_default {
87+
group1 {
88+
psels = <NRF_PSEL(GRTC_CLKOUT_FAST, 1, 8)>;
89+
};
90+
};
91+
92+
/omit-if-no-ref/ grtc_sleep: grtc_sleep {
93+
group1 {
94+
psels = <NRF_PSEL(GRTC_CLKOUT_FAST, 1, 8)>;
95+
low-power-enable;
96+
};
97+
};
7898
};

boards/panasonic/panb511evb/panb511evb_nrf54l15_cpuapp.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ flash: 324
1414
supported:
1515
- adc
1616
- counter
17+
- dmic
1718
- gpio
1819
- i2c
1920
- pwm

boards/panasonic/panb511evb/panb511evb_nrf54l15_cpuapp_common.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@
2727

2828
&lfxo {
2929
load-capacitors = "internal";
30-
load-capacitance-femtofarad = <15500>;
30+
load-capacitance-femtofarad = <15000>;
3131
};
3232

3333
&hfxo {
3434
load-capacitors = "internal";
35-
load-capacitance-femtofarad = <15000>;
35+
load-capacitance-femtofarad = <16000>;
3636
};
3737

3838
&regulators {

boards/panasonic/panb511evb/panb511evb_nrf54l15_cpuapp_defconfig

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,3 @@ CONFIG_ARM_MPU=y
1616

1717
# Enable hardware stack protection
1818
CONFIG_HW_STACK_PROTECTION=y
19-
20-
# MPU-based null-pointer dereferencing detection cannot
21-
# be applied as the (0x0 - 0x400) is unmapped for this target.
22-
CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE=y
23-
24-
# Enable Cache
25-
CONFIG_CACHE_MANAGEMENT=y
26-
CONFIG_EXTERNAL_CACHE=y
27-
28-
# Start SYSCOUNTER on driver init
29-
CONFIG_NRF_GRTC_START_SYSCOUNTER=y
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/*
2+
* Copyright (c) 2025 Panasonic Industrial Devices Europe GmbH
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
9+
#define USE_NON_SECURE_ADDRESS_MAP 1
10+
11+
#include <nordic/nrf54l15_cpuapp.dtsi>
12+
#include "panb511evb_nrf54l15_cpuapp_common.dtsi"
13+
14+
/ {
15+
model = "Panasonic PAN B511 EVB nRF54L15 Application MCU";
16+
compatible = "panasonic-industrial-devices-europe-gmbh,panb511evb-cpuapp";
17+
18+
chosen {
19+
zephyr,code-partition = &slot0_ns_partition;
20+
zephyr,sram = &sram0_ns;
21+
zephyr,entropy = &psa_rng;
22+
};
23+
24+
/delete-node/ rng;
25+
26+
psa_rng: psa-rng {
27+
status = "okay";
28+
};
29+
};
30+
31+
/ {
32+
/*
33+
* Default SRAM planning when building for nRF54L15 with ARM TrustZone-M support
34+
* - Lowest 80 kB SRAM allocated to Secure image (sram0_s).
35+
* - Upper 80 kB SRAM allocated to Non-Secure image (sram0_ns).
36+
*
37+
* nRF54L15 has 256 kB of volatile memory (SRAM) but the last 96kB are reserved for
38+
* the FLPR MCU.
39+
* This static layout needs to be the same with the upstream TF-M layout in the
40+
* header flash_layout.h of the relevant platform. Any updates in the layout
41+
* needs to happen both in the flash_layout.h and in this file at the same time.
42+
*/
43+
reserved-memory {
44+
#address-cells = <1>;
45+
#size-cells = <1>;
46+
ranges;
47+
48+
sram0_s: image_s@20000000 {
49+
/* Secure image memory */
50+
reg = <0x20000000 DT_SIZE_K(80)>;
51+
};
52+
53+
sram0_ns: image_ns@20014000 {
54+
/* Non-Secure image memory */
55+
reg = <0x20014000 DT_SIZE_K(80)>;
56+
};
57+
};
58+
};
59+
60+
&cpuapp_rram {
61+
partitions {
62+
compatible = "fixed-partitions";
63+
#address-cells = <1>;
64+
#size-cells = <1>;
65+
66+
/* nRF54L15 has 1524 kB of non volatile memory (RRAM) but the
67+
* last 96kB are reserved for the FLPR MCU.
68+
*
69+
* This static layout needs to be the same with the upstream TF-M layout in the
70+
* header flash_layout.h of the relevant platform. Any updates in the layout
71+
* needs to happen both in the flash_layout.h and in this file at the same time.
72+
*/
73+
slot0_partition: partition@0 {
74+
label = "image-0";
75+
reg = <0x0000000 DT_SIZE_K(512)>;
76+
};
77+
78+
tfm_ps_partition: partition@80000 {
79+
label = "tfm-ps";
80+
reg = <0x00080000 DT_SIZE_K(16)>;
81+
};
82+
83+
tfm_its_partition: partition@84000 {
84+
label = "tfm-its";
85+
reg = <0x00084000 DT_SIZE_K(16)>;
86+
};
87+
88+
tfm_otp_partition: partition@88000 {
89+
label = "tfm-otp";
90+
reg = <0x00088000 DT_SIZE_K(8)>;
91+
};
92+
93+
slot0_ns_partition: partition@8A000 {
94+
label = "image-0-nonsecure";
95+
reg = <0x0008A000 DT_SIZE_K(844)>;
96+
};
97+
98+
storage_partition: partition@15D000 {
99+
label = "storage";
100+
reg = <0x00015D000 DT_SIZE_K(32)>;
101+
};
102+
};
103+
};
104+
105+
&uart20 {
106+
/* Disable so that TF-M can use this UART */
107+
status = "disabled";
108+
109+
current-speed = <115200>;
110+
pinctrl-0 = <&uart20_default>;
111+
pinctrl-1 = <&uart20_sleep>;
112+
pinctrl-names = "default", "sleep";
113+
};

0 commit comments

Comments
 (0)