Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
/boards/nordic/nrf54l*/ @nrfconnect/ncs-co-boards @kl-cruz
/boards/nordic/nrf52* @nrfconnect/ncs-co-boards @nrfconnect/ncs-si-bluebagel
/boards/nordic/thingy91*/ @nrfconnect/ncs-co-boards @nrfconnect/ncs-cia
/boards/sercomm/ @nrfconnect/ncs-co-boards @tokangas

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

Expand Down Expand Up @@ -748,6 +749,7 @@
# SoC
/soc/nordic/ @nrfconnect/ncs-code-owners
/soc/nordic/nrf71/ @nrfconnect/ncs-code-owners @rob-robinson-14 @Hi-Im-David
/soc/sercomm/ @nrfconnect/ncs-code-owners @tokangas

# These snippet entries must be below other snippet entries (excluding doc), do not move
/snippets/ @nrfconnect/ncs-co-build-system
Expand Down
14 changes: 14 additions & 0 deletions boards/sercomm/tpm530mevk/Kconfig.defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# TPM530M EVK TPM530M board configuration

# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

config HW_STACK_PROTECTION
default ARCH_HAS_STACK_PROTECTION

if BOARD_TPM530MEVK_TPM530M || BOARD_TPM530MEVK_TPM530M_NS

config BOARD_TPM530MEVK
select USE_DT_CODE_PARTITION if BOARD_TPM530MEVK_TPM530M_NS

endif # BOARD_TPM530MEVK_TPM530M || BOARD_TPM530MEVK_TPM530M_NS
7 changes: 7 additions & 0 deletions boards/sercomm/tpm530mevk/Kconfig.tpm530mevk
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# TPM530M EVK TPM530M board configuration

# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

config BOARD_TPM530MEVK
select SOC_TPM530M
14 changes: 14 additions & 0 deletions boards/sercomm/tpm530mevk/board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

if(CONFIG_BOARD_TPM530MEVK_TPM530M_NS)
set(TFM_PUBLIC_KEY_FORMAT "full")
endif()

if(CONFIG_TFM_FLASH_MERGED_BINARY)
set_property(TARGET runners_yaml_props_target PROPERTY hex_file tfm_merged.hex)
endif()

board_runner_args(jlink "--device=nRF9151_xxCA" "--speed=4000")
include(${ZEPHYR_BASE}/boards/common/nrfutil.board.cmake)
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
8 changes: 8 additions & 0 deletions boards/sercomm/tpm530mevk/board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
board:
name: tpm530mevk
full_name: TPM530M EVK
vendor: sercomm
socs:
- name: tpm530m
variants:
- name: ns
7 changes: 7 additions & 0 deletions boards/sercomm/tpm530mevk/pre_dt_board.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Copyright (c) 2025 Nordic Semiconductor ASA
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

# Suppress "unique_unit_address_if_enabled" to handle the following overlaps:
# - flash-controller@39000 & kmu@39000
# - power@5000 & clock@5000
list(APPEND EXTRA_DTC_FLAGS "-Wno-unique_unit_address_if_enabled")
19 changes: 19 additions & 0 deletions boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright (c) 2025 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

/dts-v1/;
#include <sercomm/tpm530m.dtsi>
#include "tpm530mevk_tpm530m_common.dtsi"

/ {
chosen {
zephyr,sram = &sram0_s;
zephyr,flash = &flash0;
zephyr,code-partition = &slot0_partition;
zephyr,sram-secure-partition = &sram0_s;
zephyr,sram-non-secure-partition = &sram0_ns;
};
};
17 changes: 17 additions & 0 deletions boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
identifier: tpm530mevk/tpm530m
name: TPM530M-EVK-TPM530M
type: mcu
arch: arm
toolchain:
- gnuarmemb
- zephyr
ram: 88
flash: 1024
supported:
- gpio
- i2c
- pwm
- spi
- watchdog
- counter
vendor: sercomm
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
/*
* Copyright (c) 2025 Nordic Semiconductor ASA
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

&pinctrl {
uart0_default: uart0_default {
group1 {
psels = <NRF_PSEL(UART_TX, 0, 4)>,
<NRF_PSEL(UART_RTS, 0, 7)>;
};
group2 {
psels = <NRF_PSEL(UART_RX, 0, 5)>,
<NRF_PSEL(UART_CTS, 0, 6)>;
bias-pull-up;
};
};

uart0_sleep: uart0_sleep {
group1 {
psels = <NRF_PSEL(UART_TX, 0, 4)>,
<NRF_PSEL(UART_RX, 0, 5)>,
<NRF_PSEL(UART_RTS, 0, 7)>,
<NRF_PSEL(UART_CTS, 0, 6)>;
low-power-enable;
};
};

uart1_default: uart1_default {
group1 {
psels = <NRF_PSEL(UART_TX, 0, 8)>,
<NRF_PSEL(UART_RTS, 0, 9)>;
};
group2 {
psels = <NRF_PSEL(UART_RX, 0, 10)>,
<NRF_PSEL(UART_CTS, 0, 11)>;
bias-pull-up;
};
};

uart1_sleep: uart1_sleep {
group1 {
psels = <NRF_PSEL(UART_TX, 0, 8)>,
<NRF_PSEL(UART_RX, 0, 10)>,
<NRF_PSEL(UART_RTS, 0, 9)>,
<NRF_PSEL(UART_CTS, 0, 11)>;
low-power-enable;
};
};

i2c2_default: i2c2_default {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 26)>,
<NRF_PSEL(TWIM_SCL, 0, 27)>;
};
};

i2c2_sleep: i2c2_sleep {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 26)>,
<NRF_PSEL(TWIM_SCL, 0, 27)>;
low-power-enable;
};
};

spi3_default: spi3_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 3)>,
<NRF_PSEL(SPIM_MISO, 0, 1)>,
<NRF_PSEL(SPIM_MOSI, 0, 2)>;
};
};

spi3_sleep: spi3_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 3)>,
<NRF_PSEL(SPIM_MISO, 0, 1)>,
<NRF_PSEL(SPIM_MOSI, 0, 2)>;
low-power-enable;
};
};

pwm0_default: pwm0_default {
group1 {
psels = <NRF_PSEL(PWM_OUT0, 0, 31)>;
};
};

pwm0_sleep: pwm0_sleep {
group1 {
psels = <NRF_PSEL(PWM_OUT0, 0, 31)>;
low-power-enable;
};
};
};
108 changes: 108 additions & 0 deletions boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_common.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
/*
* Copyright (c) 2025 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/
#include "tpm530mevk_tpm530m_common-pinctrl.dtsi"
#include <zephyr/dt-bindings/input/input-event-codes.h>

/ {
model = "Sercomm TPM530M EVK TPM530M";
compatible = "sercomm,tpm530m-evk-tpm530m";

chosen {
zephyr,console = &uart0;
zephyr,shell-uart = &uart0;
zephyr,uart-mcumgr = &uart0;
};

leds {
compatible = "gpio-leds";
module_led: module_led {
gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
};
};

pwmleds {
compatible = "pwm-leds";
pwm_module_led: pwm_module_led {
pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
};
};

buttons {
compatible = "gpio-keys";
wake_up_button: wake_up_button {
gpios = <&gpio0 12 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
zephyr,code = <INPUT_KEY_0>;
};
};

/* These aliases are provided for compatibility with samples */
aliases {
led0 = &module_led;
pwm-led0 = &pwm_module_led;
sw0 = &wake_up_button;
bootloader-led0 = &module_led;
mcuboot-button0 = &wake_up_button;
mcuboot-led0 = &module_led;
watchdog0 = &wdt0;
};
};

&adc {
status = "okay";
};

&gpiote {
status = "okay";
};

&gpio0 {
status = "okay";
};

&uart0 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart0_default>;
pinctrl-1 = <&uart0_sleep>;
pinctrl-names = "default", "sleep";
};

&uart1 {
status = "okay";
current-speed = <115200>;
pinctrl-0 = <&uart1_default>;
pinctrl-1 = <&uart1_sleep>;
pinctrl-names = "default", "sleep";
};

&i2c2 {
compatible = "nordic,nrf-twim";
status = "disabled";
pinctrl-0 = <&i2c2_default>;
pinctrl-1 = <&i2c2_sleep>;
pinctrl-names = "default", "sleep";
clock-frequency = <I2C_BITRATE_FAST>;
};

&spi3 {
compatible = "nordic,nrf-spim";
status = "disabled";
pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>;
wake-gpios = <&gpio0 0 GPIO_PULL_UP>;
pinctrl-names = "default", "sleep";

};

&pwm0 {
status = "okay";
pinctrl-0 = <&pwm0_default>;
pinctrl-1 = <&pwm0_sleep>;
pinctrl-names = "default", "sleep";
};

/* Include default memory partition configuration file */
#include <nordic/nrf91xx_partition.dtsi>
20 changes: 20 additions & 0 deletions boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

# Enable MPU
CONFIG_ARM_MPU=y

# Enable hardware stack protection
CONFIG_HW_STACK_PROTECTION=y

# Enable TrustZone-M
CONFIG_ARM_TRUSTZONE_M=y

# Enable GPIO
CONFIG_GPIO=y

# Enable UART driver
CONFIG_SERIAL=y

# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
22 changes: 22 additions & 0 deletions boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.dts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/*
* Copyright (c) 2025 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
*/

/dts-v1/;
#include <sercomm/tpm530mns.dtsi>
#include "tpm530mevk_tpm530m_common.dtsi"

/ {
chosen {
zephyr,flash = &flash0;
zephyr,sram = &sram0_ns;
zephyr,code-partition = &slot0_ns_partition;
};
};

/* Disable UART1, because it is used by default by TF-M */
&uart1 {
status = "disabled";
};
16 changes: 16 additions & 0 deletions boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
identifier: tpm530mevk/tpm530m/ns
name: TPM530M-EVK-TPM530M-Non-Secure
type: mcu
arch: arm
toolchain:
- gnuarmemb
- zephyr
ram: 128
flash: 192
supported:
- i2c
- pwm
- watchdog
- netif:modem
vendor: sercomm
sysbuild: true
20 changes: 20 additions & 0 deletions boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns_defconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause

# Enable MPU
CONFIG_ARM_MPU=y

# Enable TrustZone-M
CONFIG_ARM_TRUSTZONE_M=y

# This board implies building Non-Secure firmware
CONFIG_TRUSTED_EXECUTION_NONSECURE=y

# Enable GPIO
CONFIG_GPIO=y

# Enable UART driver
CONFIG_SERIAL=y

# Enable console
CONFIG_CONSOLE=y
CONFIG_UART_CONSOLE=y
Loading
Loading