1.. zephyr:board:: imx8mn_evk
2
3Overview
4********
5
6i.MX8M Nano LPDDR4 EVK board is based on NXP i.MX8M Nano applications
7processor, composed of a quad Cortex®-A53 cluster and a single Cortex®-M7 core.
8Zephyr OS is ported to run on the Cortex®-A53 core.
9
10- Board features:
11
12  - RAM: 2GB LPDDR4
13  - Storage:
14
15    - SanDisk 16GB eMMC5.1
16    - Micron 32MB QSPI NOR
17    - microSD Socket
18  - Wireless:
19
20    - WiFi: 2.4/5GHz IEEE 802.11b/g/n
21    - Bluetooth: v4.1
22  - USB:
23
24    - OTG - 2x type C
25  - Ethernet
26  - PCI-E M.2
27  - Connectors:
28
29    - 40-Pin Dual Row Header
30  - LEDs:
31
32    - 1x Power status LED
33    - 1x UART LED
34  - Debug
35
36    - JTAG 20-pin connector
37    - MicroUSB for UART debug, two COM ports for A53 and M7
38
39More information about the board can be found at the
40`NXP website`_.
41
42Supported Features
43==================
44
45The Zephyr mimx8mn_evk board configuration supports the following hardware
46features:
47
48+-----------+------------+-------------------------------------+
49| Interface | Controller | Driver/Component                    |
50+===========+============+=====================================+
51| GIC-v3    | on-chip    | interrupt controller                |
52+-----------+------------+-------------------------------------+
53| ARM TIMER | on-chip    | system clock                        |
54+-----------+------------+-------------------------------------+
55| CLOCK     | on-chip    | clock_control                       |
56+-----------+------------+-------------------------------------+
57| PINMUX    | on-chip    | pinmux                              |
58+-----------+------------+-------------------------------------+
59| RDC       | on-chip    | Resource Domain Controller          |
60+-----------+------------+-------------------------------------+
61| UART      | on-chip    | serial port                         |
62+-----------+------------+-------------------------------------+
63| GPT       | on-chip    | timer                               |
64+-----------+------------+-------------------------------------+
65| ENET      | on-chip    | ethernet port                       |
66+-----------+------------+-------------------------------------+
67
68Devices
69========
70System Clock
71------------
72
73This board configuration uses a system clock frequency of 8 MHz.
74
75Serial Port
76-----------
77
78This board configuration uses a single serial communication channel with the
79CPU's UART4.
80
81Programming and Debugging
82*************************
83
84U-Boot "cpu" command is used to load and kick Zephyr to Cortex-A secondary Core, Currently
85it has been supported in latest U-Boot version by `patch serials`_.
86
87.. _patch serials:
88   https://patchwork.ozlabs.org/project/uboot/list/?series=417536&archive=both&state=*
89
90Copy the compiled ``zephyr.bin`` to the first FAT partition of the SD card and
91plug the SD card into the board. Power it up and stop the u-boot execution at
92prompt.
93
94Use U-Boot to load and kick zephyr.bin to Cortex-A53 Core0:
95
96.. code-block:: console
97
98    fatload mmc 1:1 0x93c00000 zephyr.bin; dcache flush; icache flush; go 0x93c00000
99
100Or kick zephyr.bin to the other Cortex-A53 Core, for example Core2:
101
102.. code-block:: console
103
104    fatload mmc 1:1 0x93c00000 zephyr.bin; dcache flush; icache flush; cpu 2 release 0x93c00000
105
106
107Use this configuration to run basic Zephyr applications and kernel tests,
108for example, with the :zephyr:code-sample:`synchronization` sample:
109
110.. zephyr-app-commands::
111   :zephyr-app: samples/synchronization
112   :host-os: unix
113   :board: imx8mn_evk/mimx8mn6/a53
114   :goals: run
115
116This will build an image with the synchronization sample app, boot it and
117display the following ram console output:
118
119.. code-block:: console
120
121    *** Booting Zephyr OS build zephyr-v3.1.0-3575-g44dd713bd883  ***
122    thread_a: Hello World from cpu 0 on mimx8mn_evk_a53!
123    thread_b: Hello World from cpu 0 on mimx8mn_evk_a53!
124    thread_a: Hello World from cpu 0 on mimx8mn_evk_a53!
125    thread_b: Hello World from cpu 0 on mimx8mn_evk_a53!
126    thread_a: Hello World from cpu 0 on mimx8mn_evk_a53!
127
128Use Jailhouse hypervisor, after root cell linux is up:
129
130.. code-block:: console
131
132    #jailhouse enable imx8mn.cell
133    #jailhouse cell create imx8mn-zephyr.cell
134    #jailhouse cell load 1 zephyr.bin -a 0x93c00000
135    #jailhouse cell start 1
136
137References
138==========
139
140.. _NXP website:
141   https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/evaluation-kit-for-the-i-mx-8m-nano-applications-processor:8MNANOD4-EVK
142
143.. _i.MX 8M Applications Processor Reference Manual:
144   https://www.nxp.com/webapp/Download?colCode=IMX8MNRM
145