boards: variscite: Add Variscite VAR-SOM-MX8M-PLUS board
Add Variscite VAR-SOM-MX8M-PLUS board support. This SoM is based on NXP's i.MX8M Plus SoC. It includes Cortex-A53 and Cortex-M7 support. Signed-off-by: Andre Morishita <andre.m@variscite.com>
This commit is contained in:
parent
eabb0b5cfc
commit
40a3d1e365
16 changed files with 693 additions and 0 deletions
8
boards/variscite/imx8mp_var_som/Kconfig.imx8mp_var_som
Normal file
8
boards/variscite/imx8mp_var_som/Kconfig.imx8mp_var_som
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Copyright 2025 Variscite Ltd.
|
||||
# Copyright 2021-2022, 2024 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_IMX8MP_VAR_SOM
|
||||
select SOC_MIMX8ML8_A53 if BOARD_IMX8MP_VAR_SOM_MIMX8ML8_A53
|
||||
select SOC_MIMX8ML8_M7 if BOARD_IMX8MP_VAR_SOM_MIMX8ML8_M7 || BOARD_IMX8MP_VAR_SOM_MIMX8ML8_M7_DDR
|
||||
select SOC_PART_NUMBER_MIMX8ML8DVNLZ
|
14
boards/variscite/imx8mp_var_som/board.cmake
Normal file
14
boards/variscite/imx8mp_var_som/board.cmake
Normal file
|
@ -0,0 +1,14 @@
|
|||
#
|
||||
# Copyright 2025 Variscite Ltd.
|
||||
# Copyright (c) 2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if(CONFIG_SOC_MIMX8ML8_M7)
|
||||
board_set_debugger_ifnset(jlink)
|
||||
board_set_flasher_ifnset(jlink)
|
||||
|
||||
board_runner_args(jlink "--device=MIMX8ML8_M7")
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
||||
endif()
|
9
boards/variscite/imx8mp_var_som/board.yml
Normal file
9
boards/variscite/imx8mp_var_som/board.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
boards:
|
||||
- name: imx8mp_var_som
|
||||
full_name: VAR-SOM-MX8M-PLUS
|
||||
vendor: variscite
|
||||
socs:
|
||||
- name: mimx8ml8
|
||||
variants:
|
||||
- name: ddr
|
||||
cpucluster: m7
|
BIN
boards/variscite/imx8mp_var_som/doc/imx8mp_var_som.webp
Normal file
BIN
boards/variscite/imx8mp_var_som/doc/imx8mp_var_som.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
277
boards/variscite/imx8mp_var_som/doc/index.rst
Normal file
277
boards/variscite/imx8mp_var_som/doc/index.rst
Normal file
|
@ -0,0 +1,277 @@
|
|||
.. zephyr:board:: imx8mp_var_som
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
Variscite's VAR-SOM-MX8M-PLUS System on Module (SoM) is based on the i.MX 8M Plus family,
|
||||
which is a set of NXP products built to achieve both high performance and low power
|
||||
consumption and relies on a powerful, fully coherent core complex based on a quad Cortex®-A53
|
||||
cluster and Cortex®-M7 low-power coprocessor, audio digital signal processor, machine learning
|
||||
and graphics accelerators.
|
||||
|
||||
Zephyr OS is ported to run on either the Cortex®-A53 or the Cortex®-M7.
|
||||
|
||||
Specs Summary
|
||||
***************
|
||||
|
||||
- CPU
|
||||
|
||||
- NXP i.MX8M Plus:
|
||||
- Up to 4x Cortex®-A53 @ 1.8GHz
|
||||
- 1x Cortex®-M7 @ 800 MHz
|
||||
- 1x NPU 2.3 TOPS
|
||||
- Memory
|
||||
|
||||
- Up to 8GB LPDDR4 RAM @ 2000MHz
|
||||
- 8-bit up to 128GB eMMC boot and storage
|
||||
- GPU
|
||||
|
||||
- 3D: Vivante™ GC7000UltraLite (2 shaders) OpenGL ES 3.0, OpenCL1.2, Vulkan
|
||||
- 2D: Vivante™ GC520L
|
||||
- NPU (Neural Processing Unit)
|
||||
|
||||
- 2.3 TOPS Neural Network performance
|
||||
- Display
|
||||
|
||||
- 2x LVDS interface 4-lane each up to 1080p60
|
||||
- HDMI 2.0a up to 4Kp30
|
||||
- 1x MIPI DSI with up to 4 data lanes 1080p60
|
||||
- Network
|
||||
|
||||
- 2x 10/100/1000 Mbit/s Ethernet Interface
|
||||
- Certified Wi-Fi 6 dual-band 802.11ax/ac/a/b/g/n with optional 802.15.4
|
||||
- Bluetooth/BLE 5.4
|
||||
- Camera
|
||||
|
||||
- Up to 2x MIPI CSI – CMOS Serial camera Interface 4 lanes
|
||||
- 375 Mpixel/s HDR ISP (Image Sensor Processor)
|
||||
- Audio
|
||||
|
||||
- Headphones
|
||||
- Microphone: Digital, Analog (stereo)
|
||||
- 6x I2S(SAI), S/PDIF RX TX, PDM 8CH, Line In/Out
|
||||
- USB
|
||||
|
||||
- 2x USB 3.0/2.0 Host/Device
|
||||
- Serial interfaces
|
||||
|
||||
- SPI: x3
|
||||
- I2C: x5
|
||||
- UART: x4, 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 M7 core on the Linux host.
|
||||
|
||||
Devices
|
||||
========
|
||||
System Clock
|
||||
------------
|
||||
|
||||
This board configuration uses a system clock frequency of 8 MHz.
|
||||
|
||||
The M7 core is configured to run at an 800 MHz clock speed.
|
||||
|
||||
Serial Port
|
||||
-----------
|
||||
|
||||
This board configuration uses a single serial communication channel with the
|
||||
CPU's UART4.
|
||||
|
||||
Programming and Debugging (A53)
|
||||
*******************************
|
||||
|
||||
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-A53:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
load mmc $mmcdev:$mmcpart $loadaddr /boot/zephyr.bin
|
||||
dcache flush; 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: imx8mp_var_som/mimx8ml8/a53
|
||||
: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-3113-g5aeda6fe7dfa ***
|
||||
Hello World! imx8mp_var_som/mimx8ml8/a53
|
||||
|
||||
|
||||
Programming and Debugging (M7)
|
||||
******************************
|
||||
|
||||
.. zephyr:board-supported-runners::
|
||||
|
||||
The VAR-SOM-MX8M-PLUS don't have QSPI flash for the M7, and it needs to be
|
||||
started by the A53 core. The A53 core is responsible to load the M7 binary
|
||||
application into the RAM, put the M7 in reset, set the M7 Program Counter and
|
||||
Stack Pointer, and get the M7 out of reset. The A53 can perform these steps at
|
||||
bootloader level or after the Linux system has booted.
|
||||
|
||||
The M7 can use up to 3 different RAMs (currently, only two configurations are
|
||||
supported: ITCM and DDR). These are the memory mapping for A53 and M7:
|
||||
|
||||
+------------+-------------------------+------------------------+-----------------------+----------------------+
|
||||
| Region | Cortex-A53 | Cortex-M7 (System Bus) | Cortex-M7 (Code Bus) | Size |
|
||||
+============+=========================+========================+=======================+======================+
|
||||
| OCRAM | 0x00900000-0x0098FFFF | 0x20200000-0x2028FFFF | 0x00900000-0x0098FFFF | 576KB |
|
||||
+------------+-------------------------+------------------------+-----------------------+----------------------+
|
||||
| DTCM | 0x00800000-0x0081FFFF | 0x20000000-0x2001FFFF | | 128KB |
|
||||
+------------+-------------------------+------------------------+-----------------------+----------------------+
|
||||
| ITCM | 0x007E0000-0x007FFFFF | | 0x00000000-0x0001FFFF | 128KB |
|
||||
+------------+-------------------------+------------------------+-----------------------+----------------------+
|
||||
| OCRAM_S | 0x00180000-0x00188FFF | 0x20180000-0x20188FFF | 0x00180000-0x00188FFF | 36KB |
|
||||
+------------+-------------------------+------------------------+-----------------------+----------------------+
|
||||
| DDR | 0x80000000-0x803FFFFF | 0x7E200000-0x7E3FFFFF | 0x7E000000-0x7E1FFFFF | 2MB |
|
||||
+------------+-------------------------+------------------------+-----------------------+----------------------+
|
||||
|
||||
For more information about memory mapping see the
|
||||
`i.MX 8M Applications Processor Reference Manual`_ (section 2.1 to 2.3)
|
||||
|
||||
At compilation time you have to choose which RAM will be used. This
|
||||
configuration is done based on board name (e.g. imx8mp_var_som/mimx8ml8/m7
|
||||
for ITCM and imx8mp_var_som/mimx8ml8/m7/ddr for DDR).
|
||||
|
||||
There are two methods to load M7 Core images: U-Boot command and Linux remoteproc.
|
||||
|
||||
Load and Run M7 Zephyr Image from U-Boot
|
||||
========================================
|
||||
|
||||
Load and run Zephyr on M7 from A53 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 M7 binary onto the desired memory and start its execution using:
|
||||
|
||||
ITCM
|
||||
====
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
load mmc 1:1 0x48000000 /boot/zephyr.bin
|
||||
cp.b 0x48000000 0x7e0000 20000
|
||||
bootaux 0x7e0000
|
||||
|
||||
DDR
|
||||
===
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
load mmc 1:1 0x7b000000 /boot/zephyr.bin
|
||||
dcache flush
|
||||
bootaux 0x7b000000
|
||||
|
||||
Load and Run M7 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.
|
||||
|
||||
It is possible to execute Zephyr binaries using Variscite remoteproc scripts made
|
||||
for MCUXpresso binaries:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
root@imx8mp-var-dart:~# /etc/remoteproc/variscite-rproc-linux -f /lib/firmware/zephyr.elf
|
||||
[ 212.888118] remoteproc remoteproc0: powering up imx-rproc
|
||||
[ 212.899215] remoteproc remoteproc0: Booting fw image zephyr.elf, size 515836
|
||||
[ 212.912070] remoteproc remoteproc0: No resource table in elf
|
||||
[ 213.444675] remoteproc remoteproc0: remote processor imx-rproc is now up
|
||||
|
||||
Which should yield the following result on the UART4 serial console:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
*** Booting Zephyr OS build v4.0.0-3113-g5aeda6fe7dfa ***
|
||||
Hello World! imx8mp_var_som/mimx8ml8/m7
|
||||
|
||||
If the device tree dedicated to be used with Cortex-M7 applications is not being
|
||||
currently used, the script will give instructions on how to do so:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Error: /sys/class/remoteproc/remoteproc0 not found.
|
||||
Please enable remoteproc driver.
|
||||
Most likely you need to use the correct device tree, for example:
|
||||
fw_setenv fdt_file imx8mp-var-som-symphony-m7.dtb && reboot
|
||||
|
||||
You can also configure U-Boot to load firmware on boot:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
root@imx8mp-var-dart:~# /etc/remoteproc/variscite-rproc-u-boot -f /boot/zephyr.bin
|
||||
Configuring for TCM memory
|
||||
+ fw_setenv m7_addr 0x7E0000
|
||||
+ fw_setenv fdt_file imx8mp-var-som-symphony-m7.dtb
|
||||
+ fw_setenv use_m7 yes
|
||||
+ fw_setenv m7_bin zephyr.bin
|
||||
|
||||
Finished: Please reboot, the m7 firmware will run during U-Boot
|
||||
|
||||
For more information about Variscite remoteproc scripts and general Cortex-M7
|
||||
support, visit `Variscite Wiki`_.
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
VAR-SOM-MX8M-PLUS board can be debugged by connecting an external
|
||||
JLink JTAG debugger to the 14-pin header on the top left side of
|
||||
the SoM and to the PC. Then the application can be debugged using
|
||||
the usual way.
|
||||
|
||||
Here is an example for the :zephyr:code-sample:`hello_world` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: imx8mp_var_som/mimx8ml8/m7
|
||||
:goals: debug
|
||||
|
||||
Open a serial terminal, step through the application in your debugger, and you
|
||||
should see the following message in the terminal:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
*** Booting Zephyr OS build v4.0.0-3113-g5aeda6fe7dfa ***
|
||||
Hello World! imx8mp_var_som/mimx8ml8/m7
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
- `Variscite Wiki`_
|
||||
- `Variscite website`_
|
||||
- `i.MX 8M Applications Processor Reference Manual`_
|
||||
|
||||
.. _Variscite Wiki:
|
||||
https://variwiki.com/index.php?title=VAR-SOM-MX8M-PLUS
|
||||
|
||||
.. _Variscite website:
|
||||
https://www.variscite.com/product/system-on-module-som/cortex-a53-krait/var-som-mx8m-plus-nxp-i-mx-8m-plus
|
||||
|
||||
.. _i.MX 8M Applications Processor Reference Manual:
|
||||
https://www.nxp.com/webapp/Download?colCode=IMX8MPRM
|
40
boards/variscite/imx8mp_var_som/imx8mp_var_som-pinctrl.dtsi
Normal file
40
boards/variscite/imx8mp_var_som/imx8mp_var_som-pinctrl.dtsi
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* Copyright 2025 Variscite Ltd.
|
||||
* Copyright 2022-2024 NXP
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
*/
|
||||
|
||||
#include <nxp/nxp_imx/mimx8ml8dvnlz-pinctrl.dtsi>
|
||||
|
||||
&pinctrl {
|
||||
uart1_default: uart1_default {
|
||||
group0 {
|
||||
pinmux = <&iomuxc_uart1_rxd_uart_rx_uart1_rx>,
|
||||
<&iomuxc_uart1_txd_uart_tx_uart1_tx>;
|
||||
bias-pull-up;
|
||||
slew-rate = "slow";
|
||||
drive-strength = "x1";
|
||||
};
|
||||
};
|
||||
|
||||
uart3_default: uart3_default {
|
||||
group0 {
|
||||
pinmux = <&iomuxc_uart3_rxd_uart_rx_uart3_rx>,
|
||||
<&iomuxc_uart3_txd_uart_tx_uart3_tx>;
|
||||
bias-pull-up;
|
||||
slew-rate = "slow";
|
||||
drive-strength = "x1";
|
||||
};
|
||||
};
|
||||
|
||||
uart4_default: uart4_default {
|
||||
group0 {
|
||||
pinmux = <&iomuxc_uart4_rxd_uart_rx_uart4_rx>,
|
||||
<&iomuxc_uart4_txd_uart_tx_uart4_tx>;
|
||||
bias-pull-up;
|
||||
slew-rate = "slow";
|
||||
drive-strength = "x1";
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* Copyright 2025 Variscite Ltd.
|
||||
* Copyright 2021-2024 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <nxp/nxp_mimx8mp_a53.dtsi>
|
||||
#include "imx8mp_var_som-pinctrl.dtsi"
|
||||
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
model = "Variscite VAR-SOM-MX8M-PLUS A53";
|
||||
compatible = "fsl,mimx8mp";
|
||||
|
||||
chosen {
|
||||
zephyr,console = &uart4;
|
||||
zephyr,shell-uart = &uart4;
|
||||
/* sram node actually locates at DDR DRAM */
|
||||
zephyr,sram = &dram;
|
||||
};
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
cpu@1 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
cpu@2 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
dram: memory@40480000 {
|
||||
reg = <0x40480000 DT_SIZE_M(1)>;
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &blinky0;
|
||||
sw0 = &button0;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blinky0: blinky_0 {
|
||||
gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
button0: btn_0 {
|
||||
label = "BTN0";
|
||||
gpios = <&gpio3 6 (GPIO_PULL_UP|GPIO_ACTIVE_LOW)>;
|
||||
zephyr,code = <INPUT_KEY_0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
status = "okay";
|
||||
current-speed = <115200>;
|
||||
clocks = <&ccm IMX_CCM_UART4_CLK 0x6c 24>;
|
||||
pinctrl-0 = <&uart4_default>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&gpio3 {
|
||||
status = "okay";
|
||||
};
|
|
@ -0,0 +1,21 @@
|
|||
#
|
||||
# Copyright 2025 Variscite Ltd.
|
||||
# Copyright 2024 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
identifier: imx8mp_var_som/mimx8ml8/a53
|
||||
name: Variscite VAR-SOM-MX8M-PLUS A53
|
||||
type: mcu
|
||||
arch: arm64
|
||||
toolchain:
|
||||
- zephyr
|
||||
- cross-compile
|
||||
ram: 1024
|
||||
supported:
|
||||
- uart
|
||||
- net
|
||||
testing:
|
||||
ignore_tags:
|
||||
- bluetooth
|
|
@ -0,0 +1,26 @@
|
|||
# Copyright 2025 Variscite Ltd.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# ARM Options
|
||||
CONFIG_AARCH64_IMAGE_HEADER=y
|
||||
CONFIG_ARMV8_A_NS=y
|
||||
CONFIG_ARM64_VA_BITS_36=y
|
||||
CONFIG_ARM64_PA_BITS_36=y
|
||||
|
||||
# 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
|
|
@ -0,0 +1,65 @@
|
|||
/*
|
||||
* Copyright 2025 Variscite Ltd.
|
||||
* Copyright (c) 2021, Laird Connectivity
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <nxp/nxp_imx8ml_m7.dtsi>
|
||||
#include "imx8mp_var_som-pinctrl.dtsi"
|
||||
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
model = "Variscite VAR-SOM-MX8M-PLUS M7";
|
||||
compatible = "nxp,imx8mp_var_som";
|
||||
|
||||
chosen {
|
||||
/* TCM */
|
||||
zephyr,flash = &itcm;
|
||||
zephyr,sram = &dtcm;
|
||||
|
||||
zephyr,console = &uart4;
|
||||
zephyr,shell-uart = &uart4;
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &blinky0;
|
||||
sw0 = &button0;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blinky0: blinky_0 {
|
||||
gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
button0: btn_0 {
|
||||
label = "BTN0";
|
||||
gpios = <&gpio3 6 (GPIO_PULL_UP|GPIO_ACTIVE_LOW)>;
|
||||
zephyr,code = <INPUT_KEY_0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
status = "okay";
|
||||
current-speed = <115200>;
|
||||
pinctrl-0 = <&uart4_default>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&gpio3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox0 {
|
||||
status = "okay";
|
||||
};
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright 2025 Variscite Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
identifier: imx8mp_var_som/mimx8ml8/m7
|
||||
name: Variscite VAR-SOM-MX8M-PLUS M7
|
||||
type: mcu
|
||||
arch: arm
|
||||
ram: 128
|
||||
flash: 128
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
supported:
|
||||
- uart
|
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
* Copyright 2025 Variscite Ltd.
|
||||
* Copyright (c) 2021, Laird Connectivity
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <nxp/nxp_imx8ml_m7.dtsi>
|
||||
#include "imx8mp_var_som-pinctrl.dtsi"
|
||||
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/delete-node/ &ddr_code;
|
||||
/delete-node/ &ddr_sys;
|
||||
|
||||
/ {
|
||||
model = "Variscite VAR-SOM-MX8M-PLUS M7 (DDR)";
|
||||
compatible = "nxp,imx8mp_var_som";
|
||||
|
||||
chosen {
|
||||
/* DDR */
|
||||
zephyr,flash = &ddr_code;
|
||||
zephyr,sram = &ddr_sys;
|
||||
|
||||
zephyr,console = &uart4;
|
||||
zephyr,shell-uart = &uart4;
|
||||
};
|
||||
|
||||
soc {
|
||||
ddr_code: code@7b000000 {
|
||||
device_type = "memory";
|
||||
compatible = "nxp,imx-code-bus";
|
||||
reg = <0x7b000000 DT_SIZE_M(2)>;
|
||||
};
|
||||
|
||||
ddr_sys: memory@7b200000 {
|
||||
device_type = "memory";
|
||||
compatible = "nxp,imx-sys-bus";
|
||||
reg = <0x7b200000 DT_SIZE_M(2)>;
|
||||
};
|
||||
};
|
||||
|
||||
aliases {
|
||||
led0 = &blinky0;
|
||||
sw0 = &button0;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
blinky0: blinky_0 {
|
||||
gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
button0: btn_0 {
|
||||
label = "BTN0";
|
||||
gpios = <&gpio3 6 (GPIO_PULL_UP|GPIO_ACTIVE_LOW)>;
|
||||
zephyr,code = <INPUT_KEY_0>;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
&uart4 {
|
||||
status = "okay";
|
||||
current-speed = <115200>;
|
||||
pinctrl-0 = <&uart4_default>;
|
||||
pinctrl-names = "default";
|
||||
};
|
||||
|
||||
&gpio3 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mailbox0 {
|
||||
status = "okay";
|
||||
};
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright 2025 Variscite Ltd.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
identifier: imx8mp_var_som/mimx8ml8/m7/ddr
|
||||
name: Variscite VAR-SOM-MX8M-PLUS M7 (DDR)
|
||||
type: mcu
|
||||
arch: arm
|
||||
ram: 2048
|
||||
flash: 2048
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
supported:
|
||||
- uart
|
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Copyright 2025 Variscite Ltd.
|
||||
# Copyright (c) 2021, Laird Connectivity
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_XIP=y
|
||||
CONFIG_CODE_DDR=y
|
||||
CONFIG_FLASH_BASE_ADDRESS=0x7b000000
|
||||
CONFIG_FLASH_SIZE=2048
|
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# Copyright 2025 Variscite Ltd.
|
||||
# Copyright (c) 2021, Laird Connectivity
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_XIP=y
|
||||
CONFIG_CODE_ITCM=y
|
10
boards/variscite/index.rst
Normal file
10
boards/variscite/index.rst
Normal file
|
@ -0,0 +1,10 @@
|
|||
.. _boards-variscite:
|
||||
|
||||
Variscite
|
||||
#########
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:glob:
|
||||
|
||||
**/*
|
Loading…
Add table
Add a link
Reference in a new issue