diff --git a/CODEOWNERS b/CODEOWNERS index 338121bf2697..764ae5b73339 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -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 @@ -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 diff --git a/boards/nordic/nrf52820dongle/nrf52820dongle_nrf52820_defconfig b/boards/nordic/nrf52820dongle/nrf52820dongle_nrf52820_defconfig index c35fdc20e78a..a995d627eaa3 100644 --- a/boards/nordic/nrf52820dongle/nrf52820dongle_nrf52820_defconfig +++ b/boards/nordic/nrf52820dongle/nrf52820dongle_nrf52820_defconfig @@ -1,8 +1,5 @@ # Enable MPU CONFIG_ARM_MPU=y -# Enable PINCTRL -CONFIG_PINCTRL=y - # enable GPIO CONFIG_GPIO=y diff --git a/boards/nordic/nrf52833dongle/nrf52833dongle_nrf52833_defconfig b/boards/nordic/nrf52833dongle/nrf52833dongle_nrf52833_defconfig index 7d7249944199..a995d627eaa3 100644 --- a/boards/nordic/nrf52833dongle/nrf52833dongle_nrf52833_defconfig +++ b/boards/nordic/nrf52833dongle/nrf52833dongle_nrf52833_defconfig @@ -1,8 +1,5 @@ # Enable MPU CONFIG_ARM_MPU=y -# Enable PINCTRL: -CONFIG_PINCTRL=y - # enable GPIO CONFIG_GPIO=y diff --git a/boards/nordic/nrf52840gmouse/nrf52840gmouse_nrf52840_defconfig b/boards/nordic/nrf52840gmouse/nrf52840gmouse_nrf52840_defconfig index 69e328438fde..c5927f9a21d6 100644 --- a/boards/nordic/nrf52840gmouse/nrf52840gmouse_nrf52840_defconfig +++ b/boards/nordic/nrf52840gmouse/nrf52840gmouse_nrf52840_defconfig @@ -1,4 +1,2 @@ # Enable MPU CONFIG_ARM_MPU=y - -CONFIG_PINCTRL=y diff --git a/boards/nordic/nrf52dmouse/nrf52dmouse_nrf52832_defconfig b/boards/nordic/nrf52dmouse/nrf52dmouse_nrf52832_defconfig index 69e328438fde..c5927f9a21d6 100644 --- a/boards/nordic/nrf52dmouse/nrf52dmouse_nrf52832_defconfig +++ b/boards/nordic/nrf52dmouse/nrf52dmouse_nrf52832_defconfig @@ -1,4 +1,2 @@ # Enable MPU CONFIG_ARM_MPU=y - -CONFIG_PINCTRL=y diff --git a/boards/nordic/nrf52kbd/nrf52kbd_nrf52832_defconfig b/boards/nordic/nrf52kbd/nrf52kbd_nrf52832_defconfig index 69e328438fde..c5927f9a21d6 100644 --- a/boards/nordic/nrf52kbd/nrf52kbd_nrf52832_defconfig +++ b/boards/nordic/nrf52kbd/nrf52kbd_nrf52832_defconfig @@ -1,4 +1,2 @@ # Enable MPU CONFIG_ARM_MPU=y - -CONFIG_PINCTRL=y diff --git a/boards/nordic/thingy91/thingy91_nrf52840_defconfig b/boards/nordic/thingy91/thingy91_nrf52840_defconfig index e123dfe24767..b01b2739f724 100644 --- a/boards/nordic/thingy91/thingy91_nrf52840_defconfig +++ b/boards/nordic/thingy91/thingy91_nrf52840_defconfig @@ -1,10 +1,7 @@ # Enable MPU CONFIG_ARM_MPU=y -# Enable PINCTRL -CONFIG_PINCTRL=y - -# enable uart driver +# enable UART driver CONFIG_SERIAL=y # Enable console diff --git a/boards/nordic/thingy91/thingy91_nrf9160_defconfig b/boards/nordic/thingy91/thingy91_nrf9160_defconfig index 3b7d46a3a753..0d4dc6d921cc 100644 --- a/boards/nordic/thingy91/thingy91_nrf9160_defconfig +++ b/boards/nordic/thingy91/thingy91_nrf9160_defconfig @@ -4,9 +4,6 @@ CONFIG_ARM_MPU=y # Enable TrustZone-M CONFIG_ARM_TRUSTZONE_M=y -# Enable PINCTRL -CONFIG_PINCTRL=y - # Enable GPIO CONFIG_GPIO=y diff --git a/boards/nordic/thingy91/thingy91_nrf9160_ns_defconfig b/boards/nordic/thingy91/thingy91_nrf9160_ns_defconfig index 906dbdbd39d3..f6df6c39f7b2 100644 --- a/boards/nordic/thingy91/thingy91_nrf9160_ns_defconfig +++ b/boards/nordic/thingy91/thingy91_nrf9160_ns_defconfig @@ -7,9 +7,6 @@ CONFIG_ARM_TRUSTZONE_M=y # This Board implies building Non-Secure firmware CONFIG_TRUSTED_EXECUTION_NONSECURE=y -# Enable PINCTRL -CONFIG_PINCTRL=y - # Enable GPIO CONFIG_GPIO=y diff --git a/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_defconfig b/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_defconfig index 0b95b18fac7b..e58bcdbdee60 100644 --- a/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_defconfig +++ b/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_defconfig @@ -13,15 +13,13 @@ CONFIG_ARM_TRUSTZONE_M=y # enable GPIO CONFIG_GPIO=y -# Enable uart driver +# Enable UART driver CONFIG_SERIAL=y # enable console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y -CONFIG_PINCTRL=y - CONFIG_RETENTION=y CONFIG_RETAINED_MEM=y CONFIG_RETAINED_MEM_ZEPHYR_RAM=y diff --git a/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_ns_defconfig b/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_ns_defconfig index 9421eabfdded..d97fc72f91b9 100644 --- a/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_ns_defconfig +++ b/boards/nordic/thingy91x/thingy91x_nrf5340_cpuapp_ns_defconfig @@ -16,15 +16,13 @@ CONFIG_TRUSTED_EXECUTION_NONSECURE=y # enable GPIO CONFIG_GPIO=y -# Enable uart driver +# Enable UART driver CONFIG_SERIAL=y # enable console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y -CONFIG_PINCTRL=y - CONFIG_RETENTION=y CONFIG_RETAINED_MEM=y CONFIG_RETAINED_MEM_ZEPHYR_RAM=y diff --git a/boards/nordic/thingy91x/thingy91x_nrf5340_cpunet_defconfig b/boards/nordic/thingy91x/thingy91x_nrf5340_cpunet_defconfig index 6c518acc8b46..04b0b9ef9ac9 100644 --- a/boards/nordic/thingy91x/thingy91x_nrf5340_cpunet_defconfig +++ b/boards/nordic/thingy91x/thingy91x_nrf5340_cpunet_defconfig @@ -10,11 +10,9 @@ CONFIG_HW_STACK_PROTECTION=y # enable GPIO CONFIG_GPIO=y -# Enable uart driver +# Enable UART driver CONFIG_SERIAL=y # enable console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y - -CONFIG_PINCTRL=y diff --git a/boards/nordic/thingy91x/thingy91x_nrf9151_defconfig b/boards/nordic/thingy91x/thingy91x_nrf9151_defconfig index 21490cc3be3b..d5816ae9c986 100644 --- a/boards/nordic/thingy91x/thingy91x_nrf9151_defconfig +++ b/boards/nordic/thingy91x/thingy91x_nrf9151_defconfig @@ -7,9 +7,6 @@ CONFIG_ARM_MPU=y # Enable TrustZone-M CONFIG_ARM_TRUSTZONE_M=y -# Enable PINCTRL -CONFIG_PINCTRL=y - # Enable GPIO CONFIG_GPIO=y diff --git a/boards/nordic/thingy91x/thingy91x_nrf9151_ns_defconfig b/boards/nordic/thingy91x/thingy91x_nrf9151_ns_defconfig index dd7f3c95ec63..3913a0710c9b 100644 --- a/boards/nordic/thingy91x/thingy91x_nrf9151_ns_defconfig +++ b/boards/nordic/thingy91x/thingy91x_nrf9151_ns_defconfig @@ -10,9 +10,6 @@ CONFIG_ARM_TRUSTZONE_M=y # This Board implies building Non-Secure firmware CONFIG_TRUSTED_EXECUTION_NONSECURE=y -# Enable PINCTRL -CONFIG_PINCTRL=y - # Enable GPIO CONFIG_GPIO=y diff --git a/boards/sercomm/tpm530mevk/Kconfig.defconfig b/boards/sercomm/tpm530mevk/Kconfig.defconfig new file mode 100644 index 000000000000..e618f56a51fe --- /dev/null +++ b/boards/sercomm/tpm530mevk/Kconfig.defconfig @@ -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 diff --git a/boards/sercomm/tpm530mevk/Kconfig.tpm530mevk b/boards/sercomm/tpm530mevk/Kconfig.tpm530mevk new file mode 100644 index 000000000000..90103bffcf53 --- /dev/null +++ b/boards/sercomm/tpm530mevk/Kconfig.tpm530mevk @@ -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 diff --git a/boards/sercomm/tpm530mevk/board.cmake b/boards/sercomm/tpm530mevk/board.cmake new file mode 100644 index 000000000000..ce1460803a7b --- /dev/null +++ b/boards/sercomm/tpm530mevk/board.cmake @@ -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) diff --git a/boards/sercomm/tpm530mevk/board.yml b/boards/sercomm/tpm530mevk/board.yml new file mode 100644 index 000000000000..8b7e67a70d07 --- /dev/null +++ b/boards/sercomm/tpm530mevk/board.yml @@ -0,0 +1,8 @@ +board: + name: tpm530mevk + full_name: TPM530M EVK + vendor: sercomm + socs: + - name: tpm530m + variants: + - name: ns diff --git a/boards/sercomm/tpm530mevk/pre_dt_board.cmake b/boards/sercomm/tpm530mevk/pre_dt_board.cmake new file mode 100644 index 000000000000..4959e498ccfe --- /dev/null +++ b/boards/sercomm/tpm530mevk/pre_dt_board.cmake @@ -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") diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.dts b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.dts new file mode 100644 index 000000000000..6682427730ea --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.dts @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/dts-v1/; +#include +#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; + }; +}; diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.yaml b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.yaml new file mode 100644 index 000000000000..279937499bb0 --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m.yaml @@ -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 diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_common-pinctrl.dtsi b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_common-pinctrl.dtsi new file mode 100644 index 000000000000..27ccaa27ec78 --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_common-pinctrl.dtsi @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +&pinctrl { + uart0_default: uart0_default { + group1 { + psels = , + ; + }; + group2 { + psels = , + ; + bias-pull-up; + }; + }; + + uart0_sleep: uart0_sleep { + group1 { + psels = , + , + , + ; + low-power-enable; + }; + }; + + uart1_default: uart1_default { + group1 { + psels = , + ; + }; + group2 { + psels = , + ; + bias-pull-up; + }; + }; + + uart1_sleep: uart1_sleep { + group1 { + psels = , + , + , + ; + low-power-enable; + }; + }; + + i2c2_default: i2c2_default { + group1 { + psels = , + ; + }; + }; + + i2c2_sleep: i2c2_sleep { + group1 { + psels = , + ; + low-power-enable; + }; + }; + + spi3_default: spi3_default { + group1 { + psels = , + , + ; + }; + }; + + spi3_sleep: spi3_sleep { + group1 { + psels = , + , + ; + low-power-enable; + }; + }; + + pwm0_default: pwm0_default { + group1 { + psels = ; + }; + }; + + pwm0_sleep: pwm0_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; +}; diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_common.dtsi b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_common.dtsi new file mode 100644 index 000000000000..599eadeab9ae --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_common.dtsi @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ +#include "tpm530mevk_tpm530m_common-pinctrl.dtsi" +#include + +/ { + 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 = ; + }; + }; + + /* 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 = ; +}; + +&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 diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_defconfig b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_defconfig new file mode 100644 index 000000000000..976bbc2e49c4 --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_defconfig @@ -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 diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.dts b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.dts new file mode 100644 index 000000000000..4d9867cf58ec --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.dts @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/dts-v1/; +#include +#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"; +}; diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.yaml b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.yaml new file mode 100644 index 000000000000..0146b2ac598b --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns.yaml @@ -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 diff --git a/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns_defconfig b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns_defconfig new file mode 100644 index 000000000000..d53d7b7d5cac --- /dev/null +++ b/boards/sercomm/tpm530mevk/tpm530mevk_tpm530m_ns_defconfig @@ -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 diff --git a/dts/arm/sercomm/tpm530m.dtsi b/dts/arm/sercomm/tpm530m.dtsi new file mode 100644 index 000000000000..7947f52bdff1 --- /dev/null +++ b/dts/arm/sercomm/tpm530m.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include +#include + +&flash0 { + reg = <0x00000000 DT_SIZE_K(1024)>; +}; + +&sram0 { + reg = <0x20000000 DT_SIZE_K(256)>; +}; + +/ { + soc { + compatible = "sercomm,tpm530m", "nordic,nrf9120", + "nordic,nrf91", "simple-bus"; + }; +}; diff --git a/dts/arm/sercomm/tpm530mns.dtsi b/dts/arm/sercomm/tpm530mns.dtsi new file mode 100644 index 000000000000..ee839200ddcb --- /dev/null +++ b/dts/arm/sercomm/tpm530mns.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include +#include + +&flash0 { + reg = <0x00000000 DT_SIZE_K(1024)>; +}; + +&sram0 { + reg = <0x20000000 DT_SIZE_K(256)>; +}; + +/ { + soc { + compatible = "sercomm,tpm530m", "nordic,nrf9120", + "nordic,nrf91", "simple-bus"; + }; +}; diff --git a/dts/bindings/vendor-prefixes.txt b/dts/bindings/vendor-prefixes.txt index 88290084e90a..ce453f3cb213 100644 --- a/dts/bindings/vendor-prefixes.txt +++ b/dts/bindings/vendor-prefixes.txt @@ -1,2 +1,3 @@ -pixart PixArt Imaging Inc. caf Common Application Framework +pixart PixArt Imaging Inc. +sercomm Sercomm Corporation diff --git a/soc/sercomm/nrf91/CMakeLists.txt b/soc/sercomm/nrf91/CMakeLists.txt new file mode 100644 index 000000000000..1ead044c172a --- /dev/null +++ b/soc/sercomm/nrf91/CMakeLists.txt @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + +add_subdirectory(${ZEPHYR_BASE}/soc/nordic soc_family) diff --git a/soc/sercomm/nrf91/Kconfig b/soc/sercomm/nrf91/Kconfig new file mode 100644 index 000000000000..70ca0d657101 --- /dev/null +++ b/soc/sercomm/nrf91/Kconfig @@ -0,0 +1,6 @@ +# Sercomm modules with Nordic Semiconductor nRF91 SoC + +# Copyright (c) 2025 Nordic Semiconductor ASA +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + +source "soc/nordic/Kconfig" diff --git a/soc/sercomm/nrf91/Kconfig.defconfig b/soc/sercomm/nrf91/Kconfig.defconfig new file mode 100644 index 000000000000..a79fc1fa2da7 --- /dev/null +++ b/soc/sercomm/nrf91/Kconfig.defconfig @@ -0,0 +1,12 @@ +# Sercomm modules with Nordic Semiconductor nRF91 SoC + +# Copyright (c) 2025 Nordic Semiconductor ASA +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + +if SOC_SERIES_NRF91X + +rsource "Kconfig.defconfig.tpm530m" + +source "soc/nordic/nrf91/Kconfig.defconfig" + +endif # SOC_SERIES_NRF91X diff --git a/soc/sercomm/nrf91/Kconfig.defconfig.tpm530m b/soc/sercomm/nrf91/Kconfig.defconfig.tpm530m new file mode 100644 index 000000000000..02d4340fbb7f --- /dev/null +++ b/soc/sercomm/nrf91/Kconfig.defconfig.tpm530m @@ -0,0 +1,11 @@ +# Sercomm TPM530M module + +# Copyright (c) 2025 Nordic Semiconductor ASA +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + +if SOC_TPM530M + +config NUM_IRQS + default 65 + +endif # SOC_TPM530M diff --git a/soc/sercomm/nrf91/Kconfig.soc b/soc/sercomm/nrf91/Kconfig.soc new file mode 100644 index 000000000000..6139e935fad5 --- /dev/null +++ b/soc/sercomm/nrf91/Kconfig.soc @@ -0,0 +1,13 @@ +# Sercomm modules with Nordic Semiconductor nRF91 SoC + +# Copyright (c) 2025 Nordic Semiconductor ASA +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + +config SOC_TPM530M + bool + select SOC_NRF9120 + +config SOC + default "tpm530m" if SOC_TPM530M + +source "soc/nordic/nrf91/Kconfig.soc" diff --git a/soc/sercomm/nrf91/soc.yml b/soc/sercomm/nrf91/soc.yml new file mode 100644 index 000000000000..3bad04d23bc6 --- /dev/null +++ b/soc/sercomm/nrf91/soc.yml @@ -0,0 +1,42 @@ +family: + - name: nordic_nrf + series: + - name: nrf91 + socs: + - name: tpm530m + +# Recovery/erase is only needed once per core. Prevent resetting the cores whilst flashing +# multiple images until all images for each core have been flashed, this allows security +# bits to be set during programming without them interfering with additional flashing +# operations. +runners: + run_once: + '--recover': + - runners: + - nrfjprog + - nrfutil + run: first + groups: + - qualifiers: + - tpm530m + - tpm530m/ns + '--erase': + - runners: + - nrfjprog + - jlink + - nrfutil + run: first + groups: + - qualifiers: + - tpm530m + - tpm530m/ns + '--reset': + - runners: + - nrfjprog + - jlink + - nrfutil + run: last + groups: + - qualifiers: + - tpm530m + - tpm530m/ns diff --git a/west.yml b/west.yml index 44fb414d9c78..77110ada70be 100644 --- a/west.yml +++ b/west.yml @@ -65,7 +65,7 @@ manifest: # https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/modules.html - name: zephyr repo-path: sdk-zephyr - revision: 53c344008ebe68f65731494b8085c076417e1b6b + revision: bbd00d356601b6b68509b766ce55e4ba56d7e203 import: # In addition to the zephyr repository itself, NCS also # imports the contents of zephyr/west.yml at the above