Skip to content

Commit db70bf9

Browse files
committed
boards: nxp: imx95_evk_15x15: add i.MX 95 15x15 LPDDR4x EVK variant
Add initial support for i.MX 95 15x15 LPDDR4x EVK board. This board uses the i.MX 95 15x15 SoC that shares many similarities to the already supported i.MX 95 19x19 SoC used for the i.MX 95 19x19 LPDDR5 EVK. This enables Zephyr to boot and run on the i.MX 95 15x15 EVK and provides a foundation for further peripheral enablement and application development. Signed-off-by: Aziz Sellami <[email protected]>
1 parent 2bb7fcc commit db70bf9

File tree

9 files changed

+292
-1
lines changed

9 files changed

+292
-1
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_IMX95_EVK_15X15
5+
select SOC_MIMX9596_A55 if BOARD_IMX95_EVK_15X15_MIMX9596_A55
6+
select SOC_PART_NUMBER_MIMX9596AVTXN

boards/nxp/imx95_evk_15x15/board.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: imx95_evk_15x15
3+
full_name: i.MX95 15x15 EVK
4+
vendor: nxp
5+
socs:
6+
- name: mimx9596
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
.. zephyr:board:: imx95_evk_15x15
2+
3+
Overview
4+
********
5+
6+
The i.MX95 EVK (IMX95LP4XEVK-15) board is a platform designed to show the
7+
most commonly used features of the i.MX 95 applications processor.
8+
It is an entry-level development board, which helps developers to get familiar
9+
with the processor before investing a large amount of resources in more
10+
specific designs. The i.MX 95 device on the board comes in a compact
11+
15 x 15 mm package.
12+
13+
Hardware
14+
********
15+
16+
- i.MX 95 applications processor
17+
18+
- The processor integrates up to six Arm Cortex-A55 cores, and supports
19+
functional safety with built-in Arm Cortex-M33 and -M7 cores
20+
21+
- DRAM memory: 8-Gbit LPDDR4x DRAM
22+
- eMMC: 64 GB Micron eMMC
23+
- USB interface: Two USB ports: Type-A and Type-C
24+
- Audio codec interface
25+
26+
- One audio codec WM8962B
27+
- One 3.5 mm 4-pole CTIA standard audio jack
28+
- One 4-pin connector to connect speaker
29+
30+
- Ethernet interface
31+
32+
- ENET2 controller
33+
34+
- Supports 100 Mbit/s or 1000 Mbit/s RGMII Ethernet with one RJ45
35+
connector connected with an external PHY, RTL8211
36+
37+
- ENET1 controller
38+
39+
- Supports 100 Mbit/s or 1000 Mbit/s RGMII Ethernet with one RJ45
40+
connector connected with an external PHY, RTL8211
41+
42+
- M.2 interface: One Wi-Fi/Bluetooth Murata Type-2EL module based on NXP AW612
43+
chip supporting 1x1 Wi-Fi 6 and Bluetooth 5.3
44+
45+
- MIPI CSI interface: Connects to one 22-pin or 36-pin miniSAS connector using x4 lane
46+
configuration
47+
- MIPI CSIDSI interface: Connects to one 36-pin miniSAS connector using x4 lane
48+
configuration
49+
- LVDS interface: two mini-SAS connectors each with x4-lane configuration
50+
- CAN interface: One 4-pin CAN headers for external connection
51+
- SD card interface: one 4-bit SD3.0 microSD card
52+
- I2C interface: I2C1 to I2C6 controllers
53+
- FT4232H I2C interface: PCT2075 temperature sensor and current monitoring devices
54+
- ADC interface: two 4-channel ADC header
55+
- Debug interface
56+
57+
- One USB-to-UART/MPSSE device, FT4232H
58+
- One USB 2.0 Type-C connector (J31) for FT4232H provides quad serial ports
59+
60+
Supported Features
61+
==================
62+
63+
.. zephyr:board-supported-hw::
64+
65+
System Clock
66+
------------
67+
68+
This board configuration uses a system clock frequency of 24 MHz for Cortex-A55.
69+
Cortex-A55 Core runs up to 1.8 GHz.
70+
71+
Serial Port
72+
-----------
73+
74+
This board configuration uses a single serial communication channel with the
75+
CPU's UART1 for Cortex-A55.
76+
77+
Programming and Debugging (A55)
78+
*******************************
79+
80+
Use this configuration to run basic Zephyr applications and kernel tests,
81+
for example, with the :zephyr:code-sample:`synchronization` sample:
82+
83+
1. Build and run the Non-SMP application
84+
85+
.. zephyr-app-commands::
86+
:zephyr-app: samples/synchronization
87+
:host-os: unix
88+
:board: imx95_evk_15x15/mimx9596/a55
89+
:goals: build
90+
91+
This will build an image (zephyr.bin) with the synchronization sample app.
92+
93+
Copy the compiled ``zephyr.bin`` to the first FAT partition of the SD card and
94+
plug the SD card into the board. Power it up and stop the u-boot execution at
95+
prompt.
96+
97+
Use U-Boot to load and kick zephyr.bin to Cortex-A55 Core1:
98+
99+
.. code-block:: console
100+
101+
fatload mmc 1:1 0xd0000000 zephyr.bin; dcache flush; icache flush; cpu 1 release 0xd0000000
102+
103+
104+
Or use the following command to kick zephyr.bin to Cortex-A55 Core0:
105+
106+
.. code-block:: console
107+
108+
fatload mmc 1:1 0xd0000000 zephyr.bin; dcache flush; icache flush; go 0xd0000000
109+
110+
111+
It will display the following console output:
112+
113+
.. code-block:: console
114+
115+
*** Booting Zephyr OS build v3.6.0-4569-g483c01ca11a7 ***
116+
thread_a: Hello World from cpu 0 on imx95_evk_15x15!
117+
thread_b: Hello World from cpu 0 on imx95_evk_15x15!
118+
thread_a: Hello World from cpu 0 on imx95_evk_15x15!
119+
thread_b: Hello World from cpu 0 on imx95_evk_15x15!
120+
thread_a: Hello World from cpu 0 on imx95_evk_15x15!
121+
122+
.. _System Control and Management Interface (SCMI):
123+
https://developer.arm.com/documentation/den0056/latest/
124+
125+
.. _i.MX Linux BSP release:
126+
https://www.nxp.com/design/design-center/software/embedded-software/i-mx-software/embedded-linux-for-i-mx-applications-processors:IMXLINUX
127+
128+
.. _MCUX SDK release:
129+
https://mcuxpresso.nxp.com/
130+
131+
References
132+
==========
133+
134+
More information can refer to NXP official website:
135+
`NXP website`_.
136+
137+
.. _NXP website:
138+
https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-9-processors/i-mx-95-applications-processor-family-high-performance-safety-enabled-platform-with-eiq-neutron-npu:iMX95
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+
#include <nxp/nxp_imx/mimx9596cvtxn-pinctrl.dtsi>
7+
8+
&pinctrl {
9+
10+
lpuart1_default: lpuart1_default {
11+
group0 {
12+
pinmux = <&iomuxc_uart1_rxd_lpuart_rx_lpuart1_rx>,
13+
<&iomuxc_uart1_txd_lpuart_tx_lpuart1_tx>;
14+
bias-pull-up;
15+
slew-rate = "slightly_fast";
16+
drive-strength = "x4";
17+
};
18+
};
19+
20+
lpuart3_default: lpuart3_default {
21+
group0 {
22+
pinmux = <&iomuxc_gpio_io15_lpuart_rx_lpuart3_rx>,
23+
<&iomuxc_gpio_io14_lpuart_tx_lpuart3_tx>;
24+
bias-pull-up;
25+
slew-rate = "slightly_fast";
26+
drive-strength = "x4";
27+
};
28+
};
29+
};
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Copyright 2025 NXP
3+
*
4+
* SPDX-License-Identifier: Apache-2.0
5+
*/
6+
7+
/dts-v1/;
8+
9+
#include <nxp/nxp_mimx95_a55.dtsi>
10+
#include "imx95_evk_15x15-pinctrl.dtsi"
11+
12+
/ {
13+
model = "NXP i.MX95 15x15 A55";
14+
compatible = "fsl,mimx95";
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+
cpus {
24+
cpu@0 {
25+
status = "disabled";
26+
};
27+
28+
cpu@100 {
29+
status = "disabled";
30+
};
31+
32+
cpu@200 {
33+
status = "disabled";
34+
};
35+
36+
cpu@300 {
37+
status = "disabled";
38+
};
39+
40+
cpu@400 {
41+
status = "disabled";
42+
};
43+
};
44+
45+
dram: memory@d0000000 {
46+
reg = <0xd0000000 DT_SIZE_M(1)>;
47+
};
48+
};
49+
50+
&lpuart1 {
51+
status = "okay";
52+
current-speed = <115200>;
53+
pinctrl-0 = <&lpuart1_default>;
54+
pinctrl-names = "default";
55+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#
2+
# Copyright 2025 NXP
3+
#
4+
# SPDX-License-Identifier: Apache-2.0
5+
#
6+
7+
identifier: imx95_evk_15x15/mimx9596/a55
8+
name: NXP i.MX95 15x15 EVK A55
9+
type: mcu
10+
arch: arm64
11+
toolchain:
12+
- zephyr
13+
- cross-compile
14+
ram: 1024
15+
supported:
16+
- uart
17+
- counter
18+
vendor: nxp
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
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+
CONFIG_MAX_XLAT_TABLES=64
12+
13+
# Cache Options
14+
CONFIG_CACHE_MANAGEMENT=y
15+
CONFIG_DCACHE_LINE_SIZE_DETECT=y
16+
CONFIG_ICACHE_LINE_SIZE_DETECT=y
17+
18+
# Zephyr Kernel Configuration
19+
CONFIG_XIP=n
20+
CONFIG_KERNEL_DIRECT_MAP=y
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
31+
32+
CONFIG_MBOX=y
33+
CONFIG_ARM_SCMI=y
34+
CONFIG_INTC_INIT_PRIORITY=2
35+
CONFIG_MBOX_INIT_PRIORITY=3

soc/nxp/imx/imx9/imx95/Kconfig.soc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,12 @@ config SOC_MIMX9596_A55
2020
config SOC
2121
default "mimx9596" if SOC_MIMX9596
2222

23+
config SOC_PART_NUMBER_MIMX9596AVTXN
24+
bool
25+
2326
config SOC_PART_NUMBER_MIMX9596AVZXN
2427
bool
2528

2629
config SOC_PART_NUMBER
30+
default "MIMX9596AVTXN" if SOC_PART_NUMBER_MIMX9596AVTXN
2731
default "MIMX9596AVZXN" if SOC_PART_NUMBER_MIMX9596AVZXN

west.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ manifest:
205205
groups:
206206
- hal
207207
- name: hal_nxp
208-
revision: d0e49d63ac74208e183ed47ebb4bf8d490ab63fb
208+
revision: cebb23d4912114df0f1ca356df5bdb1c079dd82f
209209
path: modules/hal/nxp
210210
groups:
211211
- hal

0 commit comments

Comments
 (0)