1.. zephyr:board:: mimxrt1180_evk
2
3Overview
4********
5
6The dual core i.MX RT1180 runs on the Cortex-M33 core at 240 MHz and on the
7Cortex-M7 at 792 MHz. The i.MX RT1180 MCU offers support over a wide
8temperature range and is qualified for consumer, industrial and automotive
9markets.
10
11Hardware
12********
13
14- MIMXRT1189CVM8B MCU
15
16  - 240MHz Cortex-M33 & 792Mhz Cortex-M7
17  - 1.5MB SRAM with 512KB of TCM for Cortex-M7 and 256KB of TCM for Cortex-M4
18
19- Memory
20
21  - 512 Mbit SDRAM
22  - 128 Mbit QSPI Flash
23  - 512 Mbit HYPER RAM
24  - TF socket for SD card
25
26- Ethernet
27
28  - 1000 Mbit/s Ethernet PHY
29
30- USB
31
32  - 2* USB 2.0 OTG connector
33
34- Audio
35
36  - 3.5 mm audio stereo headphone jack
37  - Board-mounted microphone
38  - Left and right speaker out connectors
39
40- Power
41
42  - 5 V DC jack
43
44- Debug
45
46  - JTAG 20-pin connector
47  - MCU-Link with DAPLink
48
49- Expansion port
50
51  - Arduino interface
52
53- CAN bus connector
54
55For more information about the MIMXRT1180 SoC and MIMXRT1180-EVK board, see
56these references:
57
58- `i.MX RT1180 Website`_
59- `MIMXRT1180-EVK Website`_
60
61External Memory
62===============
63
64This platform has the following external memories:
65
66+--------------------+------------+-------------------------------------+
67| Device             | Controller | Status                              |
68+====================+============+=====================================+
69| W9825G6KH          | SEMC       | Enabled via device configuration    |
70|                    |            | data block, which sets up SEMC at   |
71|                    |            | boot time                           |
72+--------------------+------------+-------------------------------------+
73| W25Q128JWSIQ       | FLEXSPI    | Enabled via flash configuration     |
74|                    |            | block, which sets up FLEXSPI at     |
75|                    |            | boot time.                          |
76+--------------------+------------+-------------------------------------+
77
78Supported Features
79==================
80
81NXP considers the MIMXRT1180-EVK as the superset board for the i.MX RT118x
82family of MCUs.  This board is a focus for NXP's Full Platform Support for
83Zephyr, to better enable the entire RT118x family.  NXP prioritizes enabling
84this board with new support for Zephyr features.  The mimxrt1180_evk board
85configuration supports the following hardware features:
86
87+-----------+------------+-------------------------------------+
88| Interface | Controller | Driver/Component                    |
89+===========+============+=====================================+
90| NVIC      | on-chip    | nested vector interrupt controller  |
91+-----------+------------+-------------------------------------+
92| SYSTICK   | on-chip    | systick                             |
93+-----------+------------+-------------------------------------+
94| GPIO      | on-chip    | gpio                                |
95+-----------+------------+-------------------------------------+
96| GPT       | on-chip    | counter                             |
97+-----------+------------+-------------------------------------+
98| QTMR      | on-chip    | counter                             |
99+-----------+------------+-------------------------------------+
100| UART      | on-chip    | serial port-polling;                |
101|           |            | serial port-interrupt               |
102+-----------+------------+-------------------------------------+
103| I2C       | on-chip    | i2c                                 |
104+-----------+------------+-------------------------------------+
105| ACMP      | on-chip    | sensor                              |
106+-----------+------------+-------------------------------------+
107| ADC       | on-chip    | adc                                 |
108+-----------+------------+-------------------------------------+
109| NETC      | on-chip    | dsa, ethernet, mdio                 |
110+-----------+------------+-------------------------------------+
111| CAN       | on-chip    | can                                 |
112+-----------+------------+-------------------------------------+
113| LPTMR     | on-chip    | counter                             |
114+-----------+------------+-------------------------------------+
115| FLEXSPI   | on-chip    | flash programming                   |
116+-----------+------------+-------------------------------------+
117| PWM       | on-chip    | pwm                                 |
118+-----------+------------+-------------------------------------+
119| PWM       | on-chip    | tpm                                 |
120+-----------+------------+-------------------------------------+
121| I3C       | on-chip    | i3c                                 |
122+-----------+------------+-------------------------------------+
123| DMA       | on-chip    | dma                                 |
124+-----------+------------+-------------------------------------+
125| SPI       | on-chip    | spi                                 |
126+-----------+------------+-------------------------------------+
127| RTWDOG    | on-chip    | rtwdog                              |
128+-----------+------------+-------------------------------------+
129| HWINFO    | on-chip    | Unique device serial number         |
130+-----------+------------+-------------------------------------+
131| USB       | on-chip    | USB device                          |
132+-----------+------------+-------------------------------------+
133| SDHC      | on-chip    | SD host controller                  |
134+-----------+------------+-------------------------------------+
135
136The default configuration can be found in the defconfig file:
137:zephyr_file:`boards/nxp/mimxrt1180_evk/mimxrt1180_evk_mimxrt1189_cm33_defconfig`
138
139Other hardware features are not currently supported by the port.
140
141
142Connections and I/Os
143====================
144
145The MIMXRT1180 SoC has six pairs of pinmux/gpio controllers.
146
147+---------------+-----------------+---------------------------+
148| Name          | Function        | Usage                     |
149+===============+=================+===========================+
150| GPIO_AON_04   | GPIO            | SW8                       |
151+---------------+-----------------+---------------------------+
152| GPIO_AD_27    | GPIO            | LED                       |
153+---------------+-----------------+---------------------------+
154| GPIO_AON_08   | LPUART1_TX      | UART Console M33 core     |
155+---------------+-----------------+---------------------------+
156| GPIO_AON_09   | LPUART1_RX      | UART Console M33 core     |
157+---------------+---------------------------------------------+
158| GPIO_AON_19   | LPUART12_TX     | UART Console M7 core      |
159+---------------+-----------------+---------------------------+
160| GPIO_AON_20   | LPUART12_RX     | UART Console M7 core      |
161+---------------+-----------------+---------------------------+
162| GPIO_SD_B1_00 | SPI1_CS0        | spi                       |
163+---------------+---------------------------------------------+
164| GPIO_SD_B1_01 | SPI1_CLK        | spi                       |
165+---------------+---------------------------------------------+
166| GPIO_SD_B1_02 | SPI1_SDO        | spi                       |
167+---------------+---------------------------------------------+
168| GPIO_SD_B1_03 | SPI1_SDI        | spi                       |
169+---------------+-----------------+---------------------------+
170
171UART for M7 core is connected to USB-to-UART J60 connector.
172Or user can use open JP7 Jumper to enable second UART on MCU LINK J53 connector.
173
174System Clock
175============
176
177The MIMXRT1180 SoC is configured to use SysTick as the system clock source,
178running at 240MHz. When targeting the M7 core, SysTick will also be used,
179running at 792MHz
180
181Serial Port
182===========
183
184The MIMXRT1180 SoC has 12 UARTs. LPUART1 is configured for the CM33 console, the LPUART12 is
185configured for the CM7 console core and the remaining are not used.
186
187Ethernet
188========
189
190NETC Ethernet driver supports to manage the Physical Station Interface (PSI).
191NETC DSA driver supports to manage switch ports. Current DSA support is with
192limitation that only switch function is available without management via
193DSA master port. DSA master port support is TODO work.
194
195.. code-block:: none
196
197                   +--------+                  +--------+
198                   | ENETC1 |                  | ENETC0 |
199                   |        |                  |        |
200                   | Pseudo |                  |  1G    |
201                   |  MAC   |                  |  MAC   |
202                   +--------+                  +--------+
203                       | zero copy interface       |
204   +-------------- +--------+----------------+     |
205   |               | Pseudo |                |     |
206   |               |  MAC   |                |     |
207   |               |        |                |     |
208   |               | Port 4 |                |     |
209   |               +--------+                |     |
210   |           SWITCH       CORE             |     |
211   +--------+ +--------+ +--------+ +--------+     |
212   | Port 0 | | Port 1 | | Port 2 | | Port 3 |     |
213   |        | |        | |        | |        |     |
214   |  1G    | |  1G    | |  1G    | |  1G    |     |
215   |  MAC   | |  MAC   | |  MAC   | |  MAC   |     |
216   +--------+-+--------+-+--------+-+--------+     |
217       |          |          |          |          |
218   NETC External Interfaces (4 switch ports, 1 end-point port)
219
220Programming and Debugging
221*************************
222
223Build and flash applications as usual (see :ref:`build_an_application` and
224:ref:`application_run` for more details).
225
226Configuring a Debug Probe
227=========================
228
229LinkServer is the default runner for this board.
230A debug probe is used for both flashing and debugging the board. This board is
231configured by default to use the :ref:`mcu-link-cmsis-onboard-debug-probe`.
232The :ref:`pyocd-debug-host-tools` do not yet support programming the
233external flashes on this board. Use one of the other supported debug probes
234below.
235
236.. _Using J-Link RT1180:
237
238Using J-Link
239------------
240
241Please ensure to use a version of JLINK above V7.94g and jumper JP5 is installed if using
242external jlink plus on J37 as debugger.
243
244When debugging cm33 core, need to ensure the SW5 on "0100" mode.
245When debugging cm7 core, need to ensure the SW5 on "0001" mode.
246(Only support run cm7 image when debugging due to default boot core on board is cm33 core)
247
248Install the :ref:`jlink-debug-host-tools` and make sure they are in your search
249path.
250
251There are two options: the onboard debug circuit can be updated with Segger
252J-Link firmware, or :ref:`jlink-external-debug-probe` can be attached to the
253EVK.
254
255
256Using Linkserver
257----------------
258
259Please ensure to use a version of Linkserver above V1.5.30 and jumper JP5 is uninstalled (default setting).
260
261When debugging cm33 core, need to ensure the SW5 on "0100" mode.
262When debugging cm7 core, need to ensure the SW5 on "0001" mode.
263(Only support run cm7 image when debugging due to default boot core on board is cm33 core)
264
265Dual Core samples Debugging
266***************************
267
268When debugging dual core samples, need to ensure the SW5 on "0100" mode.
269The CM33 core is responsible for copying and starting the CM7.
270To debug the CM7 it is useful to put infinite while loop either in reset vector or
271into main function and attach via debugger to CM7 core.
272
273CM7 core can be started again only after reset, so after flashing ensure to reset board.
274
275Configuring a Console
276=====================
277
278Regardless of your choice in debug probe, we will use the MCU-Link
279microcontroller as a usb-to-serial adapter for the serial console. Check that
280jumpers JP5 and JP3 are **on** (they are on by default when boards ship from
281the factory) to connect UART signals to the MCU-Link microcontroller.
282
283Connect a USB cable from your PC to J53.
284
285Use the following settings with your serial terminal of choice (minicom, putty,
286etc.):
287
288- Speed: 115200
289- Data: 8 bits
290- Parity: None
291- Stop bits: 1
292
293Flashing
294========
295
296Here is an example for the :zephyr:code-sample:`hello_world` application on cm33 core.
297
298Before power on the board, make sure SW5 is set to 0100b
299
300.. zephyr-app-commands::
301   :zephyr-app: samples/hello_world
302   :board: mimxrt1180_evk/mimxrt1189/cm33
303   :goals: flash
304
305Power off the board, then power on the board and
306open a serial terminal, reset the board (press the SW3 button), and you should
307see the following message in the terminal:
308
309.. code-block:: console
310
311   ***** Booting Zephyr OS v3.7.0-xxx-xxxxxxxxxxxxx *****
312   Hello World! mimxrt1180_evk/mimxrt1189/cm33
313
314Debugging
315=========
316
317Here is an example for the :zephyr:code-sample:`hello_world` application.
318
319.. zephyr-app-commands::
320   :zephyr-app: samples/hello_world
321   :board: mimxrt1180_evk/mimxrt1189/cm33
322   :goals: debug
323
324Open a serial terminal, step through the application in your debugger, and you
325should see the following message in the terminal:
326
327.. code-block:: console
328
329   ***** Booting Zephyr OS v3.7.0-xxx-xxxxxxxxxxxxx *****
330   Hello World! mimxrt1180_evk/mimxrt1189/cm33
331
332.. include:: ../../common/board-footer.rst
333   :start-after: nxp-board-footer
334
335.. _MIMXRT1180-EVK Website:
336   https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/i-mx-rt1180-evaluation-kit:MIMXRT1180-EVK
337
338.. _i.MX RT1180 Website:
339   https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/i-mx-rt-crossover-mcus/i-mx-rt1180-crossover-mcu-with-tsn-switch-and-edgelock:i.MX-RT1180
340