From d3ecec1e2c991542cc6d5143585304e38b8442aa Mon Sep 17 00:00:00 2001 From: Andre Morishita Date: Mon, 24 Feb 2025 14:55:13 -0300 Subject: [PATCH] boards: variscite: Add Variscite DART-MX93 board Add Variscite DART-MX93 board support. This SoM is based on NXP's i.MX93 SoC. It includes Cortex-A55 and Cortex-M33 support. Signed-off-by: Andre Morishita --- .../imx93_var_dart/Kconfig.imx93_var_dart | 8 + boards/variscite/imx93_var_dart/board.cmake | 10 + boards/variscite/imx93_var_dart/board.yml | 6 + .../imx93_var_dart/doc/imx93_var_dart.webp | Bin 0 -> 64980 bytes boards/variscite/imx93_var_dart/doc/index.rst | 214 ++++++++++++++++++ .../imx93_var_dart-m33-common.dtsi | 19 ++ .../imx93_var_dart-pinctrl.dtsi | 31 +++ .../imx93_var_dart_mimx9352_a55.dts | 78 +++++++ .../imx93_var_dart_mimx9352_a55.yaml | 21 ++ .../imx93_var_dart_mimx9352_a55_defconfig | 30 +++ .../imx93_var_dart_mimx9352_m33.dts | 66 ++++++ .../imx93_var_dart_mimx9352_m33.yaml | 15 ++ .../imx93_var_dart_mimx9352_m33_defconfig | 9 + 13 files changed, 507 insertions(+) create mode 100644 boards/variscite/imx93_var_dart/Kconfig.imx93_var_dart create mode 100644 boards/variscite/imx93_var_dart/board.cmake create mode 100644 boards/variscite/imx93_var_dart/board.yml create mode 100644 boards/variscite/imx93_var_dart/doc/imx93_var_dart.webp create mode 100644 boards/variscite/imx93_var_dart/doc/index.rst create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart-m33-common.dtsi create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart-pinctrl.dtsi create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.dts create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.yaml create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55_defconfig create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.dts create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.yaml create mode 100644 boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33_defconfig diff --git a/boards/variscite/imx93_var_dart/Kconfig.imx93_var_dart b/boards/variscite/imx93_var_dart/Kconfig.imx93_var_dart new file mode 100644 index 00000000000..c8a1a075c34 --- /dev/null +++ b/boards/variscite/imx93_var_dart/Kconfig.imx93_var_dart @@ -0,0 +1,8 @@ +# Copyright 2025 Variscite Ltd. +# Copyright 2022,2024 NXP +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_IMX93_VAR_DART + select SOC_MIMX9352_A55 if BOARD_IMX93_VAR_DART_MIMX9352_A55 + select SOC_MIMX9352_M33 if BOARD_IMX93_VAR_DART_MIMX9352_M33 + select SOC_PART_NUMBER_MIMX9352DVVXM diff --git a/boards/variscite/imx93_var_dart/board.cmake b/boards/variscite/imx93_var_dart/board.cmake new file mode 100644 index 00000000000..4b24b088ce6 --- /dev/null +++ b/boards/variscite/imx93_var_dart/board.cmake @@ -0,0 +1,10 @@ +# Copyright 2025 Variscite Ltd. +# SPDX-License-Identifier: Apache-2.0 + +if(CONFIG_SOC_MIMX9352_M33) + board_set_debugger_ifnset(jlink) + board_set_flasher_ifnset(jlink) + + board_runner_args(jlink "--device=MIMX9352_M33") + include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) +endif() diff --git a/boards/variscite/imx93_var_dart/board.yml b/boards/variscite/imx93_var_dart/board.yml new file mode 100644 index 00000000000..988b4488e0b --- /dev/null +++ b/boards/variscite/imx93_var_dart/board.yml @@ -0,0 +1,6 @@ +boards: + - name: imx93_var_dart + full_name: DART-MX93 + vendor: variscite + socs: + - name: mimx9352 diff --git a/boards/variscite/imx93_var_dart/doc/imx93_var_dart.webp b/boards/variscite/imx93_var_dart/doc/imx93_var_dart.webp new file mode 100644 index 0000000000000000000000000000000000000000..5fca9f7b7df87e942bb9513dbed63fa680bbc8c2 GIT binary patch literal 64980 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 F007j9^=SYA literal 0 HcmV?d00001 diff --git a/boards/variscite/imx93_var_dart/doc/index.rst b/boards/variscite/imx93_var_dart/doc/index.rst new file mode 100644 index 00000000000..97a4fd1f78f --- /dev/null +++ b/boards/variscite/imx93_var_dart/doc/index.rst @@ -0,0 +1,214 @@ +.. zephyr:board:: imx93_var_dart + +Overview +******** + +The DART-MX93 offers a high-performance processing for a low-power System-on-Module. +The product is based on the i.MX 93 family which represents NXP’s latest power-optimized +processors for smart home, building control, contactless HMI, IoT edge, and Industrial +applications. + +The i.MX 93 includes powerful dual Arm® Cortex®-A55 processors with speeds up to 1.7 GHz +integrated with a NPU that accelerates machine learning inference. A general-purpose Arm® +Cortex®-M33 running up to 250 MHz is for real-time and low-power processing. Robust control +networks are possible via CAN-FD interface. Also, dual 1 Gbps Ethernet controllers, one +supporting Time Sensitive Networking (TSN), drive gateway applications with low latency. + +Zephyr OS is ported to run on either the Cortex®-A55 or the Cortex®-M33. + +Specs Summary +************* + + - CPU + + - NXP i.MX 93: + - 2x Cortex®-A55 @ 1.7GHz + - 1x Cortex®-M33 @ 250 MHz + - 1x Ethos-U65 microNPU 0.5 TOPS + - Memory + + - Up to 2GB LPDDR4 RAM + - GPU + + - PXP 2D Pixel acceleration engine + - NPU (Neural Processing Unit) + + - Neural Network performance (256 MACs operating up to 1.0 GHz and 2 OPS/MAC) + - NPU targets 8-bit and 16-bit integer RNN + - Handles 8-bit weights + - Display + + - LVDS up to 1366x768p60 or 1280x800p60 + - Parallel RGB up to 1366x768p60 or 1280x800p60 + - 1x MIPI DSI up to 1920x1200p60 24-bit + - Network + + - 2x 10/100/1000 Mbit/s Ethernet Interface + - Certified Wi-Fi 802.11ax/ac/a/b/g/n + - Bluetooth/BLE 5.4 + - Camera + + - One 2-lane MIPI CSI-2 camera input + - Audio + + - Headphones + - Microphone: Digital, Analog (stereo) + - 3x I2S(SAI), S/PDIF, PDM 4CH + - USB + + - 2x USB 2.0 OTG + - Serial interfaces + + - SPI: x7 + - I2C: x7 + - UART: x7, up to 5 Mbps + - CAN: x2 + - Temperature range + + - -40°C to 85°C + +More information about the SoM can be found at the +`Variscite Wiki`_ and +`Variscite website`_. + +Supported Features +================== + +.. zephyr:board-supported-hw:: + +.. note:: + + It is recommended to disable peripherals used by the M33 core on the Linux host. + +Devices +======== +System Clock +------------ + +This board configuration uses a system clock frequency of 24 MHz. +Cortex-A55 Core runs up to 1.7 GHz. +Cortex-M33 Core runs up to 200MHz in which SYSTICK runs on same frequency. + +Serial Port +----------- + +This board configuration uses a single serial communication channel with the +CPU's UART7 for A55 core and M33 core. + +Programming and Debugging (A55) +******************************* + +Copy the compiled ``zephyr.bin`` to the boot directory of the SD card and +plug the SD card into the board. Power it up and stop the U-Boot execution at +prompt. + +Use U-Boot to load and run zephyr.bin on the Cortex-A55: + +.. code-block:: console + + load mmc $mmcdev:$mmcpart $loadaddr /boot/zephyr.bin + dcache off; icache flush; go $loadaddr + +Use this configuration to run basic Zephyr applications and kernel tests, +for example, with the :zephyr:code-sample:`hello_world` sample: + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :host-os: unix + :board: imx93_var_dart/mimx9352/a55 + :goals: build + +This will build an image with the hello_world sample app. When loaded and executed +it will display the following ram console output: + +.. code-block:: console + + *** Booting Zephyr OS build v4.0.0-44-g93cbaccbbc41 *** + Hello World! imx93_var_dart/mimx9352/a55 + + +Programming and Debugging (M33) +******************************* + +.. zephyr:board-supported-runners:: + +There are two methods to load M33 Core images: U-Boot command and Linux remoteproc. + +Load and Run M33 Zephyr Image from U-Boot +========================================= + +Load and run Zephyr on M33 from A55 using U-Boot by copying the compiled +``zephyr.bin`` to the boot directory of the SD card and plug the SD +card into the board. Power it up and stop the U-Boot execution at prompt. + +Load the M33 binary onto the desired memory and start its execution using: + +.. code-block:: console + + load mmc $mmcdev:$mmcpart 0x80000000 /boot/zephyr.bin + cp.b 0x80000000 0x201e0000 0x30000 + bootaux 0x1ffe0000 0 + +Load and Run M33 Zephyr Image by using Linux remoteproc +======================================================= + +Transfer built binaries ``zephyr.bin`` and ``zephyr.elf`` to the SoM's ``/boot`` and +``/lib/firmware`` respectively using ``scp`` or through an USB drive. + +Before running Cortex-M33 binaries from Linux it is necessary to enable the device tree +dedicated to be used with Cortex-M33 applications: + +.. code-block:: console + + root@imx93-var-som:~# fw_setenv fdt_file imx93-var-dart-dt8mcustomboard-m33.dtb + root@imx93-var-som:~# reboot + +It is possible to execute Zephyr binaries using Variscite remoteproc scripts made +for MCUXpresso binaries: + +.. code-block:: console + + root@imx93-var-som:~# /etc/remoteproc/variscite-rproc-linux -f /lib/firmware/zephyr.elf + [ 125.449838] remoteproc remoteproc0: powering up imx-rproc + [ 125.459162] remoteproc remoteproc0: Booting fw image zephyr.elf, size 469356 + [ 125.468958] remoteproc remoteproc0: No resource table in elf + [ 125.987142] remoteproc remoteproc0: remote processor imx-rproc is now up + +Which should yield the following result on the UART7 serial console: + +.. code-block:: console + + *** Booting Zephyr OS build v4.0.0-44-g93cbaccbbc41 *** + Hello World! imx93_var_dart/mimx9352/m33 + +You can also configure U-Boot to load firmware on boot: + +.. code-block:: console + + root@imx93-var-som:~# /etc/remoteproc/variscite-rproc-u-boot -f /boot/zephyr.bin + Configuring for TCM memory + + fw_setenv m33_addr 0x201E0000 + + fw_setenv fdt_file imx93-var-dart-dt8mcustomboard-m33.dtb + + fw_setenv use_m33 yes + + fw_setenv m33_bin zephyr.bin + + Finished: Please reboot, the m33 firmware will run during U-Boot + +For more information about Variscite remoteproc scripts and general Cortex-M33 +support, visit `Variscite Wiki`_. + +References +========== + +- `Variscite Wiki`_ +- `Variscite website`_ +- `NXP website`_ + +.. _Variscite Wiki: + https://variwiki.com/index.php?title=DART-MX93 + +.. _Variscite website: + https://www.variscite.com/product/system-on-module-som/cortex-a55/dart-mx93-nxp-i-mx93/ + +.. _NXP website: + https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-9-processors/i-mx-93-applications-processor-family-arm-cortex-a55-ml-acceleration-power-efficient-mpu:i.MX93 diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart-m33-common.dtsi b/boards/variscite/imx93_var_dart/imx93_var_dart-m33-common.dtsi new file mode 100644 index 00000000000..fa7014d0613 --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart-m33-common.dtsi @@ -0,0 +1,19 @@ +/* + * Copyright 2025 Variscite Ltd. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/ { + soc { + lpuart7: serial@42690000 { + compatible = "nxp,imx-lpuart", "nxp,lpuart"; + reg = <0x42690000 DT_SIZE_K(64)>; + interrupts = <20 3>; + clocks = <&ccm IMX_CCM_LPUART7_CLK 0x6c 24>; + status = "disabled"; + }; + }; +}; diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart-pinctrl.dtsi b/boards/variscite/imx93_var_dart/imx93_var_dart-pinctrl.dtsi new file mode 100644 index 00000000000..9c06603154d --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart-pinctrl.dtsi @@ -0,0 +1,31 @@ +/* + * Copyright 2025 Variscite Ltd. + * Copyright 2022,2024 NXP + * SPDX-License-Identifier: Apache-2.0 + * + */ + +#include + +&pinctrl { + uart1_default: uart1_default { + group0 { + pinmux = <&iomuxc1_uart1_rxd_lpuart_rx_lpuart1_rx>, + <&iomuxc1_uart1_txd_lpuart_tx_lpuart1_tx>; + bias-pull-up; + slew-rate = "slightly_fast"; + drive-strength = "x5"; + }; + }; + + uart7_default: uart7_default { + group0 { + pinmux = <&iomuxc1_gpio_io09_lpuart_rx_lpuart7_rx>, + <&iomuxc1_gpio_io08_lpuart_tx_lpuart7_tx>; + bias-pull-up; + slew-rate = "slightly_fast"; + drive-strength = "x5"; + }; + }; + +}; diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.dts b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.dts new file mode 100644 index 00000000000..d04706eb5d6 --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.dts @@ -0,0 +1,78 @@ +/* + * Copyright 2025 Variscite Ltd. + * Copyright 2022,2024 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include "imx93_var_dart-pinctrl.dtsi" +#include +#include + +/ { + model = "Variscite DART-MX93 A55"; + compatible = "fsl,mimx93"; + + chosen { + zephyr,console = &lpuart7; + zephyr,shell-uart = &lpuart7; + zephyr,sram = &sram0; + }; + + cpus { + cpu@0 { + status = "disabled"; + }; + }; + + sram0: memory@80400000 { + reg = <0x80400000 DT_SIZE_M(1)>; + }; + + lpuart7: serial@42690000 { + compatible = "nxp,imx-lpuart", "nxp,lpuart"; + reg = <0x42690000 DT_SIZE_K(64)>; + interrupts = ; + interrupt-names = "irq_0"; + interrupt-parent = <&gic>; + clocks = <&ccm IMX_CCM_LPUART7_CLK 0x6c 24>; + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&uart7_default>; + pinctrl-names = "default"; + }; + + aliases { + led0 = &blinky0; + sw0 = &button0; + }; + + leds { + compatible = "gpio-leds"; + + blinky0: blinky_0 { + gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + + button0: btn_0 { + label = "BTN0"; + gpios = <&gpio2 27 (GPIO_PULL_UP|GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + }; +}; + +&gpio2 { + status = "okay"; +}; + +&gpio4 { + status = "okay"; +}; diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.yaml b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.yaml new file mode 100644 index 00000000000..f16ce8f54e3 --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55.yaml @@ -0,0 +1,21 @@ +# +# Copyright 2025 Variscite Ltd. +# Copyright 2024 NXP +# +# SPDX-License-Identifier: Apache-2.0 +# + +identifier: imx93_var_dart/mimx9352/a55 +name: Variscite DART-MX93 A55 +type: mcu +arch: arm64 +toolchain: + - zephyr + - cross-compile +ram: 1024 +supported: + - gpio + - uart +testing: + ignore_tags: + - bluetooth diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55_defconfig b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55_defconfig new file mode 100644 index 00000000000..0819d35e45f --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_a55_defconfig @@ -0,0 +1,30 @@ +# +# Copyright 2025 Variscite Ltd. +# Copyright 2022 NXP +# +# SPDX-License-Identifier: Apache-2.0 + +# ARM Options +CONFIG_AARCH64_IMAGE_HEADER=y +CONFIG_ARMV8_A_NS=y + +# MMU Options +CONFIG_MAX_XLAT_TABLES=64 + +# Cache Options +CONFIG_CACHE_MANAGEMENT=y +CONFIG_DCACHE_LINE_SIZE_DETECT=y +CONFIG_ICACHE_LINE_SIZE_DETECT=y + +# Zephyr Kernel Configuration +CONFIG_XIP=n +CONFIG_KERNEL_DIRECT_MAP=y + +# Serial Drivers +CONFIG_SERIAL=y + +# Enable Console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +CONFIG_CLOCK_CONTROL=y diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.dts b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.dts new file mode 100644 index 00000000000..fa3d093d4da --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.dts @@ -0,0 +1,66 @@ +/* + * Copyright 2025 Variscite Ltd. + * Copyright 2024 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; + +#include +#include "imx93_var_dart-pinctrl.dtsi" +#include "imx93_var_dart-m33-common.dtsi" +#include +#include + +/ { + model = "Variscite DART-MX93"; + compatible = "nxp,imx93_var_dart"; + + chosen { + /* TCM */ + zephyr,flash = &itcm; + zephyr,sram = &dtcm; + + zephyr,console = &lpuart7; + zephyr,shell-uart = &lpuart7; + }; + + aliases { + led0 = &blinky0; + sw0 = &button0; + }; + + leds { + compatible = "gpio-leds"; + + blinky0: blinky_0 { + gpios = <&gpio4 1 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + + button0: btn_0 { + label = "BTN0"; + gpios = <&gpio2 27 (GPIO_PULL_UP|GPIO_ACTIVE_LOW)>; + zephyr,code = ; + }; + }; +}; + +&lpuart7 { + status = "okay"; + current-speed = <115200>; + pinctrl-0 = <&uart7_default>; + pinctrl-names = "default"; +}; + +&gpio2 { + status = "okay"; +}; + +&gpio4 { + status = "okay"; +}; diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.yaml b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.yaml new file mode 100644 index 00000000000..5b4c03b00f0 --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33.yaml @@ -0,0 +1,15 @@ +# Copyright 2025 Variscite Ltd. +# SPDX-License-Identifier: Apache-2.0 + +identifier: imx93_var_dart/mimx9352/m33 +name: Variscite DART-MX93 M33 +type: mcu +arch: arm +toolchain: + - zephyr + - cross-compile +ram: 128 +flash: 128 +supported: + - gpio + - uart diff --git a/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33_defconfig b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33_defconfig new file mode 100644 index 00000000000..1583ec46004 --- /dev/null +++ b/boards/variscite/imx93_var_dart/imx93_var_dart_mimx9352_m33_defconfig @@ -0,0 +1,9 @@ +# Copyright 2025 Variscite Ltd. +# Copyright 2024 NXP +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_CLOCK_CONTROL=y +CONFIG_SERIAL=y +CONFIG_UART_CONSOLE=y +CONFIG_CONSOLE=y +CONFIG_XIP=y