diff --git a/boards/ti/am243x_evm/Kconfig.am243x_evm b/boards/ti/am243x_evm/Kconfig.am243x_evm new file mode 100644 index 00000000000..66dd507d3a8 --- /dev/null +++ b/boards/ti/am243x_evm/Kconfig.am243x_evm @@ -0,0 +1,9 @@ +# Texas Instruments Sitara AM243x EVM +# +# Copyright (c) 2025 Texas Instruments Incorporated +# +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_AM243X_EVM + select SOC_AM2434_M4 if BOARD_AM243X_EVM_AM2434_M4 + select SOC_AM2434_R5F0_0 if BOARD_AM243X_EVM_AM2434_R5F0_0 diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_m4-pinctrl.dtsi b/boards/ti/am243x_evm/am243x_evm_am2434_m4-pinctrl.dtsi new file mode 100644 index 00000000000..529d6da2c22 --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_m4-pinctrl.dtsi @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Texas Instruments Incorporated + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&mcu_pinctrl { + status = "okay"; + + mcu_uart0_rx: mcu_uart0_rx_default { + pinmux = ; + }; + + mcu_uart0_tx: mcu_uart0_tx_default { + pinmux = ; + }; + + mcu_gpio0_led: mcu_gpio0_led_default { + pinmux = ; + }; +}; diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_m4.dts b/boards/ti/am243x_evm/am243x_evm_am2434_m4.dts new file mode 100644 index 00000000000..16a8045e024 --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_m4.dts @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2025 Texas Instruments Incorporated + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include +#include "am243x_evm_am2434_m4-pinctrl.dtsi" + +/ { + model = "TI AM243x EVM M4F core"; + compatible = "ti,am243x-evm-m4"; + + chosen { + zephyr,sram = &sram0; + zephyr,console = &mcu_uart0; + zephyr,shell-uart = &mcu_uart0; + zephyr,ipc = &ipc0; + zephyr,ipc-shm = &ipc_shm0; + }; + + aliases { + led0 = &ld26; + }; + + cpus { + cpu@0 { + status = "okay"; + clock-frequency = ; + }; + }; + + leds: leds { + compatible = "gpio-leds"; + + ld26: led_0 { + gpios = <&mcu_gpio0 5 GPIO_ACTIVE_HIGH>; + }; + }; + + rsc_table: memory@a4100000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0xa4100000 DT_SIZE_K(4)>; + zephyr,memory-region = "RSC_TABLE"; + }; + + ipc_shm0: memory@a5000000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0xa5000000 DT_SIZE_M(8)>; + zephyr,memory-region = "IPC_SHM"; + }; + + ipc0: ipc { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mbox6 0>, <&mbox6 1>; + mbox-names = "tx", "rx"; + }; +}; + +&mcu_uart0 { + current-speed = <115200>; + pinctrl-0 = <&mcu_uart0_rx &mcu_uart0_tx>; + pinctrl-names = "default"; + status = "okay"; +}; + +&mcu_gpio0 { + pinctrl-0 = <&mcu_gpio0_led>; + pinctrl-names = "default"; + status = "okay"; +}; + +&mbox6 { + usr-id = <3>; + status = "okay"; +}; diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_m4.yaml b/boards/ti/am243x_evm/am243x_evm_am2434_m4.yaml new file mode 100644 index 00000000000..dfa92ab5717 --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_m4.yaml @@ -0,0 +1,12 @@ +# Copyright (c) 2025 Texas Instruments Incorporated +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: am243x_evm/am2434/m4 +name: TI AM243x M4 +type: mcu +arch: arm +toolchain: + - zephyr +ram: 192 +vendor: ti diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_m4_defconfig b/boards/ti/am243x_evm/am243x_evm_am2434_m4_defconfig new file mode 100644 index 00000000000..a7dd44ae00c --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_m4_defconfig @@ -0,0 +1,16 @@ +# Copyright (c) 2025 Texas Instruments Incorporated +# +# SPDX-License-Identifier: Apache-2.0 + +# Platform Configuration +CONFIG_CORTEX_M_SYSTICK=y + +# Zephyr Kernel Configuration +CONFIG_XIP=n + +# Serial Driver +CONFIG_SERIAL=y + +# Enable Console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0-pinctrl.dtsi b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0-pinctrl.dtsi new file mode 100644 index 00000000000..08c5e112da6 --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0-pinctrl.dtsi @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Texas Instruments Incorporated + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +&pinctrl { + status = "okay"; + + uart0_rx: uart0_rx_default { + pinmux = ; + }; + + uart0_tx: uart0_tx_default { + pinmux = ; + }; + + i2c0_scl: i2c0_scl_default { + pinmux = ; + }; + + i2c0_sda: i2c0_sda_default { + pinmux = ; + }; +}; + +&mcu_pinctrl { + status = "okay"; + + mcu_gpio0_led: mcu_gpio0_led_default { + pinmux = ; + }; +}; diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0.dts b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0.dts new file mode 100644 index 00000000000..1d90ede2fbd --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0.dts @@ -0,0 +1,172 @@ +/* Copyright (c) 2025 Texas Instruments Incorporated + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include +#include "am243x_evm_am2434_r5f0_0-pinctrl.dtsi" + +/ { + model = "TI AM243x EVM R5F Cluster 0 Core 0"; + compatible = "ti,am243x-evm-r5f-cluster-0-core-0"; + + chosen { + zephyr,sram = &sram; + zephyr,sram1 = &atcm; + zephyr,console = &uart0; + zephyr,shell-uart = &uart0; + zephyr,ipc = &ipc0; + zephyr,ipc-shm = &ipc_shm0; + }; + + aliases { + led0 = &ld26; + adc0 = &adc0; + }; + + leds: leds { + compatible = "gpio-leds"; + + ld26: led_0 { + gpios = <&mcu_gpio0 5 GPIO_ACTIVE_HIGH>; + }; + }; + + rsc_table: memory@a0100000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0xa0100000 DT_SIZE_K(4)>; + zephyr,memory-region = "RSC_TABLE"; + zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_RAM) )>; + }; + + ipc_shm0: memory@a5000000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0xa5000000 DT_SIZE_M(8)>; + zephyr,memory-region = "IPC_SHM"; + zephyr,memory-attr = <( DT_MEM_ARM(ATTR_MPU_IO) )>; + }; + + ipc0: ipc { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mbox6 0>, <&mbox6 1>; + mbox-names = "rx", "tx"; + }; +}; + +/* system timer */ +&timer8 { + status = "okay"; +}; + +&uart0 { + status = "okay"; + pinctrl-0 = <&uart0_tx &uart0_rx>; + pinctrl-names = "default"; + current-speed = <115200>; +}; + +&mcu_gpio0 { + pinctrl-0 = <&mcu_gpio0_led>; + pinctrl-names = "default"; + status = "okay"; +}; + +&i2c0 { + pinctrl-0 = <&i2c0_scl &i2c0_sda>; + pinctrl-names = "default"; + status = "okay"; +}; + +&adc0 { + ti,vrefp = <1800>; + ti,fifo = <0>; + status = "okay"; + + channel@0 { + reg = <0>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; + + channel@1 { + reg = <1>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; + + channel@2 { + reg = <2>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; + + channel@3 { + reg = <3>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; + + channel@4 { + reg = <4>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; + + channel@5 { + reg = <5>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; + + channel@6 { + reg = <6>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; + + channel@7 { + reg = <7>; + ti,open-delay = <0>; + zephyr,gain = "ADC_GAIN_1"; + zephyr,reference = "ADC_REF_INTERNAL"; + zephyr,acquisition-time = <0>; + zephyr,resolution = <12>; + zephyr,oversampling = <4>; + }; +}; + +&mbox6 { + usr-id = <0>; + status = "okay"; +}; diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0.yaml b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0.yaml new file mode 100644 index 00000000000..11fe527a8e8 --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0.yaml @@ -0,0 +1,13 @@ +# Copyright (c) 2025 Texas Instruments Incorporated +# +# SPDX-License-Identifier: Apache-2.0 + +identifier: am243x_evm/am2434/r5f0_0 +name: AM243x R5 Core +type: mcu +arch: arm +ram: 256 +toolchain: + - zephyr + - gnuarmemb +vendor: ti diff --git a/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0_defconfig b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0_defconfig new file mode 100644 index 00000000000..1b60b680f7a --- /dev/null +++ b/boards/ti/am243x_evm/am243x_evm_am2434_r5f0_0_defconfig @@ -0,0 +1,17 @@ +# Copyright (c) 2025 Texas Instruments Incorporated +# +# SPDX-License-Identifier: Apache-2.0 + +# Zephyr Kernel Configuration +CONFIG_XIP=n + +# Serial Driver +CONFIG_SERIAL=y +CONFIG_UART_INTERRUPT_DRIVEN=y + +# Enable Console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# Enable MPU +CONFIG_ARM_MPU=y diff --git a/boards/ti/am243x_evm/board.yml b/boards/ti/am243x_evm/board.yml new file mode 100644 index 00000000000..f9162ef6824 --- /dev/null +++ b/boards/ti/am243x_evm/board.yml @@ -0,0 +1,6 @@ +board: + name: am243x_evm + full_name: TI AM243x-EVM + vendor: ti + socs: + - name: am2434