Skip to content

Commit 4fcb4f5

Browse files
committed
boards: sercomm: Add board configuration for TPM530M EVK
Added board configuration for TPM530M EVK. Signed-off-by: Tommi Kangas <[email protected]>
1 parent 8c08c5a commit 4fcb4f5

16 files changed

+514
-0
lines changed

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
/boards/nordic/nrf54l*/ @nrfconnect/ncs-co-boards @kl-cruz
5555
/boards/nordic/nrf52* @nrfconnect/ncs-co-boards @nrfconnect/ncs-si-bluebagel
5656
/boards/nordic/thingy91*/ @nrfconnect/ncs-co-boards @nrfconnect/ncs-cia
57+
/boards/sercomm/ @nrfconnect/ncs-co-boards @tokangas
5758

5859
**/shields/ @nrfconnect/ncs-co-build-system
5960

boards/sercomm/index.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
.. _boards-sercomm:
2+
3+
Sercomm
4+
#######
5+
6+
.. toctree::
7+
:maxdepth: 1
8+
:glob:
9+
10+
**/*
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# TPM530M EVK TPM530M board configuration
2+
3+
# Copyright (c) 2025 Nordic Semiconductor ASA
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
6+
config HW_STACK_PROTECTION
7+
default ARCH_HAS_STACK_PROTECTION
8+
9+
if BOARD_TPM530MEVK_TPM530M || BOARD_TPM530MEVK_TPM530M_NS
10+
11+
config BOARD_TPM530MEVK
12+
select USE_DT_CODE_PARTITION if BOARD_TPM530MEVK_TPM530M_NS
13+
14+
endif # BOARD_TPM530MEVK_TPM530M || BOARD_TPM530MEVK_TPM530M_NS
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# TPM530M EVK TPM530M board configuration
2+
3+
# Copyright (c) 2025 Nordic Semiconductor ASA
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
6+
config BOARD_TPM530MEVK
7+
select SOC_TPM530M

boards/sercomm/tpm530mevk/board.cmake

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
2+
3+
if(CONFIG_BOARD_TPM530MEVK_TPM530M_NS)
4+
set(TFM_PUBLIC_KEY_FORMAT "full")
5+
endif()
6+
7+
if(CONFIG_TFM_FLASH_MERGED_BINARY)
8+
set_property(TARGET runners_yaml_props_target PROPERTY hex_file tfm_merged.hex)
9+
endif()
10+
11+
board_runner_args(jlink "--device=nRF9151_xxCA" "--speed=4000")
12+
include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
13+
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
14+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

boards/sercomm/tpm530mevk/board.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
board:
2+
name: tpm530mevk
3+
full_name: TPM530M EVK
4+
vendor: sercomm
5+
socs:
6+
- name: tpm530m
7+
variants:
8+
- name: ns
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
.. zephyr:board:: tpm530mevk
2+
3+
Overview
4+
********
5+
6+
The TPM530M EVK is a single-board development kit for evaluation and
7+
development on the TPM530M module for LTE-M/NB-IoT with GNSS. The ``tpm530mevk/tpm530m``
8+
board configuration provides support for the Nordic Semiconductor nRF9120 ARM
9+
Cortex-M33F CPU with ARMv8-M Security Extension and the following devices:
10+
11+
* :abbr:`ADC (Analog to Digital Converter)`
12+
* CLOCK
13+
* FLASH
14+
* :abbr:`GPIO (General Purpose Input Output)`
15+
* :abbr:`I2C (Inter-Integrated Circuit)`
16+
* :abbr:`MPU (Memory Protection Unit)`
17+
* :abbr:`NVIC (Nested Vectored Interrupt Controller)`
18+
* :abbr:`PWM (Pulse Width Modulation)`
19+
* :abbr:`RTC (nRF RTC System Clock)`
20+
* Segger RTT (RTT Console)
21+
* :abbr:`SPI (Serial Peripheral Interface)`
22+
* :abbr:`UARTE (Universal asynchronous receiver-transmitter with EasyDMA)`
23+
* :abbr:`WDT (Watchdog Timer)`
24+
* :abbr:`IDAU (Implementation Defined Attribution Unit)`
25+
26+
Hardware
27+
********
28+
29+
TPM530M EVK has two external oscillators. The frequency of
30+
the slow clock is 32.768 kHz. The frequency of the main clock
31+
is 32 MHz.
32+
33+
Supported Features
34+
==================
35+
36+
.. zephyr:board-supported-hw::
37+
38+
Connections and IOs
39+
===================
40+
41+
LED
42+
---
43+
44+
* D8 PWR (green) = power
45+
* D9 MODULE (green) = P0.31
46+
* D10 RF (green) = COEX2
47+
48+
Push buttons and Switches
49+
-------------------------
50+
51+
* SW1 RESET = reset
52+
* SW2 WAKE UP = P0.12
53+
54+
Security components
55+
===================
56+
57+
- Implementation Defined Attribution Unit (`IDAU`_). The IDAU is implemented
58+
with the System Protection Unit and is used to define secure and non-secure
59+
memory maps. By default, all of the memory space (Flash, SRAM, and
60+
peripheral address space) is defined to be secure accessible only.
61+
- Secure boot.
62+
63+
Programming and Debugging
64+
*************************
65+
66+
.. zephyr:board-supported-runners::
67+
68+
``tpm530mevk/tpm530m`` supports the Armv8m Security Extension, and by default boots
69+
in the Secure state.
70+
71+
Building Secure/Non-Secure Zephyr applications with Arm |reg| TrustZone |reg|
72+
=============================================================================
73+
74+
The process requires the following steps:
75+
76+
1. Build the Secure Zephyr application using ``-DBOARD=tpm530mevk/tpm530m`` and
77+
``CONFIG_TRUSTED_EXECUTION_SECURE=y`` in the application project configuration file.
78+
2. Build the Non-Secure Zephyr application using ``-DBOARD=tpm530mevk/tpm530m/ns``.
79+
3. Merge the two binaries together.
80+
81+
When building a Secure/Non-Secure application, the Secure application will
82+
have to set the IDAU (SPU) configuration to allow Non-Secure access to all
83+
CPU resources utilized by the Non-Secure application firmware. SPU
84+
configuration shall take place before jumping to the Non-Secure application.
85+
86+
Building a Secure only application
87+
==================================
88+
89+
Build the Zephyr app in the usual way (see :ref:`build_an_application`
90+
and :ref:`application_run`), using ``-DBOARD=tpm530mevk/tpm530m``.
91+
92+
Flashing
93+
========
94+
95+
Flashing the board requires an external J-Link debug probe. The probe is
96+
attached to the JP17 SWD header.
97+
98+
Follow the instructions in the :ref:`nordic_segger` page to install
99+
and configure all the necessary software. Further information can be
100+
found in :ref:`nordic_segger_flashing`. Then build and flash
101+
applications as usual (see :ref:`build_an_application` and
102+
:ref:`application_run` for more details).
103+
104+
Here is an example for the :zephyr:code-sample:`hello_world` application.
105+
106+
First, run your favorite terminal program to listen for output.
107+
108+
.. code-block:: console
109+
110+
$ minicom -D <tty_device> -b 115200
111+
112+
Replace :code:`<tty_device>` with the port where the TPM530M EVK
113+
can be found. For example, under Linux, :code:`/dev/ttyACM0`.
114+
115+
Then build and flash the application in the usual way.
116+
117+
.. zephyr-app-commands::
118+
:zephyr-app: samples/hello_world
119+
:board: tpm530mevk/tpm530m
120+
:goals: build flash
121+
122+
Debugging
123+
=========
124+
125+
The board does not have an on-board Segger IC, however, instructions from the
126+
:ref:`nordic_segger` page also apply to this board, with the additional step
127+
of connecting an external J-Link debug probe.
128+
129+
References
130+
**********
131+
132+
.. target-notes::
133+
134+
.. _IDAU:
135+
https://developer.arm.com/docs/100690/latest/attribution-units-sau-and-idau
136+
.. _Trusted Firmware M: https://www.trustedfirmware.org/projects/tf-m/
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Copyright (c) 2025 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
3+
4+
# Suppress "unique_unit_address_if_enabled" to handle the following overlaps:
5+
# - flash-controller@39000 & kmu@39000
6+
# - power@5000 & clock@5000
7+
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
*
4+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
*/
6+
7+
/dts-v1/;
8+
#include <sercomm/tpm530m.dtsi>
9+
#include "tpm530mevk_tpm530m_common.dtsi"
10+
11+
/ {
12+
chosen {
13+
zephyr,sram = &sram0_s;
14+
zephyr,flash = &flash0;
15+
zephyr,code-partition = &slot0_partition;
16+
zephyr,sram-secure-partition = &sram0_s;
17+
zephyr,sram-non-secure-partition = &sram0_ns;
18+
};
19+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
identifier: tpm530mevk/tpm530m
2+
name: TPM530M-EVK-TPM530M
3+
type: mcu
4+
arch: arm
5+
toolchain:
6+
- gnuarmemb
7+
- zephyr
8+
ram: 88
9+
flash: 1024
10+
supported:
11+
- gpio
12+
- i2c
13+
- pwm
14+
- spi
15+
- watchdog
16+
- counter
17+
vendor: sercomm

0 commit comments

Comments
 (0)