blob: ff4a26eabe6dc521534d5f83ffaddd0e8f8f9e84 [file] [log] [blame]
.. zephyr:board:: frdm_imx93
Overview
********
The FRDM-IMX93 board is a low-cost and compact platform designed to show
the most commonly used features of the i.MX 93 Applications Processor in a
small and low cost package. The FRDM-IMX93 board is an entry-level development
board, which helps developers to get familiar with the processor before
investing a large amount of resources in more specific designs.
i.MX93 MPU is composed of one cluster of 2x Cortex®-A55 cores and a single
Cortex®-M33 core. Zephyr RTOS is ported on Cortex®-A55 core.
Hardware
********
- i.MX 93 applications processor
- The processor integrates up to two Arm Cortex-A55 cores, and supports
built-in Arm Cortex-M33 core.
- RAM: 2GB LPDDR4
- Storage:
- SanDisk 16GB eMMC5.1
- microSD Socket
- Wireless:
- Murata Type-2EL (SDIO+UART+SPI) module. It is based on NXP IW612 SoC,
which supports dual-band (2.4 GHz /5 GHz) 1x1 Wi-Fi 6, Bluetooth 5.2,
and 802.15.4
- USB:
- One USB 2.0 Type C connector
- One USB 2.0 Type A connector
- Ethernet
- PCI-E M.2
- Connectors:
- 40-Pin Dual Row Header
- LEDs:
- 1x Power status LED
- 1x RGB LED
- Debug
- JTAG 3-pin connector
- USB-C port for UART debug, two COM ports for A55 and M33
Supported Features
==================
.. zephyr:board-supported-hw::
Devices
========
System Clock
------------
This board configuration uses a system clock frequency of 24 MHz.
Cortex-A55 Core runs up to 1.7 GHz.
Cortex-M33 Core runs up to 200MHz in which SYSTICK runs on same frequency.
Serial Port
-----------
This board configuration uses a single serial communication channel with the
CPU's UART2 for A55 core and M33 core.
User Button GPIO Option
--------------------------
The user buttons USER_BTN1 and USER_BTN2 are connected to onboard GPIO expander
PCAL6524 by default, but can be changed to connect to FRDM-IMX93 GPIO. A devicetree
overlay is included to support this.
Run following command to test user buttons connected to FRDM-IMX93 GPIO:
.. zephyr-app-commands::
:zephyr-app: samples/basic/button
:host-os: unix
:board: frdm_imx93/mimx9352/a55
:goals: build
:gen-args: -DEXTRA_DTC_OVERLAY_FILE=frdm_imx93_mimx9352_native_btn.overlay
Note: The overlay only supports ``mimx9352/a55``, but can be extended to support
``mimx9352/m33`` if I2C and PCAL6524 is enabled.
Programming and Debugging (A55)
*******************************
U-Boot "cpu" command is used to load and kick Zephyr to Cortex-A secondary Core, Currently
it is supported in : `Real-Time Edge U-Boot`_ (use the branch "uboot_vxxxx.xx-y.y.y,
xxxx.xx is uboot version and y.y.y is Real-Time Edge Software version, for example
"uboot_v2023.04-2.9.0" branch is U-Boot v2023.04 used in Real-Time Edge Software release
v2.9.0), and pre-build images and user guide can be found at `Real-Time Edge Software`_.
.. _Real-Time Edge U-Boot:
https://github.com/nxp-real-time-edge-sw/real-time-edge-uboot
.. _Real-Time Edge Software:
https://www.nxp.com/rtedge
Copy the compiled ``zephyr.bin`` to the first FAT partition 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 kick zephyr.bin to Cortex-A55 Core1:
.. code-block:: console
fatload mmc 1:1 0xd0000000 zephyr.bin; dcache flush; icache flush; cpu 1 release 0xd0000000
Or use the following command to kick zephyr.bin to Cortex-A55 Core0:
.. code-block:: console
fatload mmc 1:1 0xd0000000 zephyr.bin; dcache off; icache flush; go 0xd0000000
Use this configuration to run basic Zephyr applications and kernel tests,
for example, with the :zephyr:code-sample:`synchronization` sample:
.. zephyr-app-commands::
:zephyr-app: samples/synchronization
:host-os: unix
:board: frdm_imx93/mimx9352/a55
:goals: build
This will build an image with the synchronization sample app, boot it and
display the following console output:
.. code-block:: console
*** Booting Zephyr OS build v4.1.0-41-g6395333e3d18 ***
thread_a: Hello World from cpu 0 on frdm_imx93!
thread_b: Hello World from cpu 0 on frdm_imx93!
thread_a: Hello World from cpu 0 on frdm_imx93!
thread_b: Hello World from cpu 0 on frdm_imx93!
System Reboot (A55)
===================
Currently i.MX93 only support cold reboot and doesn't support warm reboot.
Use this configuratiuon to verify cold reboot with :zephyr:code-sample:`shell-module`
sample:
.. zephyr-app-commands::
:zephyr-app: samples/subsys/shell/shell_module
:host-os: unix
:board: frdm_imx93/mimx9352/a55
:goals: build
This will build an image with the shell sample app, boot it and execute
kernel reboot command in shell command line:
.. code-block:: console
uart:~$ kernel reboot cold
.. include:: ../../common/board-footer.rst
:start-after: nxp-board-footer