Skip to content

Commit 03897f8

Browse files
Zhiqiang-Houjhedberg
authored andcommitted
boards: nxp: add imx91_qsb support
The i.MX 91 Quick Start Board (MCIMX91-QSB board) is a platform designed to display the most commonly used features of the i.MX 91 applications processor. The MCIMX91-QSB board is an entry-level development board with a small and low-cost package. The board can be used by developers to get familiar with the processor before investing a large amount of resources in more specific designs. Signed-off-by: Hou Zhiqiang <[email protected]> Change imx9111 and imx9131 use separate dts as they has different pin configure. Signed-off-by: Jiafei Pan <[email protected]>
1 parent a3e9b59 commit 03897f8

File tree

11 files changed

+649
-2
lines changed

11 files changed

+649
-2
lines changed

boards/nxp/frdm_imx91/frdm_imx91_mimx9131.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
/dts-v1/;
88

9-
#include <nxp/nxp_mimx91.dtsi>
9+
#include <nxp/nxp_mimx9131.dtsi>
1010
#include "frdm_imx91-pinctrl.dtsi"
1111

1212
/ {

boards/nxp/imx91_evk/imx91_evk_mimx9131.dts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
/dts-v1/;
88

9-
#include <nxp/nxp_mimx91.dtsi>
9+
#include <nxp/nxp_mimx9131.dtsi>
1010
#include "imx91_evk-pinctrl.dtsi"
1111
#include <zephyr/dt-bindings/input/input-event-codes.h>
1212

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_QSB
5+
select SOC_MIMX9111
6+
select SOC_PART_NUMBER_MIMX9111CVXXJ

boards/nxp/imx91_qsb/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_qsb
3+
full_name: i.MX91 QSB
4+
vendor: nxp
5+
socs:
6+
- name: mimx9111

boards/nxp/imx91_qsb/doc/index.rst

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
.. zephyr:board:: imx91_qsb
2+
3+
Overview
4+
********
5+
6+
The i.MX 91 Quick Start Board (MCIMX91-QSB board) is a platform designed
7+
to display the most commonly used features of the i.MX 91 Application
8+
Processor. The MCIMX91-QSB 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+
Hardware
14+
********
15+
16+
- i.MX 91 Application Processor
17+
18+
- The processor integrates an Arm Cortex-A55 core that can operate at speeds of up to 1.4 GHz.
19+
20+
- RAM: 1GB LPDDR4
21+
- Storage:
22+
23+
- SanDisk 16GB eMMC5.1
24+
- microSD Socket
25+
- Wireless:
26+
27+
- Murata Type-2EL (SDIO+UART+SPI) module. It is based on NXP IW612 SoC,
28+
which supports dual-band (2.4 GHz /5 GHz) 1x1 Wi-Fi 6, Bluetooth 5.2,
29+
and 802.15.4
30+
- USB:
31+
32+
- Two USB 2.0 Type C connectors
33+
- Ethernet:
34+
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+
.. zephyr:board-supported-hw::
57+
58+
Devices
59+
========
60+
System Clock
61+
------------
62+
63+
This board configuration uses a system clock frequency of 24 MHz.
64+
Cortex-A55 Core runs up to 1.4 GHz.
65+
66+
Serial Port
67+
-----------
68+
69+
This board configuration uses a single serial communication channel with the
70+
CPU's UART1 for A55 core.
71+
72+
Programming and Debugging
73+
*******************************
74+
75+
U-Boot "go" command is used to load and kick Zephyr to Cortex-A55 Core.
76+
77+
Stop the board at U-Boot command line, then need to download Zephyr binary image into
78+
DDR memory, it can use tftp:
79+
80+
.. code-block:: console
81+
82+
tftp 0x80000000 zephyr.bin
83+
84+
Or copy the Zephyr image ``zephyr.bin`` to SD card and plug the card into the board, for example
85+
if copy the image to the FAT partition of the SD card, use the following U-Boot command to load
86+
the image into DDR memory (assuming the SD card is dev 1, fat partition ID is 1, they could be
87+
changed based on actual partitions):
88+
89+
.. code-block:: console
90+
91+
fatload mmc 1:1 0x80000000 zephyr.bin;
92+
93+
94+
Then use U-Boot to load and kick zephyr.bin to Cortex-A55 Core:
95+
96+
.. code-block:: console
97+
98+
dcache off; icache flush; go 0x80000000
99+
100+
Use this configuration to run basic Zephyr applications and kernel tests,
101+
for example, with the :zephyr:code-sample:`synchronization` sample:
102+
103+
.. zephyr-app-commands::
104+
:zephyr-app: samples/synchronization
105+
:host-os: unix
106+
:board: imx91_qsb/mimx9111
107+
:goals: build
108+
109+
This will build an image with the synchronization sample app, boot it and
110+
display the following console output:
111+
112+
.. code-block:: console
113+
114+
*** Booting Zephyr OS build v4.0.0-3277-g69f43115c9a8 ***
115+
thread_a: Hello World from cpu 0 on imx91_qsb!
116+
thread_b: Hello World from cpu 0 on imx91_qsb!
117+
thread_a: Hello World from cpu 0 on imx91_qsb!
118+
thread_b: Hello World from cpu 0 on imx91_qsb!
119+
120+
.. include:: ../../common/board-footer.rst
121+
:start-after: nxp-board-footer
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/mimx9111cvxxj-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_mimx9111.dtsi>
10+
#include "imx91_qsb-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_qsb/mimx9111
8+
name: NXP i.MX91 QSB
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)