1.. zephyr:board:: mimxrt1060_evk
2
3Overview
4********
5
6The i.MX RT1060 adds to the industry's first crossover
7processor series and expands the i.MX RT series to three scalable families.
8
9The i.MX RT1060 doubles the On-Chip SRAM to 1MB while keeping pin-to-pin
10compatibility with i.MX RT1050. This series introduces additional features
11ideal for real-time applications such as High-Speed GPIO, CAN FD, and
12synchronous parallel NAND/NOR/PSRAM controller. The i.MX RT1060 runs on the
13Arm® Cortex-M7® core up to 600 MHz.
14
15
16Hardware
17********
18
19- MIMXRT1062DVL6A MCU (600 MHz, 1024 KB on-chip memory)
20
21- Memory
22
23  - 256 Mbit SDRAM
24  - 64 Mbit QSPI Flash
25  - 512 Mbit Hyper Flash
26  - TF socket for SD card
27
28- Display
29
30  - LCD connector
31
32- Ethernet
33
34  - 10/100 Mbit/s Ethernet PHY
35
36- USB
37
38  - USB 2.0 OTG connector
39  - USB 2.0 host connector
40
41- Audio
42
43  - 3.5 mm audio stereo headphone jack
44  - Board-mounted microphone
45  - Left and right speaker out connectors
46
47- Power
48
49  - 5 V DC jack
50
51- Debug
52
53  - JTAG 20-pin connector
54  - OpenSDA with DAPLink
55
56- Sensor
57
58  - FXOS8700CQ 6-axis e-compass
59  - CMOS camera sensor interface
60
61- Expansion port
62
63  - Arduino interface
64
65- CAN bus connector
66
67For more information about the MIMXRT1060 SoC and MIMXRT1060-EVK board, see
68these references:
69
70- `i.MX RT1060 Website`_
71- `i.MX RT1060 Datasheet`_
72- `i.MX RT1060 Reference Manual`_
73- `MIMXRT1060-EVK Website`_
74- `MIMXRT1060-EVK User Guide`_
75- `MIMXRT1060-EVK Schematics`_
76- `MIMXRT1060-EVK Debug Firmware`_
77
78External Memory
79===============
80
81This platform has the following external memories:
82
83+--------------------+------------+-------------------------------------+
84| Device             | Controller | Status                              |
85+====================+============+=====================================+
86| IS25WP064AJBLE     | SEMC       | Enabled via device configuration    |
87|                    |            | data block, which sets up SEMC at   |
88|                    |            | boot time                           |
89+--------------------+------------+-------------------------------------+
90| IS42S16160J        | FLEXSPI    | Enabled via flash configurationn    |
91|                    |            | block, which sets up FLEXSPI at     |
92|                    |            | boot time.                          |
93+--------------------+------------+-------------------------------------+
94
95Supported Features
96==================
97
98The mimxrt1060_evk board configuration supports the hardware features listed
99below.  For additional features not yet supported, please also refer to the
100:zephyr:board:`mimxrt1064_evk` , which is the superset board in NXP's i.MX RT10xx family.
101NXP prioritizes enabling the superset board with NXP's Full Platform Support for
102Zephyr.  Therefore, the mimxrt1064_evk board may have additional features
103already supported, which can also be re-used on this mimxrt1060_evk board:
104
105+-----------+------------+-------------------------------------+
106| Interface | Controller | Driver/Component                    |
107+===========+============+=====================================+
108| NVIC      | on-chip    | nested vector interrupt controller  |
109+-----------+------------+-------------------------------------+
110| SYSTICK   | on-chip    | systick                             |
111+-----------+------------+-------------------------------------+
112| DISPLAY   | on-chip    | eLCDIF. Tested with                 |
113|           |            | :ref:`rk043fn02h_ct`, and           |
114|           |            | :ref:`rk043fn66hs_ctg` shields      |
115+-----------+------------+-------------------------------------+
116| FLASH     | on-chip    | QSPI flash                          |
117+-----------+------------+-------------------------------------+
118| GPIO      | on-chip    | gpio                                |
119+-----------+------------+-------------------------------------+
120| SPI       | on-chip    | spi                                 |
121+-----------+------------+-------------------------------------+
122| I2C       | on-chip    | i2c                                 |
123+-----------+------------+-------------------------------------+
124| WATCHDOG  | on-chip    | watchdog                            |
125+-----------+------------+-------------------------------------+
126| SDHC      | on-chip    | disk access                         |
127+-----------+------------+-------------------------------------+
128| UART      | on-chip    | serial port-polling;                |
129|           |            | serial port-interrupt               |
130+-----------+------------+-------------------------------------+
131| ENET      | on-chip    | ethernet                            |
132+-----------+------------+-------------------------------------+
133| USB       | on-chip    | USB device                          |
134+-----------+------------+-------------------------------------+
135| CAN       | on-chip    | can                                 |
136+-----------+------------+-------------------------------------+
137| DMA       | on-chip    | dma                                 |
138+-----------+------------+-------------------------------------+
139| ADC       | on-chip    | adc                                 |
140+-----------+------------+-------------------------------------+
141| SAI       | on-chip    | i2s                                 |
142+-----------+------------+-------------------------------------+
143| GPT       | on-chip    | gpt                                 |
144+-----------+------------+-------------------------------------+
145| TRNG      | on-chip    | entropy                             |
146+-----------+------------+-------------------------------------+
147| FLEXSPI   | on-chip    | flash programming                   |
148+-----------+------------+-------------------------------------+
149| PIT       | on-chip    | pit                                 |
150+-----------+------------+-------------------------------------+
151
152The default configuration can be found in
153:zephyr_file:`boards/nxp/mimxrt1060_evk/mimxrt1060_evk_mimxrt1062_qspi_defconfig`
154
155Other hardware features are not currently supported by the port.
156
157Connections and I/Os
158====================
159
160The MIMXRT1060 SoC has five pairs of pinmux/gpio controllers.
161
162+---------------+-----------------+---------------------------+
163| Name          | Function        | Usage                     |
164+===============+=================+===========================+
165| GPIO_AD_B0_00 | LPSPI1_SCK      | SPI                       |
166+---------------+-----------------+---------------------------+
167| GPIO_AD_B0_01 | LPSPI1_SDO      | SPI                       |
168+---------------+-----------------+---------------------------+
169| GPIO_AD_B0_02 | LPSPI3_SDI/LCD_RST| SPI/LCD Display         |
170+---------------+-----------------+---------------------------+
171| GPIO_AD_B0_03 | LPSPI3_PCS0     | SPI                       |
172+---------------+-----------------+---------------------------+
173| GPIO_AD_B0_05 | GPIO            | SD Card                   |
174+---------------+-----------------+---------------------------+
175| GPIO_AD_B0_09 | GPIO/ENET_RST   | LED                       |
176+---------------+-----------------+---------------------------+
177| GPIO_AD_B0_10 | GPIO/ENET_INT   | GPIO/Ethernet             |
178+---------------+-----------------+---------------------------+
179| GPIO_AD_B0_11 | GPIO            | Touch Interrupt           |
180+---------------+-----------------+---------------------------+
181| GPIO_AD_B0_12 | LPUART1_TX      | UART Console              |
182+---------------+-----------------+---------------------------+
183| GPIO_AD_B0_13 | LPUART1_RX      | UART Console              |
184+---------------+-----------------+---------------------------+
185| GPIO_AD_B1_00 | LPI2C1_SCL      | I2C                       |
186+---------------+-----------------+---------------------------+
187| GPIO_AD_B1_01 | LPI2C1_SDA      | I2C                       |
188+---------------+-----------------+---------------------------+
189| GPIO_AD_B1_06 | LPUART3_TX      | UART BT HCI               |
190+---------------+-----------------+---------------------------+
191| GPIO_AD_B1_07 | LPUART3_RX      | UART BT HCI               |
192+---------------+-----------------+---------------------------+
193| WAKEUP        | GPIO            | SW0                       |
194+---------------+-----------------+---------------------------+
195| GPIO_B0_00    | LCD_CLK         | LCD Display               |
196+---------------+-----------------+---------------------------+
197| GPIO_B0_01    | LCD_ENABLE      | LCD Display               |
198+---------------+-----------------+---------------------------+
199| GPIO_B0_02    | LCD_HSYNC       | LCD Display               |
200+---------------+-----------------+---------------------------+
201| GPIO_B0_03    | LCD_VSYNC       | LCD Display               |
202+---------------+-----------------+---------------------------+
203| GPIO_B0_04    | LCD_DATA00      | LCD Display               |
204+---------------+-----------------+---------------------------+
205| GPIO_B0_05    | LCD_DATA01      | LCD Display               |
206+---------------+-----------------+---------------------------+
207| GPIO_B0_06    | LCD_DATA02      | LCD Display               |
208+---------------+-----------------+---------------------------+
209| GPIO_B0_07    | LCD_DATA03      | LCD Display               |
210+---------------+-----------------+---------------------------+
211| GPIO_B0_08    | LCD_DATA04      | LCD Display               |
212+---------------+-----------------+---------------------------+
213| GPIO_B0_09    | LCD_DATA05      | LCD Display               |
214+---------------+-----------------+---------------------------+
215| GPIO_B0_10    | LCD_DATA06      | LCD Display               |
216+---------------+-----------------+---------------------------+
217| GPIO_B0_11    | LCD_DATA07      | LCD Display               |
218+---------------+-----------------+---------------------------+
219| GPIO_B0_12    | LCD_DATA08      | LCD Display               |
220+---------------+-----------------+---------------------------+
221| GPIO_B0_13    | LCD_DATA09      | LCD Display               |
222+---------------+-----------------+---------------------------+
223| GPIO_B0_14    | LCD_DATA10      | LCD Display               |
224+---------------+-----------------+---------------------------+
225| GPIO_B0_15    | LCD_DATA11      | LCD Display               |
226+---------------+-----------------+---------------------------+
227| GPIO_B1_00    | LCD_DATA12      | LCD Display               |
228+---------------+-----------------+---------------------------+
229| GPIO_B1_01    | LCD_DATA13      | LCD Display               |
230+---------------+-----------------+---------------------------+
231| GPIO_B1_02    | LCD_DATA14      | LCD Display               |
232+---------------+-----------------+---------------------------+
233| GPIO_B1_03    | LCD_DATA15      | LCD Display               |
234+---------------+-----------------+---------------------------+
235| GPIO_B1_04    | ENET_RX_DATA00  | Ethernet                  |
236+---------------+-----------------+---------------------------+
237| GPIO_B1_05    | ENET_RX_DATA01  | Ethernet                  |
238+---------------+-----------------+---------------------------+
239| GPIO_B1_06    | ENET_RX_EN      | Ethernet                  |
240+---------------+-----------------+---------------------------+
241| GPIO_B1_07    | ENET_TX_DATA00  | Ethernet                  |
242+---------------+-----------------+---------------------------+
243| GPIO_B1_08    | ENET_TX_DATA01  | Ethernet                  |
244+---------------+-----------------+---------------------------+
245| GPIO_B1_09    | ENET_TX_EN      | Ethernet                  |
246+---------------+-----------------+---------------------------+
247| GPIO_B1_10    | ENET_REF_CLK    | Ethernet                  |
248+---------------+-----------------+---------------------------+
249| GPIO_B1_11    | ENET_RX_ER      | Ethernet                  |
250+---------------+-----------------+---------------------------+
251| GPIO_B1_12    | GPIO            | SD Card                   |
252+---------------+-----------------+---------------------------+
253| GPIO_B1_14    | USDHC1_VSELECT  | SD Card                   |
254+---------------+-----------------+---------------------------+
255| GPIO_B1_15    | BACKLIGHT_CTL   | LCD Display               |
256+---------------+-----------------+---------------------------+
257| GPIO_EMC_40   | ENET_MDC        | Ethernet                  |
258+---------------+-----------------+---------------------------+
259| GPIO_EMC_41   | ENET_MDIO       | Ethernet                  |
260+---------------+-----------------+---------------------------+
261| GPIO_AD_B0_09 | ENET_RST        | Ethernet                  |
262+---------------+-----------------+---------------------------+
263| GPIO_AD_B0_10 | ENET_INT        | Ethernet                  |
264+---------------+-----------------+---------------------------+
265| GPIO_SD_B0_00 | USDHC1_CMD/LPSPI1_SCK | SD Card/SPI         |
266+---------------+-----------------+---------------------------+
267| GPIO_SD_B0_01 | USDHC1_CLK/LPSPI1_PCS0 | SD Card/SPI        |
268+---------------+-----------------+---------------------------+
269| GPIO_SD_B0_02 | USDHC1_DATA0/LPSPI1_SDO | SD Card/SPI       |
270+---------------+-----------------+---------------------------+
271| GPIO_SD_B0_03 | USDHC1_DATA1/LPSPI1_SDI | SD Card/SPI       |
272+---------------+-----------------+---------------------------+
273| GPIO_SD_B0_04 | USDHC1_DATA2    | SD Card                   |
274+---------------+-----------------+---------------------------+
275| GPIO_SD_B0_05 | USDHC1_DATA3    | SD Card                   |
276+---------------+-----------------+---------------------------+
277| GPIO_AD_B1_11 | ADC             | ADC1 Channel 0            |
278+---------------+-----------------+---------------------------+
279| GPIO_AD_B1_10 | ADC             | ADC1 Channel 15           |
280+---------------+-----------------+---------------------------+
281| GPIO_AD_B1_09 | SAI1_MCLK       | I2S                       |
282+---------------+-----------------+---------------------------+
283| GPIO_AD_B1_12 | SAI1_RX         | I2S                       |
284+---------------+-----------------+---------------------------+
285| GPIO_AD_B1_13 | SAI1_TX         | I2S                       |
286+---------------+-----------------+---------------------------+
287| GPIO_AD_B1_14 | SAI1_TX_BCLK    | I2S                       |
288+---------------+-----------------+---------------------------+
289| GPIO_AD_B1_15 | SAI1_TX_SYNC    | I2S                       |
290+---------------+-----------------+---------------------------+
291| GPIO_AD_B1_02 | 1588_EVENT2_OUT | 1588                      |
292+---------------+-----------------+---------------------------+
293| GPIO_AD_B1_03 | 1588_EVENT2_IN  | 1588                      |
294+---------------+-----------------+---------------------------+
295
296.. note::
297        In order to use the SPI peripheral on this board, resistors R278, R279,
298        R280 and R281 must be populated with zero ohm resistors.
299
300System Clock
301============
302
303The MIMXRT1060 SoC is configured to use SysTick as the system clock source,
304running at 600MHz.
305
306When power management is enabled, the 32 KHz low frequency
307oscillator on the board will be used as a source for the GPT timer to
308generate a system clock. This clock enables lower power states, at the
309cost of reduced resolution
310
311
312Serial Port
313===========
314
315The MIMXRT1060 SoC has eight UARTs. ``LPUART1`` is configured for the console,
316``LPUART3`` for the Bluetooth Host Controller Interface (BT HCI), and the
317remaining are not used.
318
319Board Targets
320*************
321
322This board has two variants that can be targeted,
323depending on which flash to set as ``zephyr,flash``:
324
325* ``mimxrt1060_evk/mimxrt1062/qspi`` is the default variant for the out of box
326  setup of the board using the qspi flash.
327* ``mimxrt1060_evk/mimxrt1062/hyperflash`` is for a board that has been reworked to use the
328  hyperflash instead of the qspi flash.
329* This board also has two revisions, the EVKA and EVKB. EVKA is the default target for this board.
330  To target EVKB, the board target string would become ``mimxrt1060_evk@B//qspi``, for example.
331
332Programming and Debugging
333*************************
334
335This board supports 3 debug host tools. Please install your preferred host
336tool, then follow the instructions in `Configuring a Debug Probe`_ to
337configure the board appropriately.
338
339* :ref:`jlink-debug-host-tools` (Default, Supported by NXP)
340* :ref:`linkserver-debug-host-tools` (Supported by NXP)
341* :ref:`pyocd-debug-host-tools` (Not Supported by NXP)
342
343Once the host tool and board are configured, build and flash applications
344as usual (see :ref:`build_an_application` and :ref:`application_run` for more
345details).
346
347Configuring a Debug Probe
348=========================
349
350Two revisions of the RT1060 EVK exist. For the RT1060 EVK, J47/J48 are the SWD
351isolation jumpers, J42 is the DFU mode jumper, and the 20 pin JTAG/SWD header
352is present on J21. For the RT1060 EVKB, J9/J10 are the SWD isolation jumpers,
353J12 is the DFU mode jumper, and the 20 pin JTAG/SWD header is present on J2.
354
355.. include:: ../../common/rt1xxx-lpclink2-debug.rst
356   :start-after: rt1xxx-lpclink2-probes
357
358See `Using J-Link with MIMXRT1060-EVK or MIMXRT1064-EVK`_ or `Using J-Link with
359MIMXRT1060-EVKB`_ for more details.
360
361Configuring a Console
362=====================
363
364Regardless of your choice in debug probe, we will use the OpenSDA
365microcontroller as a usb-to-serial adapter for the serial console. Check that
366jumpers J45 and J46 are **on** (they are on by default when boards ship from
367the factory) to connect UART signals to the OpenSDA microcontroller.
368
369Connect a USB cable from your PC to J41.
370
371Use the following settings with your serial terminal of choice (minicom, putty,
372etc.):
373
374- Speed: 115200
375- Data: 8 bits
376- Parity: None
377- Stop bits: 1
378
379Using SWO
380---------
381SWO can be used as a logging backend, by setting ``CONFIG_LOG_BACKEND_SWO=y``.
382Your SWO viewer should be configured with a CPU frequency of 132MHz, and
383SWO frequency of 7500KHz.
384
385Flashing
386========
387
388Here is an example for the :zephyr:code-sample:`hello_world` application.
389
390.. zephyr-app-commands::
391   :zephyr-app: samples/hello_world
392   :board: mimxrt1060_evk//qspi
393   :goals: flash
394
395Open a serial terminal, reset the board (press the SW9 button), and you should
396see the following message in the terminal:
397
398.. code-block:: console
399
400   ***** Booting Zephyr OS v1.14.0-rc1 *****
401   Hello World! mimxrt1060_evk//qspi
402
403Debugging
404=========
405
406Here is an example for the :zephyr:code-sample:`hello_world` application.
407
408.. zephyr-app-commands::
409   :zephyr-app: samples/hello_world
410   :board: mimxrt1060_evk//qspi
411   :goals: debug
412
413Open a serial terminal, step through the application in your debugger, and you
414should see the following message in the terminal:
415
416.. code-block:: console
417
418   ***** Booting Zephyr OS v1.14.0-rc1 *****
419   Hello World! mimxrt1060_evk//qspi
420
421Troubleshooting
422===============
423
424If the debug probe fails to connect with the following error, it's possible
425that the boot header in QSPI flash is invalid or corrupted. The boot header is
426configured by :kconfig:option:`CONFIG_NXP_IMXRT_BOOT_HEADER`.
427
428.. code-block:: console
429
430   Remote debugging using :2331
431   Remote communication error.  Target disconnected.: Connection reset by peer.
432   "monitor" command not supported by this target.
433   "monitor" command not supported by this target.
434   You can't do that when your target is `exec'
435   (gdb) Could not connect to target.
436   Please check power, connection and settings.
437
438You can fix it by erasing and reprogramming the QSPI flash with the following
439steps:
440
441#. Set the SW7 DIP switches to ON-OFF-ON-OFF to prevent booting from QSPI flash.
442
443#. Reset by pressing SW9
444
445#. Run ``west debug`` or ``west flash`` again with a known working Zephyr
446   application.
447
448#. Set the SW7 DIP switches to OFF-OFF-ON-OFF to boot from QSPI flash.
449
450#. Reset by pressing SW9
451
452If the west flash or debug commands fail, and the command hangs while executing
453runners.jlink, confirm the J-Link debug probe is configured, powered, and
454connected to the EVK properly.
455
456.. _MIMXRT1060-EVK Website:
457   https://www.nxp.com/design/development-boards/i-mx-evaluation-and-development-boards/i-mx-rt1060-evaluation-kit:MIMXRT1060-EVKB
458
459.. _MIMXRT1060-EVK User Guide:
460   https://www.nxp.com/webapp/Download?colCode=MIMXRT10601064EKBHUG
461
462.. _MIMXRT1060-EVK Debug Firmware:
463   https://www.nxp.com/docs/en/application-note/AN13206.pdf
464
465.. _MIMXRT1060-EVK Schematics:
466   https://www.nxp.com/webapp/Download?colCode=MIMXRT1060-EVK-DESIGNFILE-A3
467
468.. _i.MX RT1060 Website:
469   https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-rt-series/i.mx-rt1060-crossover-processor-with-arm-cortex-m7-core:i.MX-RT1060
470
471.. _i.MX RT1060 Datasheet:
472   https://www.nxp.com/docs/en/nxp/data-sheets/IMXRT1060CEC.pdf
473
474.. _i.MX RT1060 Reference Manual:
475   https://www.nxp.com/webapp/Download?colCode=IMXRT1060RM
476
477.. _Using J-Link with MIMXRT1060-EVK or MIMXRT1064-EVK:
478   https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Using-J-Link-with-MIMXRT1060-EVK-or-MIMXRT1064-EVK/ta-p/1281149
479
480.. _Using J-Link with MIMXRT1060-EVKB:
481   https://community.nxp.com/t5/i-MX-RT-Knowledge-Base/Using-J-Link-with-MIMXRT1060-EVKB/ta-p/1452717
482