boards: arm: Add board support for mimxrt1060_evk
Add board support files for mimxrt1060_evk, the development board for i.MXRT1062 (CM7) SoC. - Add pinmux, dts, doc. - External QSPI flash hasn't been configured yet. So code can be loaded to SRAM for now. - Tested samples: hello_world, philosophers, synchronization, basic/blinky, and basic/button. Signed-off-by: Ryan QIAN <jianghao.qian@nxp.com>
This commit is contained in:
parent
5b62ea0e7a
commit
6585fe45b1
12 changed files with 461 additions and 0 deletions
9
boards/arm/mimxrt1060_evk/CMakeLists.txt
Normal file
9
boards/arm/mimxrt1060_evk/CMakeLists.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
#
|
||||
# Copyright (c) 2018, NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
zephyr_library()
|
||||
zephyr_library_include_directories(${ZEPHYR_BASE}/drivers)
|
||||
zephyr_library_sources(pinmux.c)
|
24
boards/arm/mimxrt1060_evk/Kconfig
Normal file
24
boards/arm/mimxrt1060_evk/Kconfig
Normal file
|
@ -0,0 +1,24 @@
|
|||
#
|
||||
# Copyright (c) 2018, NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if BOARD_MIMXRT1060_EVK
|
||||
|
||||
choice
|
||||
prompt "Code location selection"
|
||||
default CODE_ITCM
|
||||
|
||||
config CODE_ITCM
|
||||
bool "Link code into internal instruction tightly coupled memory (ITCM)"
|
||||
|
||||
config CODE_HYPERFLASH
|
||||
bool "Link code into external HyperFlash memory"
|
||||
|
||||
config CODE_QSPI
|
||||
bool "Link code into external QSPI memory"
|
||||
|
||||
endchoice
|
||||
|
||||
endif # BOARD_MIMXRT1050_EVK
|
10
boards/arm/mimxrt1060_evk/Kconfig.board
Normal file
10
boards/arm/mimxrt1060_evk/Kconfig.board
Normal file
|
@ -0,0 +1,10 @@
|
|||
#
|
||||
# Copyright (c) 2018, NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
config BOARD_MIMXRT1060_EVK
|
||||
bool "NXP MIMXRT1060-EVK"
|
||||
depends on SOC_SERIES_IMX_RT
|
||||
select SOC_PART_NUMBER_MIMXRT1062DVL6A
|
38
boards/arm/mimxrt1060_evk/Kconfig.defconfig
Normal file
38
boards/arm/mimxrt1060_evk/Kconfig.defconfig
Normal file
|
@ -0,0 +1,38 @@
|
|||
# Kconfig - MIMXRT1060-EVK board
|
||||
#
|
||||
# Copyright (c) 2018, NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
if BOARD_MIMXRT1060_EVK
|
||||
|
||||
config BOARD
|
||||
default "mimxrt1060_evk"
|
||||
|
||||
if GPIO_MCUX_IGPIO
|
||||
|
||||
config GPIO_MCUX_IGPIO_1
|
||||
def_bool y
|
||||
|
||||
config GPIO_MCUX_IGPIO_5
|
||||
def_bool y
|
||||
|
||||
endif # GPIO_MCUX_IGPIO
|
||||
|
||||
if UART_MCUX_LPUART
|
||||
|
||||
config UART_MCUX_LPUART_1
|
||||
def_bool y
|
||||
|
||||
endif # UART_MCUX_LPUART
|
||||
|
||||
if CODE_HYPERFLASH || CODE_QSPI
|
||||
|
||||
# Reserve space for the IVT
|
||||
config TEXT_SECTION_OFFSET
|
||||
default 0x2000
|
||||
|
||||
endif
|
||||
|
||||
endif # BOARD_MIMXRT1060_EVK
|
8
boards/arm/mimxrt1060_evk/board.cmake
Normal file
8
boards/arm/mimxrt1060_evk/board.cmake
Normal file
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# Copyright (c) 2018, NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
board_runner_args(jlink "--device=MCIMXRT1062")
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
12
boards/arm/mimxrt1060_evk/board.h
Normal file
12
boards/arm/mimxrt1060_evk/board.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
/*
|
||||
* Copyright (c) 2018, NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef __INC_BOARD_H
|
||||
#define __INC_BOARD_H
|
||||
|
||||
#include <soc.h>
|
||||
|
||||
#endif /* __INC_BOARD_H */
|
BIN
boards/arm/mimxrt1060_evk/doc/mimxrt1060_evk.jpg
Normal file
BIN
boards/arm/mimxrt1060_evk/doc/mimxrt1060_evk.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.2 MiB |
196
boards/arm/mimxrt1060_evk/doc/mimxrt1060_evk.rst
Normal file
196
boards/arm/mimxrt1060_evk/doc/mimxrt1060_evk.rst
Normal file
|
@ -0,0 +1,196 @@
|
|||
.. _mimxrt1060_evk:
|
||||
|
||||
NXP MIMXRT1060-EVK
|
||||
##################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The i.MX RT1060 is the latest addition to the industry's first crossover
|
||||
processor series and expands the i.MX RT series to three scalable families.
|
||||
The i.MX RT1060 doubles the On-Chip SRAM to 1MB while keeping pin-to-pin
|
||||
compatibility with i.MX RT1050. This new series introduces additional features
|
||||
ideal for real-time applications such as High-Speed GPIO, CAN-FD, and
|
||||
synchronous parallel NAND/NOR/PSRAM controller. The i.MX RT1060 runs on the
|
||||
Arm® Cortex-M7® core at 600 MHz.
|
||||
|
||||
.. image:: mimxrt1060_evk.jpg
|
||||
:width: 720px
|
||||
:align: center
|
||||
:alt: MIMXRT1060-EVK
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
- MIMXRT1062DVL6A MCU (600 MHz, 1024 KB on-chip memory)
|
||||
|
||||
- Memory
|
||||
|
||||
- 256 Mbit SDRAM
|
||||
- 64 Mbit QSPI Flash
|
||||
- 512 Mbit Hyper Flash
|
||||
- TF socket for SD card
|
||||
|
||||
- Display
|
||||
|
||||
- LCD connector
|
||||
|
||||
- Ethernet
|
||||
|
||||
- 10/100 Mbit/s Ethernet PHY
|
||||
|
||||
- USB
|
||||
|
||||
- USB 2.0 OTG connector
|
||||
- USB 2.0 host connector
|
||||
|
||||
- Audio
|
||||
|
||||
- 3.5 mm audio stereo headphone jack
|
||||
- Board-mounted microphone
|
||||
- Left and right speaker out connectors
|
||||
|
||||
- Power
|
||||
|
||||
- 5 V DC jack
|
||||
|
||||
- Debug
|
||||
|
||||
- JTAG 20-pin connector
|
||||
- OpenSDA with DAPLink
|
||||
|
||||
- Sensor
|
||||
|
||||
- FXOS8700CQ 6-axis e-compass
|
||||
- CMOS camera sensor interface
|
||||
|
||||
- Expansion port
|
||||
|
||||
- Arduino interface
|
||||
|
||||
- CAN bus connector
|
||||
|
||||
For more information about the MIMXRT1060 SoC and MIMXRT1060-EVK board, see
|
||||
these references:
|
||||
|
||||
- `i.MX RT1060 Website`_
|
||||
- `i.MX RT1060 Datasheet`_
|
||||
- `i.MX RT1060 Reference Manual`_
|
||||
- `MIMXRT1060-EVK Website`_
|
||||
- `MIMXRT1060-EVK User Guide`_
|
||||
- `MIMXRT1060-EVK Schematics`_
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
The mimxrt1060_evk board configuration supports the following hardware
|
||||
features:
|
||||
|
||||
+-----------+------------+-------------------------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+=====================================+
|
||||
| NVIC | on-chip | nested vector interrupt controller |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| SYSTICK | on-chip | systick |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| UART | on-chip | serial port-polling; |
|
||||
| | | serial port-interrupt |
|
||||
+-----------+------------+-------------------------------------+
|
||||
|
||||
The default configuration can be found in the defconfig file:
|
||||
``boards/arm/mimxrt1060_evk/mimxrt1060_evk_defconfig``
|
||||
|
||||
Other hardware features are not currently supported by the port.
|
||||
|
||||
Connections and I/Os
|
||||
====================
|
||||
|
||||
The MIMXRT1060 SoC has five pairs of pinmux/gpio controllers.
|
||||
|
||||
+---------------+-----------------+---------------------------+
|
||||
| Name | Function | Usage |
|
||||
+===============+=================+===========================+
|
||||
| GPIO_AD_B0_09 | GPIO | LED |
|
||||
+---------------+-----------------+---------------------------+
|
||||
| GPIO_AD_B0_12 | LPUART1_TX | UART Console |
|
||||
+---------------+-----------------+---------------------------+
|
||||
| GPIO_AD_B0_13 | LPUART1_RX | UART Console |
|
||||
+---------------+-----------------+---------------------------+
|
||||
| WAKEUP | GPIO | SW0 |
|
||||
+---------------+-----------------+---------------------------+
|
||||
|
||||
System Clock
|
||||
============
|
||||
|
||||
The MIMXRT1060 SoC is configured to use the 24 MHz external oscillator on the
|
||||
board with the on-chip PLL to generate a 600 MHz core clock.
|
||||
|
||||
Serial Port
|
||||
===========
|
||||
|
||||
The MIMXRT1060 SoC has eight UARTs. One is configured for the console and the
|
||||
remaining are not used.
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
The MIMXRT1060-EVK includes the :ref:`nxp_opensda` serial and debug adapter
|
||||
built into the board to provide debugging, flash programming, and serial
|
||||
communication over USB.
|
||||
|
||||
To use the Segger J-Link tools with OpenSDA, follow the instructions in the
|
||||
:ref:`nxp_opensda_jlink` page using the `Segger J-Link OpenSDA V2.1 Firmware`_.
|
||||
The Segger J-Link tools are the default for this board, therefore it is not
|
||||
necessary to set ``OPENSDA_FW=jlink`` explicitly when you invoke ``make
|
||||
debug``.
|
||||
|
||||
With these mechanisms, applications for the ``mimxrt1060_evk`` board
|
||||
configuration can be built and debugged in the usual way (see
|
||||
:ref:`build_an_application` and :ref:`application_run` for more details).
|
||||
|
||||
The pyOCD tools do not yet support this SoC.
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
The Segger J-Link firmware does not support command line flashing, therefore
|
||||
the usual ``flash`` build system target is not supported.
|
||||
Instead, see the https://www.nxp.com/docs/en/application-note/AN12108.pdf for flashing instructions.
|
||||
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
This example uses the :ref:`hello_world` sample with the
|
||||
:ref:`nxp_opensda_jlink` tools. Run the following to build your Zephyr
|
||||
application, invoke the J-Link GDB server, attach a GDB client, and program
|
||||
your Zephyr application to flash. It will leave you at a GDB prompt.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: mimxrt1060_evk
|
||||
:goals: debug
|
||||
|
||||
|
||||
.. _MIMXRT1060-EVK Website:
|
||||
https://www.nxp.com/support/developer-resources/software-development-tools/mcuxpresso-software-and-tools/mimxrt1060-evk-i.mx-rt1060-evaluation-kit:MIMXRT1060-EVK
|
||||
|
||||
.. _MIMXRT1060-EVK User Guide:
|
||||
https://www.nxp.com/docs/en/user-guide/UM11151.PDF
|
||||
|
||||
.. _MIMXRT1060-EVK Schematics:
|
||||
https://www.nxp.com/webapp/Download?colCode=MIMXRT1060-EVK-DESIGN-FILE-A2
|
||||
|
||||
.. _i.MX RT1060 Website:
|
||||
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
|
||||
|
||||
.. _i.MX RT1060 Datasheet:
|
||||
https://www.nxp.com/docs/en/nxp/data-sheets/IMXRT1060CEC.pdf
|
||||
|
||||
.. _i.MX RT1060 Reference Manual:
|
||||
https://www.nxp.com/docs/en/reference-manual/IMXRT1060RM.pdf
|
||||
|
||||
.. _Segger J-Link OpenSDA V2.1 Firmware:
|
||||
https://www.segger.com/downloads/jlink/OpenSDA_V2_1.bin
|
86
boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts
Normal file
86
boards/arm/mimxrt1060_evk/mimxrt1060_evk.dts
Normal file
|
@ -0,0 +1,86 @@
|
|||
/*
|
||||
* Copyright (c) 2018, NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <nxp/nxp_rt.dtsi>
|
||||
|
||||
/ {
|
||||
model = "NXP MIMXRT1060-EVK board";
|
||||
compatible = "nxp,mimxrt1062";
|
||||
|
||||
aliases {
|
||||
gpio-1= &gpio1;
|
||||
gpio-2= &gpio2;
|
||||
gpio-3= &gpio3;
|
||||
gpio-4= &gpio4;
|
||||
gpio-5= &gpio5;
|
||||
uart-1 = &uart1;
|
||||
led0 = &green_led;
|
||||
sw0 = &user_button;
|
||||
};
|
||||
|
||||
chosen {
|
||||
#if defined(CONFIG_CODE_ITCM)
|
||||
zephyr,flash = &itcm0;
|
||||
#elif defined(CONFIG_CODE_HYPERFLASH)
|
||||
zephyr,flash = &hyperflash0;
|
||||
#elif defined(CONFIG_CODE_QSPI)
|
||||
zephyr,flash = &qspi0;
|
||||
#endif
|
||||
zephyr,sram = &dtcm0;
|
||||
zephyr,console = &uart1;
|
||||
};
|
||||
|
||||
sdram0: memory@80000000 {
|
||||
/* Micron MT48LC16M16A2B4-6AIT:G */
|
||||
device_type = "memory";
|
||||
reg = <0x80000000 0x2000000>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
green_led: led-1 {
|
||||
gpios = <&gpio1 9 GPIO_INT_ACTIVE_LOW>;
|
||||
label = "User LD1";
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
user_button: button-1 {
|
||||
label = "User SW8";
|
||||
gpios = <&gpio5 0 GPIO_INT_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&flexspi0 {
|
||||
hyperflash0: hyperflash@60000000 {
|
||||
/* Cypress S26KS512SDPBHI02 */
|
||||
reg = <0x60000000 0x4000000>;
|
||||
#if defined(CONFIG_CODE_HYPERFLASH)
|
||||
status = "ok";
|
||||
#else
|
||||
status = "disabled";
|
||||
#endif
|
||||
};
|
||||
|
||||
qspi0: qspi@60000000 {
|
||||
/* ISSI IS25WP064AJBLE */
|
||||
reg = <0x60000000 0x800000>;
|
||||
#if defined(CONFIG_CODE_QSPI)
|
||||
status = "ok";
|
||||
#else
|
||||
status = "disabled";
|
||||
#endif
|
||||
};
|
||||
};
|
||||
|
||||
&uart1 {
|
||||
status = "ok";
|
||||
current-speed = <115200>;
|
||||
};
|
15
boards/arm/mimxrt1060_evk/mimxrt1060_evk.yaml
Normal file
15
boards/arm/mimxrt1060_evk/mimxrt1060_evk.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
#
|
||||
# Copyright (c) 2018, NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
identifier: mimxrt1060_evk
|
||||
name: NXP MIMXRT1060-EVK
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
ram: 128
|
||||
flash: 128
|
16
boards/arm/mimxrt1060_evk/mimxrt1060_evk_defconfig
Normal file
16
boards/arm/mimxrt1060_evk/mimxrt1060_evk_defconfig
Normal file
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Copyright (c) 2018, NXP
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SOC_MIMXRT1062=y
|
||||
CONFIG_SOC_SERIES_IMX_RT=y
|
||||
CONFIG_BOARD_MIMXRT1060_EVK=y
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_CORTEX_M_SYSTICK=y
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=600000000
|
47
boards/arm/mimxrt1060_evk/pinmux.c
Normal file
47
boards/arm/mimxrt1060_evk/pinmux.c
Normal file
|
@ -0,0 +1,47 @@
|
|||
/*
|
||||
* Copyright (c) 2018, NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <init.h>
|
||||
#include <fsl_iomuxc.h>
|
||||
|
||||
static int mimxrt1060_evk_init(struct device *dev)
|
||||
{
|
||||
ARG_UNUSED(dev);
|
||||
|
||||
CLOCK_EnableClock(kCLOCK_Iomuxc);
|
||||
CLOCK_EnableClock(kCLOCK_IomuxcSnvs);
|
||||
|
||||
/* LED */
|
||||
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_09_GPIO1_IO09, 0);
|
||||
|
||||
IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_09_GPIO1_IO09,
|
||||
IOMUXC_SW_PAD_CTL_PAD_PKE_MASK |
|
||||
IOMUXC_SW_PAD_CTL_PAD_SPEED(2) |
|
||||
IOMUXC_SW_PAD_CTL_PAD_DSE(6));
|
||||
|
||||
/* SW0 */
|
||||
IOMUXC_SetPinMux(IOMUXC_SNVS_WAKEUP_GPIO5_IO00, 0);
|
||||
|
||||
#ifdef CONFIG_UART_MCUX_LPUART_1
|
||||
/* LPUART1 TX/RX */
|
||||
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_12_LPUART1_TX, 0);
|
||||
IOMUXC_SetPinMux(IOMUXC_GPIO_AD_B0_13_LPUART1_RX, 0);
|
||||
|
||||
IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_12_LPUART1_TX,
|
||||
IOMUXC_SW_PAD_CTL_PAD_PKE_MASK |
|
||||
IOMUXC_SW_PAD_CTL_PAD_SPEED(2) |
|
||||
IOMUXC_SW_PAD_CTL_PAD_DSE(6));
|
||||
|
||||
IOMUXC_SetPinConfig(IOMUXC_GPIO_AD_B0_13_LPUART1_RX,
|
||||
IOMUXC_SW_PAD_CTL_PAD_PKE_MASK |
|
||||
IOMUXC_SW_PAD_CTL_PAD_SPEED(2) |
|
||||
IOMUXC_SW_PAD_CTL_PAD_DSE(6));
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
SYS_INIT(mimxrt1060_evk_init, PRE_KERNEL_1, 0);
|
Loading…
Add table
Add a link
Reference in a new issue