Skip to content

Commit 2bfb590

Browse files
Zhiqiang-Houkartben
authored andcommitted
boards: nxp: add imx91_evk support
The i.MX 91 Evaluation Kit (MCIMX91-EVK board) is a platform designed to display the most commonly used features of the i.MX 91 applications processor. The MCIMX91-EVK board is an entry-level development board with a small and low-cost package. Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
1 parent 6a4fdd5 commit 2bfb590

File tree

7 files changed

+250
-0
lines changed

7 files changed

+250
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copyright 2025 NXP
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_IMX91_EVK
5+
select SOC_MIMX9131
6+
select SOC_PART_NUMBER_MIMX9131CVVXJ

boards/nxp/imx91_evk/board.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: imx91_evk
3+
full_name: i.MX91 EVK
4+
vendor: nxp
5+
socs:
6+
- name: mimx9131

boards/nxp/imx91_evk/doc/index.rst

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
.. zephyr:board:: imx91_evk
2+
3+
Overview
4+
********
5+
6+
The i.MX 91 Evaluation Kit (MCIMX91-EVK board) is a platform designed
7+
to display the most commonly used features of the i.MX 91 applications
8+
processor. The MCIMX91-EVK board is an entry-level development board
9+
with a small and low-cost package. The board can be used by developers
10+
to get familiar with the processor before investing a large amount of
11+
resources in more specific designs.
12+
13+
The i.MX 91 applications processor features an Arm Cortex-A55 core
14+
that can operate at speeds of up to 1.4 GHz.
15+
16+
- Board features:
17+
18+
- RAM: 2GB LPDDR4
19+
- Storage:
20+
21+
- SanDisk 16GB eMMC5.1
22+
- microSD Socket
23+
- Wireless:
24+
25+
- Murata Type-2EL (SDIO+UART+SPI) module. It is based on NXP IW612 SoC,
26+
which supports dual-band (2.4 GHz /5 GHz) 1x1 Wi-Fi 6, Bluetooth 5.2,
27+
and 802.15.4
28+
- USB:
29+
30+
- Two USB 2.0 Type C connectors
31+
- Ethernet:
32+
33+
- ENET: 10/100/1000 Mbit/s RGMII Ethernet connected with external PHY
34+
RTL8211
35+
- ENET_QoS: 10/100/1000 Mbit/s RGMII Ethernet supporting TSN connected
36+
with external PHY RTL8211
37+
- PCIe:
38+
39+
- One M.2/NGFF Key E mini card 75-pin connector
40+
- Connectors:
41+
42+
- 40-Pin Dual Row Header
43+
- LEDs:
44+
45+
- 1x Power status LED
46+
- 2x UART LED
47+
- Debug:
48+
49+
- JTAG 20-pin connector
50+
- MicroUSB for UART debug
51+
52+
53+
Supported Features
54+
==================
55+
56+
The ``imx91_evk`` board supports the following hardware features:
57+
58+
+-----------+------------+-------------------------------------+
59+
| Interface | Controller | Driver/Component |
60+
+===========+============+=====================================+
61+
| GIC-v3 | on-chip | interrupt controller |
62+
+-----------+------------+-------------------------------------+
63+
| ARM TIMER | on-chip | system clock |
64+
+-----------+------------+-------------------------------------+
65+
| CLOCK | on-chip | clock_control |
66+
+-----------+------------+-------------------------------------+
67+
| PINMUX | on-chip | pinmux |
68+
+-----------+------------+-------------------------------------+
69+
| UART | on-chip | serial port |
70+
+-----------+------------+-------------------------------------+
71+
72+
Devices
73+
========
74+
System Clock
75+
------------
76+
77+
This board configuration uses a system clock frequency of 24 MHz.
78+
Cortex-A55 Core runs up to 1.4 GHz.
79+
80+
Serial Port
81+
-----------
82+
83+
This board configuration uses a single serial communication channel with the
84+
CPU's UART1 for A55 core.
85+
86+
Programming and Debugging
87+
*******************************
88+
89+
U-Boot "go" command is used to load and kick Zephyr to Cortex-A55 Core.
90+
91+
Copy the compiled ``zephyr.bin`` to the first FAT partition of the SD card and
92+
plug the SD card into the board. Power it up and stop the u-boot execution at
93+
prompt.
94+
95+
Use U-Boot to load and kick zephyr.bin to Cortex-A55 Core:
96+
97+
.. code-block:: console
98+
99+
fatload mmc 1:1 0x80000000 zephyr.bin; dcache flush; icache flush; go 0x80000000
100+
101+
Use this configuration to run basic Zephyr applications and kernel tests,
102+
for example, with the :zephyr:code-sample:`synchronization` sample:
103+
104+
.. zephyr-app-commands::
105+
:zephyr-app: samples/synchronization
106+
:host-os: unix
107+
:board: imx91_evk/mimx9131
108+
:goals: build
109+
110+
This will build an image with the synchronization sample app, boot it and
111+
display the following console output:
112+
113+
.. code-block:: console
114+
115+
*** Booting Zephyr OS build v4.0.0-3277-g69f43115c9a8 ***
116+
thread_a: Hello World from cpu 0 on imx91_evk!
117+
thread_b: Hello World from cpu 0 on imx91_evk!
118+
thread_a: Hello World from cpu 0 on imx91_evk!
119+
thread_b: Hello World from cpu 0 on imx91_evk!
120+
121+
References
122+
==========
123+
124+
More information can refer to NXP official website:
125+
`NXP website`_.
126+
127+
.. _NXP website:
128+
https://www.nxp.com/products/i.MX91
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright 2025 NXP
3+
* SPDX-License-Identifier: Apache-2.0
4+
*
5+
*/
6+
7+
#include <nxp/nxp_imx/mimx9131cvvxj-pinctrl.dtsi>
8+
9+
&pinctrl {
10+
uart1_default: uart1_default {
11+
group0 {
12+
pinmux = <&iomuxc1_uart1_rxd_lpuart_rx_lpuart1_rx>,
13+
<&iomuxc1_uart1_txd_lpuart_tx_lpuart1_tx>;
14+
bias-pull-up;
15+
slew-rate = "slightly_fast";
16+
drive-strength = "x5";
17+
};
18+
};
19+
20+
uart2_default: uart2_default {
21+
group0 {
22+
pinmux = <&iomuxc1_uart2_rxd_lpuart_rx_lpuart2_rx>,
23+
<&iomuxc1_uart2_txd_lpuart_tx_lpuart2_tx>;
24+
bias-pull-up;
25+
slew-rate = "slightly_fast";
26+
drive-strength = "x5";
27+
};
28+
};
29+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/*
2+
* Copyright 2025 NXP
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
9+
#include <nxp/nxp_mimx91.dtsi>
10+
#include "imx91_evk-pinctrl.dtsi"
11+
12+
/ {
13+
model = "NXP i.MX91 A55";
14+
compatible = "fsl,mimx91";
15+
16+
chosen {
17+
zephyr,console = &lpuart1;
18+
zephyr,shell-uart = &lpuart1;
19+
/* sram node actually locates at DDR DRAM */
20+
zephyr,sram = &dram;
21+
};
22+
23+
dram: memory@80000000 {
24+
reg = <0x80000000 DT_SIZE_M(1)>;
25+
};
26+
27+
};
28+
29+
&lpuart1 {
30+
status = "okay";
31+
current-speed = <115200>;
32+
pinctrl-0 = <&uart1_default>;
33+
pinctrl-names = "default";
34+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#
2+
# Copyright 2025 NXP
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
7+
identifier: imx91_evk/mimx9131
8+
name: NXP i.MX91 EVK
9+
type: mcu
10+
arch: arm64
11+
toolchain:
12+
- zephyr
13+
- cross-compile
14+
ram: 1024
15+
supported:
16+
- uart
17+
vendor: nxp
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#
2+
# Copyright 2025 NXP
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
# ARM Options
7+
CONFIG_AARCH64_IMAGE_HEADER=y
8+
CONFIG_ARMV8_A_NS=y
9+
10+
# MMU Options
11+
# Increase the value when encounter the assert on the MAX_XLAT_TABLES
12+
CONFIG_MAX_XLAT_TABLES=24
13+
14+
# Cache Options
15+
CONFIG_CACHE_MANAGEMENT=y
16+
CONFIG_DCACHE_LINE_SIZE_DETECT=y
17+
CONFIG_ICACHE_LINE_SIZE_DETECT=y
18+
19+
# Zephyr Kernel Configuration
20+
CONFIG_XIP=n
21+
22+
# Serial Drivers
23+
CONFIG_SERIAL=y
24+
CONFIG_UART_INTERRUPT_DRIVEN=y
25+
26+
# Enable Console
27+
CONFIG_CONSOLE=y
28+
CONFIG_UART_CONSOLE=y
29+
30+
CONFIG_CLOCK_CONTROL=y

0 commit comments

Comments
 (0)