-
Notifications
You must be signed in to change notification settings - Fork 8k
boards: nordic: Add initial support for nRF54LM20A/ns #95743
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
degjorva
wants to merge
2
commits into
zephyrproject-rtos:main
Choose a base branch
from
degjorva:lm20-ns-target
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+363
−44
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Copyright (c) 2025 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
DT_NRF_MPC := $(dt_nodelabel_path,nrf_mpc) | ||
|
||
if BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP_NS | ||
|
||
config NRF_TRUSTZONE_FLASH_REGION_SIZE | ||
hex | ||
default $(dt_node_int_prop_hex,$(DT_NRF_MPC),override-granularity) | ||
help | ||
This defines the flash region size from the TrustZone perspective. | ||
It is used when configuring the TrustZone and when setting alignments | ||
requirements for the partitions. | ||
This abstraction allows us to configure TrustZone without depending | ||
on peripheral-specific symbols. | ||
|
||
config NRF_TRUSTZONE_RAM_REGION_SIZE | ||
hex | ||
default $(dt_node_int_prop_hex,$(DT_NRF_MPC),override-granularity) | ||
help | ||
This defines the RAM region size from the TrustZone perspective. | ||
It is used when configuring the TrustZone and when setting alignments | ||
requirements for the partitions. | ||
This abstraction allows us to configure TrustZone without depending | ||
on peripheral specific symbols. | ||
|
||
endif # BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP_NS |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
62 changes: 62 additions & 0 deletions
62
boards/nordic/nrf54lm20dk/nrf54lm20dk_nrf54lm20a_cpuapp_ns.dts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
/* | ||
* Copyright (c) 2025 Nordic Semiconductor ASA | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
/dts-v1/; | ||
|
||
#define USE_NON_SECURE_ADDRESS_MAP 1 | ||
|
||
#include "nrf54lm20a_cpuapp_common.dtsi" | ||
|
||
/ { | ||
compatible = "nordic,nrf54lm20dk_nrf54lm20a-cpuapp-ns"; | ||
model = "Nordic nRF54LM20 DK nRF54LM20A Application MCU Non-Secure"; | ||
|
||
chosen { | ||
zephyr,code-partition = &slot0_ns_partition; | ||
zephyr,sram = &sram0_ns; | ||
zephyr,entropy = &psa_rng; | ||
}; | ||
|
||
psa_rng: psa-rng { | ||
status = "okay"; | ||
}; | ||
}; | ||
|
||
/ { | ||
/* | ||
* Default SRAM planning when building for nRF54LM20A with ARM TrustZone-M support | ||
* - Lowest 208 kB SRAM allocated to Secure image (sram0_s). | ||
* - Upper 208 kB SRAM allocated to Non-Secure image (sram0_ns). | ||
tomi-font marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* | ||
* nRF54LM20A has 512 kB of volatile memory (SRAM), but 96kB is allocated for the FLPR MCU. | ||
* This static layout needs to be the same with the upstream TF-M layout in the | ||
* header flash_layout.h of the relevant platform. Any updates in the layout | ||
* needs to happen both in the flash_layout.h and in this file at the same time. | ||
*/ | ||
reserved-memory { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
ranges; | ||
|
||
sram0_s: image_s@20000000 { | ||
/* Secure image memory */ | ||
reg = <0x20000000 DT_SIZE_K(208)>; | ||
}; | ||
|
||
sram0_ns: image_ns@20034000 { | ||
/* Non-Secure image memory */ | ||
reg = <0x20034000 DT_SIZE_K(208)>; | ||
}; | ||
}; | ||
}; | ||
|
||
&uart30 { | ||
/* Disable so that TF-M can use this UART */ | ||
status = "disabled"; | ||
}; | ||
|
||
/* Include default memory partition configuration file */ | ||
#include <nordic/nrf54lm20a_ns_partition.dtsi> |
22 changes: 22 additions & 0 deletions
22
boards/nordic/nrf54lm20dk/nrf54lm20dk_nrf54lm20a_cpuapp_ns.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
identifier: nrf54lm20dk/nrf54lm20a/cpuapp/ns | ||
name: nRF54lm20-DK-nRF54lm20a-Application-Non-Secure | ||
type: mcu | ||
arch: arm | ||
toolchain: | ||
- gnuarmemb | ||
- zephyr | ||
ram: 208 | ||
flash: 1356 | ||
supported: | ||
- adc | ||
- counter | ||
- dmic | ||
- gpio | ||
- i2c | ||
- i2s | ||
- pwm | ||
- spi | ||
- usbd | ||
- watchdog | ||
vendor: nordic | ||
sysbuild: true |
42 changes: 42 additions & 0 deletions
42
boards/nordic/nrf54lm20dk/nrf54lm20dk_nrf54lm20a_cpuapp_ns_defconfig
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Copyright (c) 2025 Nordic Semiconductor ASA | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
# Enable MPU | ||
CONFIG_ARM_MPU=y | ||
CONFIG_NULL_POINTER_EXCEPTION_DETECTION_NONE=y | ||
|
||
# Enable TrustZone-M | ||
CONFIG_ARM_TRUSTZONE_M=y | ||
|
||
# This Board implies building Non-Secure firmware | ||
CONFIG_TRUSTED_EXECUTION_NONSECURE=y | ||
|
||
# Enable UART driver | ||
CONFIG_SERIAL=y | ||
|
||
# Enable console | ||
CONFIG_CONSOLE=y | ||
CONFIG_UART_CONSOLE=y | ||
|
||
# Enable GPIO | ||
CONFIG_GPIO=y | ||
|
||
# Don't enable the cache in the non-secure image as it is a | ||
# secure-only peripheral on 54l | ||
CONFIG_CACHE_MANAGEMENT=n | ||
CONFIG_EXTERNAL_CACHE=n | ||
|
||
# Start SYSCOUNTER on driver init | ||
CONFIG_NRF_GRTC_START_SYSCOUNTER=y | ||
|
||
# Disable TFM BL2 since it is not supported | ||
CONFIG_TFM_BL2=n | ||
# Support for silence logging is not supported at the moment | ||
# Tracked by: NCSDK-31930 | ||
CONFIG_TFM_LOG_LEVEL_SILENCE=n | ||
|
||
# The oscillators are configured as secure and cannot be configured | ||
# from the non secure application directly. This needs to be set | ||
# otherwise nrfx will try to configure them, resulting in a bus | ||
# fault. | ||
CONFIG_SOC_NRF54LX_SKIP_CLOCK_CONFIG=y |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.