boards: imx943_evk: add i.MX 943 EVK board support for A55
The IMX943 EVK board is a design and evaluation platform based on the NXP i.MX 943 processor. Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
This commit is contained in:
parent
d47b473b85
commit
8c46895d48
8 changed files with 259 additions and 0 deletions
8
boards/nxp/imx943_evk/Kconfig.defconfig
Normal file
8
boards/nxp/imx943_evk/Kconfig.defconfig
Normal file
|
@ -0,0 +1,8 @@
|
|||
# Copyright 2025 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config INTC_INIT_PRIORITY
|
||||
default 2
|
||||
|
||||
config MBOX_INIT_PRIORITY
|
||||
default 3
|
6
boards/nxp/imx943_evk/Kconfig.imx943_evk
Normal file
6
boards/nxp/imx943_evk/Kconfig.imx943_evk
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Copyright 2025 NXP
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_IMX943_EVK
|
||||
select SOC_MIMX94398_A55 if BOARD_IMX943_EVK_MIMX94398_A55
|
||||
select SOC_PART_NUMBER_MIMX94398AVKM
|
6
boards/nxp/imx943_evk/board.yml
Normal file
6
boards/nxp/imx943_evk/board.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
board:
|
||||
name: imx943_evk
|
||||
full_name: i.MX943 EVK
|
||||
vendor: nxp
|
||||
socs:
|
||||
- name: mimx94398
|
124
boards/nxp/imx943_evk/doc/index.rst
Normal file
124
boards/nxp/imx943_evk/doc/index.rst
Normal file
|
@ -0,0 +1,124 @@
|
|||
.. zephyr:board:: imx943_evk
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The IMX943LP5EVK-19 board is a design and evaluation platform based on the
|
||||
NXP i.MX 943 processor. The i.MX 943 processor integrates up to four Arm
|
||||
Cortex-A55 cores, along with two Arm Cortex-M33 cores and two Arm Cortex-M7
|
||||
cores for functional safety. With PLCs, I/O controllers, V2X accelerators,
|
||||
ML acceleration, energy management, and advanced security, the i.MX 943
|
||||
processor provides optimized performance and power efficiency for industrial,
|
||||
IoT, and automotive devices. The i.MX943 device on the board comes in a
|
||||
compact 19 x 19 mm package.
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
- i.MX 943 automotive applications processor
|
||||
|
||||
- The processor integrates up to four Arm Cortex-A55 cores, and supports
|
||||
functional safety with built-in Arm Cortex-M33 and -M7 cores
|
||||
|
||||
- DRAM memory: 8-Gbit LPDDR5 DRAM
|
||||
- XSPI interface: 64 MB octal SPI NOR flash memory
|
||||
- eMMC: 32 GB eMMC NAND flash memory
|
||||
- uSDHC interface: an SD card slot
|
||||
- USB interface: Two USB Type-C ports
|
||||
- Ethernet interface: seven Ethernet ports
|
||||
- PCIe interface: one M.2 slot and one PCIe x4 slot.
|
||||
- FlexCAN interface: four CAN controller with four CAN connector.
|
||||
- LPUART interface
|
||||
- LPSPI interface
|
||||
- LPI2C interface
|
||||
- SAI interface
|
||||
- MQS interface
|
||||
- MICFIL interface
|
||||
- LVDS interface
|
||||
- ADC interface
|
||||
- SINC interface
|
||||
- Debug interface
|
||||
- One USB-to-UART/MPSSE device, FT4232H
|
||||
- One USB 3.2 Type-C connector (J15) for FT4232H provides quad serial ports
|
||||
- JTAG header J16
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
.. zephyr:board-supported-hw::
|
||||
|
||||
System Clock
|
||||
------------
|
||||
|
||||
This board configuration uses a system clock frequency of 24 MHz for Cortex-A55.
|
||||
Cortex-A55 Core runs up to 1.7 GHz.
|
||||
|
||||
Serial Port
|
||||
-----------
|
||||
|
||||
This board configuration uses a single serial communication channel with the
|
||||
CPU's UART1 for Cortex-A55.
|
||||
|
||||
Programming and Debugging (A55)
|
||||
*******************************
|
||||
|
||||
.. zephyr:board-supported-runners::
|
||||
|
||||
Boot Zephyr by Using U-Boot Command
|
||||
===================================
|
||||
|
||||
U-Boot "go" command can be used to start Zephyr on A55 Core0.
|
||||
|
||||
Dependency
|
||||
----------
|
||||
|
||||
Need to disable all watchdog in U-Boot, otherwise, watchdog will reset the board
|
||||
after Zephyr start up from the same A55 Core.
|
||||
|
||||
Step 1: Build Zephyr application
|
||||
--------------------------------
|
||||
|
||||
Here is an example for the :zephyr:code-sample:`hello_world` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:host-os: unix
|
||||
:board: imx943_evk/mimx94398/a55
|
||||
:goals: build
|
||||
|
||||
Step 2: Download Zephyr Image into DDR Memory
|
||||
---------------------------------------------
|
||||
|
||||
Firstly need to download Zephyr binary image into DDR memory, it can use tftp:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
tftp 0xd0000000 zephyr.bin
|
||||
|
||||
Or copy the Zephyr image ``zephyr.bin`` SD card and plug the card into the board, for example
|
||||
if copy to the FAT partition of the SD card, use the following U-Boot command to load the image
|
||||
into DDR memory (assuming the SD card is dev 1, fat partition ID is 1, they could be changed
|
||||
based on actual setup):
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
fatload mmc 1:1 0xd0000000 zephyr.bin;
|
||||
|
||||
Step 3: Boot Zephyr
|
||||
-------------------
|
||||
|
||||
Use the following command to boot Zephyr on the core0:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
dcache off; icache flush; go 0xd0000000;
|
||||
|
||||
Then the following log could be found on UART1 console:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
*** Booting Zephyr OS build v4.1.0-3650-gdb71736adb68 ***
|
||||
Hello World! imx943_evk/mimx94398/a55
|
||||
|
||||
.. include:: ../../common/board-footer.rst
|
||||
:start-after: nxp-board-footer
|
18
boards/nxp/imx943_evk/imx943_evk-pinctrl.dtsi
Normal file
18
boards/nxp/imx943_evk/imx943_evk-pinctrl.dtsi
Normal file
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
* Copyright 2025 NXP
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <nxp/nxp_imx/mimx94398avkm-pinctrl.dtsi>
|
||||
|
||||
&pinctrl {
|
||||
lpuart1_default: lpuart1_default {
|
||||
group0 {
|
||||
pinmux = <&iomuxc_uart1_rxd_lpuart_rx_lpuart1_rx>,
|
||||
<&iomuxc_uart1_txd_lpuart_tx_lpuart1_tx>;
|
||||
bias-pull-up;
|
||||
slew-rate = "slightly_fast";
|
||||
drive-strength = "x4";
|
||||
};
|
||||
};
|
||||
};
|
47
boards/nxp/imx943_evk/imx943_evk_mimx94398_a55.dts
Normal file
47
boards/nxp/imx943_evk/imx943_evk_mimx94398_a55.dts
Normal file
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Copyright 2025 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <nxp/nxp_mimx943_a55.dtsi>
|
||||
#include "imx943_evk-pinctrl.dtsi"
|
||||
|
||||
/ {
|
||||
model = "NXP i.MX943 A55";
|
||||
compatible = "fsl,mimx943";
|
||||
|
||||
chosen {
|
||||
zephyr,console = &lpuart1;
|
||||
zephyr,shell-uart = &lpuart1;
|
||||
/* sram node actually locates at DDR DRAM */
|
||||
zephyr,sram = &dram;
|
||||
};
|
||||
|
||||
cpus {
|
||||
cpu@0 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
cpu@100 {
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
cpu@200 {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
dram: memory@d0000000 {
|
||||
reg = <0xd0000000 DT_SIZE_M(1)>;
|
||||
};
|
||||
};
|
||||
|
||||
&lpuart1 {
|
||||
status = "okay";
|
||||
current-speed = <115200>;
|
||||
pinctrl-0 = <&lpuart1_default>;
|
||||
pinctrl-names = "default";
|
||||
};
|
17
boards/nxp/imx943_evk/imx943_evk_mimx94398_a55.yaml
Normal file
17
boards/nxp/imx943_evk/imx943_evk_mimx94398_a55.yaml
Normal file
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright 2025 NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
identifier: imx943_evk/mimx94398/a55
|
||||
name: NXP i.MX943 EVK A55
|
||||
type: mcu
|
||||
arch: arm64
|
||||
toolchain:
|
||||
- zephyr
|
||||
- cross-compile
|
||||
ram: 1024
|
||||
supported:
|
||||
- uart
|
||||
vendor: nxp
|
33
boards/nxp/imx943_evk/imx943_evk_mimx94398_a55_defconfig
Normal file
33
boards/nxp/imx943_evk/imx943_evk_mimx94398_a55_defconfig
Normal file
|
@ -0,0 +1,33 @@
|
|||
#
|
||||
# Copyright 2025 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=24
|
||||
|
||||
# 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
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
|
||||
# Enable Console
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
CONFIG_MBOX=y
|
||||
CONFIG_ARM_SCMI=y
|
Loading…
Add table
Add a link
Reference in a new issue