MCUXpresso Platform Customization: Difference between revisions

From Variscite Wiki
(Use VAR_FILES_DOMAIN_URL)
(166 intermediate revisions by 6 users not shown)
Line 4: Line 4:
|-
|-
| Based on release || NXP MCUXpresso SDK {{#var:MCUXPRESSO_VERSION}}
| Based on release || NXP MCUXpresso SDK {{#var:MCUXPRESSO_VERSION}}
|-
| Nature of release || NXP version release
|-
|-
| Release git || [{{#var:SDK_GIT_URL_HTTP}}/tree/{{#var:SDK_GIT_BRANCH}} {{#var:SDK_GIT_URL_HTTP}}]
| Release git || [{{#var:SDK_GIT_URL_HTTP}}/tree/{{#var:SDK_GIT_BRANCH}} {{#var:SDK_GIT_URL_HTTP}}]
Line 72: Line 70:
{| class="wikitable"
{| class="wikitable"
|-
|-
! scope="col" | function
! scope="col" | Function
! scope="col" | pin
! scope="col" | Pin
|-
|-
| debug UART (UART2)
| debug UART (UART2)
Line 79: Line 77:
|-
|-
| GPIO (GPIO4_IO03)
| GPIO (GPIO4_IO03)
| LED7 (only for 1.x DT8CustomBoard)
| LED7 for DT8CustomBoard 1.x<br>  U43.2 / R228 for DT8CustomBoard >= 2.0 (Use Oscilloscope to observe output signal)
|-
|-
| I2C (I2C3)
| I2C (I2C3)
Line 97: Line 95:
* driver_examples/i2c/polling_b2b_transfer/master
* driver_examples/i2c/polling_b2b_transfer/master
* driver_examples/wdog
* driver_examples/wdog
* driver_examples/gpio/led_output (only for 1.x DT8CustomBoard)
* driver_examples/gpio/led_output
* driver_examples/tmu/tmu_monitor_report
* driver_examples/tmu/tmu_monitor_report
* driver_examples/pwm
* driver_examples/pwm
Line 161: Line 159:
All linker files are locate in the '''armgcc''' folder of each demo.
All linker files are locate in the '''armgcc''' folder of each demo.


The DDR reserved area must much the one declared in the kernel device tree: at least 2 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x80000000 - 0x80FFFFFF.
The DDR reserved area must match the one declared in the kernel device tree: at least 2 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x80000000 - 0x80FFFFFF.


The RPMSG area is located at 0xB8000000: at least 3 GB of RAM is required on the SoM to allow Cortex-M4 accessing the RPMSG area.
The RPMSG area is located at 0xB8000000: at least 3 GB of RAM is required on the SoM to allow Cortex-M4 accessing the RPMSG area.
Line 171: Line 169:
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)


Further details about memory mapping are available in [https://cache.nxp.com/secured/assets/documents/en/reference-manual/IMX8MDQLQRM.pdf i.MX 8M Applications Processors Reference Manual] paragraphs:
Further details about memory mapping are available in the following [https://www.nxp.com/doc/IMX8MDQLQRM i.MX 8M Applications Processor Reference Manual] paragraphs:


* 2.1.2 Cortex-A53 Memory Map
* 2.1.2 Cortex-A53 Memory Map
Line 207: Line 205:
All linker files are locate in the '''armgcc''' folder of each demo.
All linker files are locate in the '''armgcc''' folder of each demo.


The DDR reserved area must much the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M4 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M4.  
The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M4 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M4.  


The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M4 accessing the RPMSG area.
The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M4 accessing the RPMSG area.
Line 218: Line 216:
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)


Further details about memory mapping are available in [https://www.nxp.com/webapp/Download?colCode=IMX8MDQLQRM i.MX 8M Applications Processors Reference Manual] paragraphs:
Further details about memory mapping are available in the following [https://www.nxp.com/doc/IMX8MDQLQRM i.MX 8M Applications Processor Reference Manual] paragraphs:


* 2.1.2 Cortex-A53 Memory Map
* 2.1.2 Cortex-A53 Memory Map
Line 228: Line 226:
-->The VAR-DT8MCustomBoard exports the DART-MX8M JTAG signals through J29, a standard 1.27" 10 pin header.
-->The VAR-DT8MCustomBoard exports the DART-MX8M JTAG signals through J29, a standard 1.27" 10 pin header.


Here the pinout
Here is the pinout:


{| class="wikitable"
{| class="wikitable"
Line 494: Line 492:
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mq-v1.3}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mq-v1.3}}<!--
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8MQ-deactivated-the-LMEM-caches-to-debug-in-exter.patch}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mq}}<!--
--><section end=MCUXPRESSO_2.10.0_V1.0_DART-MX8M/><!--
--><section end=MCUXPRESSO_2.10.0_V1.0_DART-MX8M/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
Line 515: Line 515:
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*DEACTIVATE_LMEM_CACHE_PATCH = '''{{#var:DEACTIVATE_LMEM_CACHE_PATCH}}'''
*BOARD_SDK = '''{{#var:BOARD_SDK}}'''


= DART-MX8M-MINI =
=== mcuxpresso-2.11.1-mx8mq-v1.0 ===
 
<section begin=MCUXPRESSO_2.11.1_V1.0_DART-MX8M/><!--
== Sections ==
-->{{#vardefine:OS|FreeRTOS}}<!--
 
-->{{#vardefine:HARDWARE_NAME|DART-MX8M}}<!--
=== Available dtbs ===
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.11.1-mx8mq-v1.0}}<!--
<section begin=DART-MX8M-MINI_DTBS_SECTION/><!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.11.1_V1.0_DART-MX8M}}<!--
-->To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m4''' label in the name, using the fdt_file environment variable in U-Boot.
-->{{#vardefine:MCUXPRESSO_VERSION|2.11.1}}<!--
 
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
 
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.11.x-var01}}<!--
{| class="wikitable"
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
|-
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
! scope="col" | File Name<br/>
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.07}}<!--
! scope="col" | Description<br/>
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mq}}<!--
|-
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| style="padding: 5px;"| imx8mm-var-dart-dt8mcustomboard-'''m4'''.dtb
-->{{#vardefine:PINS_SECTION|DART-MX8M_PINS_SECTION}}<!--
| style="padding: 5px;"| DART-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell)
-->{{#vardefine:DEMOS_SECTION|DART-MX8M_DEMOS_SECTION}}<!--
|-
-->{{#vardefine:DTBS_SECTION|DART-MX8M_DTBS_SECTION}}<!--
| style="padding: 5px;"| imx8mm-var-dart-'''m4'''.dtb
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M_MEMORY-TYPES_VAR_SECTION}}<!--
| style="padding: 5px;"| DART-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. > 1.0
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
|-
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf}}<!--
| style="padding: 5px;"| fsl-imx8mm-var-dart-'''m4'''.dtb
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MQ}}<!--
| style="padding: 5px;"| DART-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. > 1.0
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mq_mcuxpresso-2.11.1_v10}}<!--
|-
-->{{#vardefine:RELEASE_DATE|05/31/2022}}<!--
| style="padding: 5px;"| imx8mm-var-som-symphony-'''m4'''.dtb
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4a and above
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
|-
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mq-v1.5}}<!--
| style="padding: 5px;"| imx8mm-var-som-symphony-legacy-'''m4'''.dtb
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8MQ-deactivated-the-LMEM-caches-to-debug-in-exter.patch}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4 and below
-->{{#vardefine:BOARD_SDK|dart_mx8mq}}<!--
|-
--><section end=MCUXPRESSO_2.11.1_V1.0_DART-MX8M/><!--
| style="padding: 5px;"| imx8mm-var-som-'''m4'''.dtb
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. > 1.0
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
|-
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
| style="padding: 5px;"| imx8mm-var-som-rev10-'''m4'''.dtb
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. 1.0
*SDK_PATH = '''{{#var:SDK_PATH}}'''
|-
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
| style="padding: 5px;"| fsl-imx8mm-var-som-'''m4'''.dtb
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. > 1.0
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
|-
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
| style="padding: 5px;"| fsl-imx8mm-var-som-rev10-'''m4'''.dtb
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. 1.0
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
|-
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
|}
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*DEACTIVATE_LMEM_CACHE_PATCH = '''{{#var:DEACTIVATE_LMEM_CACHE_PATCH}}'''
*BOARD_SDK = '''{{#var:BOARD_SDK}}'''


<section end=DART-MX8M-MINI_DTBS_SECTION/>
=== mcuxpresso-2.12.1-mx8mq-v1.0 ===
 
<section begin=MCUXPRESSO_2.12.1_V1.0_DART-MX8M/><!--
=== Default M4 pins ===
-->{{#vardefine:OS|FreeRTOS}}<!--
<section begin=DART-MX8M-MINI_PINS_SECTION/><!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M}}<!--
-->Default M4 pins used by the demos are:
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.12.1-mx8mq-v1.0}}<!--
 
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.12.1_V1.0_DART-MX8M}}<!--
{| class="wikitable"
-->{{#vardefine:MCUXPRESSO_VERSION|2.12.1}}<!--
|-
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
! scope="col" | function
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
! scope="col" | pin
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.12.x-var01}}<!--
|-
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
| debug UART (UART2)
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
| RX: J12.6 / TX: J12.4
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
|-
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mq}}<!--
| GPIO (GPIO4_IO03)
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| LED7
-->{{#vardefine:PINS_SECTION|DART-MX8M_PINS_SECTION}}<!--
|-
-->{{#vardefine:DEMOS_SECTION|DART-MX8M_DEMOS_SECTION}}<!--
| I2C (I2C4)
-->{{#vardefine:DTBS_SECTION|DART-MX8M_DTBS_SECTION}}<!--
| SCL: J12.17 / SDA: J12.19
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M_MEMORY-TYPES_VAR_SECTION}}<!--
|-
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
| PWM (PWM2)
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf}}<!--
| J14.3
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MQ}}<!--
|-
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mq_mcuxpresso-2.12.1_v10}}<!--
|}<!--
-->{{#vardefine:RELEASE_DATE|12/13/2022}}<!--
--><section end=DART-MX8M-MINI_PINS_SECTION/>
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8m-yocto-kirkstone-5.15-2.0.x-v1.0}}<!--
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8MQ-deactivated-the-LMEM-caches-to-debug-in-exter.patch}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mq}}<!--
--><section end=MCUXPRESSO_2.12.1_V1.0_DART-MX8M/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*DEACTIVATE_LMEM_CACHE_PATCH = '''{{#var:DEACTIVATE_LMEM_CACHE_PATCH}}'''
*BOARD_SDK = '''{{#var:BOARD_SDK}}'''


=== Default M4 pins v2 ===
=== mcuxpresso-2.13.0-mx8mq-v1.0 ===
<section begin=DART-MX8M-MINI_PINS_SECTION_V2/><!--
<section begin=MCUXPRESSO_2.13.0_V1.0_DART-MX8M/><!--
-->Default M4 pins used by the demos are:
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.13.0-mx8mq-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.13.0_V1.0_DART-MX8M}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.13.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.13.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mq}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|DART-MX8M_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|DART-MX8M_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MQ}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mq_mcuxpresso-2.13.0_v10}}<!--
-->{{#vardefine:RELEASE_DATE|02/17/2023}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8m-yocto-kirkstone-5.15-2.0.x-v1.2}}<!--
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8MQ-deactivated-the-LMEM-caches-to-debug-in-exter.patch}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mq}}<!--
--><section end=MCUXPRESSO_2.13.0_V1.0_DART-MX8M/>
 
= DART-MX8M-MINI =
 
== Sections ==
 
=== Available dtbs ===
<section begin=DART-MX8M-MINI_DTBS_SECTION/><!--
-->To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m4''' label in the name, using the fdt_file environment variable in U-Boot.
 
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.


{| class="wikitable"
{| class="wikitable"
|-
|-
! scope="col" | function
! scope="col" | File Name<br/>
! scope="col" | SoC balls
! scope="col" | Description<br/>
! scope="col" | DART-MX8M-MINI pins
! scope="col" | DT8MCB pins
! scope="col" | VAR-SOM-MX8M-MINI pins
! scope="col" | Symphony pins
! scope="col" | notes
|-
|-
| UART3 RX/TX
| style="padding: 5px;"| imx8mm-var-dart-dt8mcustomboard-'''m4'''.dtb
| E18 / D18
| style="padding: 5px;"| DART-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell)
| J2.87 / J2.89
|-
| J12.11 / J12.13
| style="padding: 5px;"| imx8mm-var-dart-'''m4'''.dtb
| J1.175 / J1.124
| style="padding: 5px;"| DART-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. > 1.0
| J18.5 / J18.3
|
|-
|-
| GPIO4_IO03
| style="padding: 5px;"| fsl-imx8mm-var-dart-'''m4'''.dtb
| AF15
| style="padding: 5px;"| DART-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. > 1.0
| J2.59
| GPLED1
| J1.84
| J17.3
|
|-
|-
| I2C4 SCL/SDA
| style="padding: 5px;"| imx8mm-var-som-symphony-'''m4'''.dtb
| D13 / E13
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4a and above
| J1.17 / J1.19
| J12.17/ J12.19
| J1.174 / J1.176
| J16.10 / J16.12
|
|-
|-
| PWM3
| style="padding: 5px;"| imx8mm-var-som-symphony-legacy-'''m4'''.dtb
| AF9
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4 and below
| J3.36
| J14.7
| J1.69
| J18.2
|
|-
|-
| SPI1 CS0/SCK/SDI/SDO
| style="padding: 5px;"| imx8mm-var-som-'''m4'''.dtb
| B6 / D6 / A7 / B7
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. > 1.0
| J2.79 / J2.77 / J2.81 / J2.83
|-
| J16.4/ J16.2 / J16.8 / J16.6
| style="padding: 5px;"| imx8mm-var-som-rev10-'''m4'''.dtb
| J1.39 / J1.43 / J1.41 / J1.45
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. 1.0
| J16.4/ J16.2 / J16.6 / J16.8
|-
| enablind it SPI devices will be no longer visible from Linux
| style="padding: 5px;"| fsl-imx8mm-var-som-'''m4'''.dtb
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. > 1.0
|-
| style="padding: 5px;"| fsl-imx8mm-var-som-rev10-'''m4'''.dtb
| style="padding: 5px;"| VAR-SOM-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. 1.0
|-
|-
|}<!--
|}
--><section end=DART-MX8M-MINI_PINS_SECTION_V2/>
 
<section end=DART-MX8M-MINI_DTBS_SECTION/>
 
=== Default M4 pins ===
<section begin=DART-MX8M-MINI_PINS_SECTION/><!--
-->Default M4 pins used by the demos are:


=== Available Demos ===
{| class="wikitable"
<section begin=DART-MX8M-MINI_DEMOS_SECTION/><!--
|-
-->* driver_examples/i2c/interrupt_b2b_transfer/slave
! scope="col" | Function
* driver_examples/i2c/interrupt_b2b_transfer/master
! scope="col" | Pin
* driver_examples/i2c/polling_b2b_transfer/slave
|-
* driver_examples/i2c/polling_b2b_transfer/master
| Debug UART (UART2)
* driver_examples/wdog
| RX: J12.6 / TX: J12.4
* driver_examples/sdma/scatter_gather
|-
* driver_examples/sdma/memory_to_memory
| GPIO (GPIO4_IO03)
* driver_examples/gpio/led_output (only for 1.x DT8CustomBoard)
| LED7
* driver_examples/pwm
|-
* driver_examples/uart/auto_baudrate_detect
| I2C (I2C4)
* driver_examples/uart/interrupt
| SCL: J12.17 / SDA: J12.19
* driver_examples/uart/idle_detect_sdma_transfer
|-
* driver_examples/uart/interrupt_rb_transfer
| PWM (PWM2)
* driver_examples/uart/sdma_transfer
| J14.3
* driver_examples/uart/polling
|-
* driver_examples/uart/interrupt_transfer
|}<!--
* driver_examples/gpt/timer
--><section end=DART-MX8M-MINI_PINS_SECTION/>
* driver_examples/gpt/capture
 
* driver_examples/ecspi/ecspi_loopback
=== Default M4 pins v2 ===
* driver_examples/ecspi/interrupt_b2b_transfer/slave
<section begin=DART-MX8M-MINI_PINS_SECTION_V2/><!--
* driver_examples/ecspi/interrupt_b2b_transfer/master
-->Default M4 pins used by the demos are:
* driver_examples/ecspi/polling_b2b_transfer/slave
 
* driver_examples/ecspi/polling_b2b_transfer/master
{| class="wikitable"
* driver_examples/rdc
|-
* driver_examples/tmu_1/monitor_threshold
! scope="col" | Function
* driver_examples/tmu_1/temperature_polling
! scope="col" | SoC balls
* driver_examples/sema4/uboot
! scope="col" | DART-MX8M-MINI pins
* rtos_examples/freertos_ecspi/ecspi_loopback
! scope="col" | DT8MCB pins
* rtos_examples/freertos_hello
! scope="col" | VAR-SOM-MX8M-MINI pins
* rtos_examples/freertos_queue
! scope="col" | Symphony pins
* rtos_examples/freertos_sem
! scope="col" | Notes
* rtos_examples/freertos_generic
* rtos_examples/freertos_uart
* rtos_examples/freertos_tickless
* rtos_examples/freertos_mutex
* rtos_examples/freertos_event
* rtos_examples/freertos_swtimer
* rtos_examples/freertos_i2c
* cmsis_driver_examples/i2c/int_b2b_transfer/slave
* cmsis_driver_examples/i2c/int_b2b_transfer/master
* cmsis_driver_examples/uart/sdma_transfer
* cmsis_driver_examples/uart/interrupt_transfer
* cmsis_driver_examples/ecspi/int_loopback_transfer
* cmsis_driver_examples/ecspi/sdma_loopback_transfer
* multicore_examples/rpmsg_lite_str_echo_rtos
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
* demo_apps/hello_world<!--
--><section end=DART-MX8M-MINI_DEMOS_SECTION/>
 
=== Variscite Memory types ===
<section begin=DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION/><!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.
 
Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.
 
{| class="wikitable"
|-
|-
! scope="col" | memory type
| UART3 RX/TX
! scope="col" | M4 memory area
| E18 / D18
! scope="col" | A53 memory area
| J2.87 / J2.89
! scope="col" | memory lentgh
| J12.11 / J12.13
! scope="col" | linker file
| J1.175 / J1.124
| J18.5 / J18.3
|  
|-
|-
| DDR
| GPIO4_IO03
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
| AF15
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
| J2.59
| 16MB (DDR)
| GPLED1
| MIMX8MM6xxxxx_cm4_ddr_ram.ld
| J1.84
| J17.3
| The led_output demo makes the GPLED1 blink for only DT8MCustomBoard 1.x, use the scope on one of the following test points for DT8MCustomBoard >= 2.x (U43.2/R228/MIPI-CSI pin 20)
|-
|-
| TCM
| I2C4 SCL/SDA
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
| D13 / E13
| 0x007E0000-0x007FFFFF (code)<br>0x00800000-0x0081FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
| J1.17 / J1.19
| 256kB (TCM) + 16MB (DDR)
| J12.17/ J12.19
| MIMX8MM6xxxxx_cm4_ram.ld
| J1.174 / J1.176
| J16.10 / J16.12
|
|-
|-
|}
| PWM3
 
| AF9
All linker files are locate in the '''armgcc''' folder of each demo.
| J3.36
| J14.7
| J1.69
| J18.2
|
|-
| SPI1 CS0/SCK/SDI/SDO
| B6 / D6 / A7 / B7
| J2.79 / J2.77 / J2.81 / J2.83
| J16.4/ J16.2 / J16.8 / J16.6
| J1.39 / J1.43 / J1.41 / J1.45
| J16.4/ J16.2 / J16.6 / J16.8
| Enabling it SPI devices will be no longer visible from Linux
|-
|}<!--
--><section end=DART-MX8M-MINI_PINS_SECTION_V2/>


The DDR reserved area must much the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M4 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M4.
=== Available Demos ===
 
<section begin=DART-MX8M-MINI_DEMOS_SECTION/><!--
The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M4 accessing the RPMSG area.
-->* driver_examples/i2c/interrupt_b2b_transfer/slave
 
* driver_examples/i2c/interrupt_b2b_transfer/master
After launching the build_all.sh command the following folder will be created in the armgcc folder
* driver_examples/i2c/polling_b2b_transfer/slave
 
* driver_examples/i2c/polling_b2b_transfer/master
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
* driver_examples/wdog
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
* driver_examples/sdma/scatter_gather
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
* driver_examples/sdma/memory_to_memory
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
* driver_examples/gpio/led_output
 
* driver_examples/pwm
Further details about memory mapping are available in [https://www.nxp.com/webapp/Download?colCode=IMX8MMRM i.MX 8M-Mini Applications Processors Reference Manual] paragraphs:
* driver_examples/uart/auto_baudrate_detect
 
* driver_examples/uart/interrupt
* 2.1.2 Cortex-A53 Memory Map
* driver_examples/uart/idle_detect_sdma_transfer
* 2.1.3 Cortex-M4 Memory Map<!--
* driver_examples/uart/interrupt_rb_transfer
--><section end=DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION/>
* driver_examples/uart/sdma_transfer
 
* driver_examples/uart/polling
== Releases ==
* driver_examples/uart/interrupt_transfer
 
* driver_examples/gpt/timer
=== freertos-1.0.1-mx7-v1.0 ===
* driver_examples/gpt/capture
<section begin=MCUXPRESSO_1.0.1_V1.0_VAR-SOM-MX7/><!--
* driver_examples/ecspi/ecspi_loopback
-->{{#vardefine:OS|FreeRTOS}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/slave
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX7}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/master
-->{{#vardefine:RELEASE_NAME|freertos-1.0.1-mx7-v1.0}}<!--
* driver_examples/ecspi/polling_b2b_transfer/slave
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_1.0.1_V1.0_VAR-SOM-MX7}}<!--
* driver_examples/ecspi/polling_b2b_transfer/master
-->{{#vardefine:MCUXPRESSO_VERSION|1.0.1}}<!--
* driver_examples/rdc
-->{{#vardefine:RELEASE_DATE|3/9/2020}} <!--
* driver_examples/tmu_1/monitor_threshold
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
* driver_examples/tmu_1/temperature_polling
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
* driver_examples/sema4/uboot
-->{{#vardefine:SDK_GIT_TAG|freertos-1.0.1-mx7-v1.0}} <!--
* rtos_examples/freertos_ecspi/ecspi_loopback
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* rtos_examples/freertos_hello
-->{{#vardefine:SDK_GIT_BRANCH|freertos_bsp_1.0.1_imx7d-var01}}<!--
* rtos_examples/freertos_queue
--><section end=MCUXPRESSO_1.0.1_V1.0_VAR-SOM-MX7/>
* rtos_examples/freertos_sem
* rtos_examples/freertos_generic
* rtos_examples/freertos_uart
* rtos_examples/freertos_tickless
* rtos_examples/freertos_mutex
* rtos_examples/freertos_event
* rtos_examples/freertos_swtimer
* rtos_examples/freertos_i2c
* cmsis_driver_examples/i2c/int_b2b_transfer/slave
* cmsis_driver_examples/i2c/int_b2b_transfer/master
* cmsis_driver_examples/uart/sdma_transfer
* cmsis_driver_examples/uart/interrupt_transfer
* cmsis_driver_examples/ecspi/int_loopback_transfer
* cmsis_driver_examples/ecspi/sdma_loopback_transfer
* multicore_examples/rpmsg_lite_str_echo_rtos
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
* demo_apps/hello_world<!--
--><section end=DART-MX8M-MINI_DEMOS_SECTION/>
 
=== Variscite Memory types ===
<section begin=DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION/><!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.
 
Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.


=== mcuxpresso-2.5.0-mx8mm-v1.0 ===
{| class="wikitable"
<section begin=MCUXPRESSO_2.5.0_V1.0_DART-MX8M-MINI/><!--
|-
-->{{#vardefine:OS|FreeRTOS}}<!--
! scope="col" | memory type
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
! scope="col" | M4 memory area
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.0-mx8mm-v1.0}}<!--
! scope="col" | A53 memory area
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.0_V1.0_DART-MX8M-MINI}}<!--
! scope="col" | memory lentgh
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.0}}<!--
! scope="col" | linker file
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
|-
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| DDR
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
| 16MB (DDR)
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-7-2018-q2-update}}<!--
| MIMX8MM6xxxxx_cm4_ddr_ram.ld
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
|-
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| TCM
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION}}<!--
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-MINI_DEMOS_SECTION}}<!--
| 0x007E0000-0x007FFFFF (code)<br>0x00800000-0x0081FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
-->{{#vardefine:DTBS_SECTION|DART-MX8M-MINI_DTBS_SECTION}}<!--
| 256kB (TCM) + 16MB (DDR)
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
| MIMX8MM6xxxxx_cm4_ram.ld
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
|-
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf}}<!--
|}
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
 
--><section end=MCUXPRESSO_2.5.0_V1.0_DART-MX8M-MINI/><!--
All linker files are locate in the '''armgcc''' folder of each demo.
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
 
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M4 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M4.
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
 
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M4 accessing the RPMSG area.
*SDK_PATH = '''{{#var:SDK_PATH}}'''
 
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
After launching the build_all.sh command the following folder will be created in the armgcc folder
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''


=== mcuxpresso-2.5.0-mx8mm-v1.1 ===
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
<section begin=MCUXPRESSO_2.5.0_V1.1_DART-MX8M-MINI/><!--
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:OS|FreeRTOS}}<!--
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.0-mx8mm-v1.1}}<!--
 
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.0_V1.1_DART-MX8M-MINI}}<!--
Further details about memory mapping are available in the following [https://www.nxp.com/doc/IMX8MMRM i.MX 8M Mini Applications Processor Reference Manual] paragraphs:
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.0}}<!--
 
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* 2.1.2 Cortex-A53 Memory Map
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* 2.1.3 Cortex-M4 Memory Map<!--
--><section end=DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION/>
 
== Releases ==
 
=== freertos-1.0.1-mx7-v1.0 ===
<section begin=MCUXPRESSO_1.0.1_V1.0_VAR-SOM-MX7/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX7}}<!--
-->{{#vardefine:RELEASE_NAME|freertos-1.0.1-mx7-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_1.0.1_V1.0_VAR-SOM-MX7}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|1.0.1}}<!--
-->{{#vardefine:RELEASE_DATE|3/9/2020}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:SDK_GIT_TAG|freertos-1.0.1-mx7-v1.0}} <!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|freertos_bsp_1.0.1_imx7d-var01}}<!--
--><section end=MCUXPRESSO_1.0.1_V1.0_VAR-SOM-MX7/>
 
=== mcuxpresso-2.5.0-mx8mm-v1.0 ===
<section begin=MCUXPRESSO_2.5.0_V1.0_DART-MX8M-MINI/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.0-mx8mm-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.0_V1.0_DART-MX8M-MINI}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
Line 816: Line 912:
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION_V2}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-MINI_DEMOS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-MINI_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|DART-MX8M-MINI_DTBS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|DART-MX8M-MINI_DTBS_SECTION}}<!--
Line 822: Line 918:
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.5.0_v11}} <!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
-->{{#vardefine:RELEASE_DATE|3/14/2020}} <!--
--><section end=MCUXPRESSO_2.5.0_V1.0_DART-MX8M-MINI/><!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
--><section end=MCUXPRESSO_2.5.0_V1.1_DART-MX8M-MINI/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
Line 848: Line 940:
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''


=== mcuxpresso-2.8.0-mx8mm-v1.0 ===
=== mcuxpresso-2.5.0-mx8mm-v1.1 ===
<section begin=MCUXPRESSO_2.8.0_V1.0_DART-MX8M-MINI/><!--
<section begin=MCUXPRESSO_2.5.0_V1.1_DART-MX8M-MINI/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8mm-v1.0}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.0-mx8mm-v1.1}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.0_V1.1_DART-MX8M-MINI}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-7-2018-q2-update}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
Line 868: Line 960:
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.8.0_v10}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf}}<!--
-->{{#vardefine:RELEASE_DATE|9/8/2020}} <!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.5.0_v11}} <!--
-->{{#vardefine:RELEASE_DATE|3/14/2020}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
--><section end=MCUXPRESSO_2.8.0_V1.0_DART-MX8M-MINI/><!--
--><section end=MCUXPRESSO_2.5.0_V1.1_DART-MX8M-MINI/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
Line 895: Line 987:
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''


=== mcuxpresso-2.9.0-mx8mm-v1.0 ===
=== mcuxpresso-2.8.0-mx8mm-v1.0 ===
<section begin=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-MINI/><!--
<section begin=MCUXPRESSO_2.8.0_V1.0_DART-MX8M-MINI/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8mm-v1.0}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8mm-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_DART-MX8M-MINI}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
Line 915: Line 1,007:
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.9.0_v10}} <!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.8.0_v10}} <!--
-->{{#vardefine:RELEASE_DATE|1/24/2021}} <!--
-->{{#vardefine:RELEASE_DATE|9/8/2020}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mm-v1.1}}<!--
--><section end=MCUXPRESSO_2.8.0_V1.0_DART-MX8M-MINI/><!--
--><section end=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-MINI/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
Line 942: Line 1,033:
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


=== mcuxpresso-2.10.0-mx8mm-v1.0 ===
=== mcuxpresso-2.9.0-mx8mm-v1.0 ===
<section begin=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-MINI/><!--
<section begin=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-MINI/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.10.0-mx8mm-v1.0}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8mm-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.10.0_V1.0_DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_DART-MX8M-MINI}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.10.0}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.10.x-var01}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10-2020-q4-major}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mm}}<!--
-->{{#vardefine:DTB_DEBUG|imx8mm-var-dart-dt8mcustomboard-m4.dtb}}<!--
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION_V2}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION_V2}}<!--
Line 967: Line 1,054:
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.10.0_v10}} <!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.9.0_v10}} <!--
-->{{#vardefine:RELEASE_DATE|10/19/2021}} <!--
-->{{#vardefine:RELEASE_DATE|1/24/2021}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|hardknott-fslc-5.4-2.3.x-mx8mm-v1.1}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mm-v1.1}}<!--
-->{{#vardefine:YOCTO_RELEASE_NOTES_LINK|https://variwiki.com/index.php?title=DART-MX8M-MINI_Release_Notes&release=RELEASE_HARDKNOTT_V1.1_DART-MX8M-MINI}}<!--
--><section end=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-MINI/><!--
--><section end=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-MINI/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
Line 987: Line 1,073:
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*BOARD_SDK = '''{{#var:BOARD_SDK}}'''
*DEACTIVATE_LMEM_CACHE_PATCH = '''{{#var:DEACTIVATE_LMEM_CACHE_PATCH}}'''
*DTB_DEBUG = '''{{#var:DTB_DEBUG}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
Line 999: Line 1,082:
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*YOCTO_RELEASE_NOTES_LINK = '''{{#var:YOCTO_RELEASE_NOTES_LINK}}'''


= VAR-SOM-MX8M-NANO =
=== mcuxpresso-2.10.0-mx8mm-v1.0 ===
 
<section begin=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-MINI/><!--
== Sections ==
-->{{#vardefine:OS|FreeRTOS}}<!--
 
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
=== Available dtbs ===
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.10.0-mx8mm-v1.0}}<!--
<section begin=VAR-SOM-MX8M-NANO_DTBS_SECTION/><!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.10.0_V1.0_DART-MX8M-MINI}}<!--
-->To allow Cortex M7 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m7''' label in the name, using the fdt_file environment variable in U-Boot.
-->{{#vardefine:MCUXPRESSO_VERSION|2.10.0}}<!--
 
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
{| class="wikitable"
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
|-
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.10.x-var01}}<!--
! scope="col" | File Name<br/>
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
! scope="col" | Description<br/>
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
|-
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10-2020-q4-major}}<!--
| style="padding: 5px;"| imx8mn-var-som-symphony-'''m7'''.dtb
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4a and above
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
|-
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION_V2}}<!--
| style="padding: 5px;"| imx8mn-var-som-symphony-legacy-'''m7'''.dtb
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-MINI_DEMOS_SECTION}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4 and below
-->{{#vardefine:DTBS_SECTION|DART-MX8M-MINI_DTBS_SECTION}}<!--
|-
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
| style="padding: 5px;"| imx8mn-var-som-'''m7'''.dtb
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel 5.4.3 - 5.4.24 (Yocto Zeus) on som rev > 1.0
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.10.0_v10}} <!--
|-
-->{{#vardefine:RELEASE_DATE|10/19/2021}} <!--
| style="padding: 5px;"| imx8mn-var-som-rev10-'''m7'''.dtb
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel 5.4.3 - 5.4.24 (Yocto Zeus) on som rev 1.0
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
|-
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
| style="padding: 5px;"| fsl-imx8mn-var-som-'''m7'''.dtb
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel < 5.4.3 on som rev > 1.0
-->{{#vardefine:YOCTO_RELEASE_TAG|hardknott-fslc-5.4-2.3.x-mx8mm-v1.1}}<!--
|-
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch}}<!--
| style="padding: 5px;"| fsl-imx8mn-var-som-rev10-'''m7'''.dtb
-->{{#vardefine:BOARD_SDK|dart_mx8mm}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel < 5.4.3 on som rev 1.0
--><section end=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-MINI/><!--
|-
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
|}
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
 
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M7.<!--
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
--><section end=VAR-SOM-MX8M-NANO_DTBS_SECTION/>
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DEACTIVATE_LMEM_CACHE_PATCH = '''{{#var:DEACTIVATE_LMEM_CACHE_PATCH}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


=== Default M7 pins ===
=== mcuxpresso-2.11.1-mx8mm-v1.0 ===
<section begin=VAR-SOM-MX8M-NANO_PINS_SECTION/><!--
<section begin=MCUXPRESSO_2.11.1_V1.0_DART-MX8M-MINI/><!--
-->Default M7 pins used by the demos are:
-->{{#vardefine:OS|FreeRTOS}}<!--
 
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
{| class="wikitable"
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.11.1-mx8mm-v1.0}}<!--
|-
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.11.1_V1.0_DART-MX8M-MINI}}<!--
! scope="col" | function
-->{{#vardefine:MCUXPRESSO_VERSION|2.11.1}}<!--
! scope="col" | SoC balls
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
! scope="col" | VAR-SOM-MX8M-NANO pins
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
! scope="col" | Symphony pins
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.11.x-var01}}<!--
! scope="col" | notes
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
|-
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
| UART3 RX/TX
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.07}}<!--
| E18 / D18
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
| J1.175 / J1.124
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| J18.5 / J18.3
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION_V2}}<!--
|
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-MINI_DEMOS_SECTION}}<!--
|-
-->{{#vardefine:DTBS_SECTION|DART-MX8M-MINI_DTBS_SECTION}}<!--
| GPIO4_IO23
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
| AC24
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
| J1.21
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.11.1_v10}} <!--
| J16.5
-->{{#vardefine:RELEASE_DATE|07/01/2022}} <!--
|
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
|-
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
| I2C4 SCL/SDA
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
| D13 / E13
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
| J1.174 / J1.176
-->{{#vardefine:YOCTO_RELEASE_TAG|hardknott-fslc-5.4-2.3.x-mx8mm-v1.4}}<!--
| J16.10 / J16.12
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch}}<!--
|
-->{{#vardefine:BOARD_SDK|dart_mx8mm}}<!--
|-
--><section end=MCUXPRESSO_2.11.1_V1.0_DART-MX8M-MINI/><!--
| PWM3
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
| AF9
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
| J1.69
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
| J18.2
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
|
*SDK_PATH = '''{{#var:SDK_PATH}}'''
|-
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
| SPI1 CS0/SCK/SDI/SDO
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
| B6 / D6 / A7 / B7
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
| J1.39 / J1.43 / J1.41 / J1.45
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
| J16.4/ J16.2 / J16.6 / J16.8
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
| enablind it SPI devices will be no longer visible from Linux
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
|-
*DEACTIVATE_LMEM_CACHE_PATCH = '''{{#var:DEACTIVATE_LMEM_CACHE_PATCH}}'''
|}<!--
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
--><section end=VAR-SOM-MX8M-NANO_PINS_SECTION/>
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


=== Available Demos ===
=== mcuxpresso-2.12.1-mx8mm-v1.0 ===
<section begin=VAR-SOM-MX8M-NANO_DEMOS_SECTION/><!--
<section begin=MCUXPRESSO_2.12.1_V1.0_DART-MX8M-MINI/><!--
-->* driver_examples/i2c/interrupt_b2b_transfer/slave
-->{{#vardefine:OS|FreeRTOS}}<!--
* driver_examples/i2c/interrupt_b2b_transfer/master
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
* driver_examples/i2c/polling_b2b_transfer/slave
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.12.1-mx8mm-v1.0}}<!--
* driver_examples/i2c/polling_b2b_transfer/master
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.12.1_V1.0_DART-MX8M-MINI}}<!--
* driver_examples/wdog
-->{{#vardefine:MCUXPRESSO_VERSION|2.12.1}}<!--
* driver_examples/sdma/scatter_gather
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* driver_examples/sdma/memory_to_memory
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* driver_examples/gpio/led_output
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.12.x-var01}}<!--
* driver_examples/pwm
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
* driver_examples/uart/auto_baudrate_detect
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
* driver_examples/uart/interrupt
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
* driver_examples/uart/idle_detect_sdma_transfer
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
* driver_examples/uart/interrupt_rb_transfer
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* driver_examples/uart/sdma_transfer
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION_V2}}<!--
* driver_examples/uart/polling
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-MINI_DEMOS_SECTION}}<!--
* driver_examples/uart/interrupt_transfer
-->{{#vardefine:DTBS_SECTION|DART-MX8M-MINI_DTBS_SECTION}}<!--
* driver_examples/gpt/timer
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
* driver_examples/gpt/capture
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
* driver_examples/ecspi/ecspi_loopback
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.12.1_v10}} <!--
* driver_examples/ecspi/interrupt_b2b_transfer/slave
-->{{#vardefine:RELEASE_DATE|11/04/2022}} <!--
* driver_examples/ecspi/interrupt_b2b_transfer/master
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
* driver_examples/ecspi/polling_b2b_transfer/slave
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
* driver_examples/ecspi/polling_b2b_transfer/master
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
* driver_examples/rdc
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
* driver_examples/tmu_1/monitor_threshold
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8mm-yocto-kirkstone-5.15-2.0.x-v1.0}}<!--
* driver_examples/tmu_1/temperature_polling
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch}}<!--
* driver_examples/sema4/uboot
-->{{#vardefine:BOARD_SDK|dart_mx8mm}}<!--
* rtos_examples/freertos_ecspi/ecspi_loopback
--><section end=MCUXPRESSO_2.12.1_V1.0_DART-MX8M-MINI/><!--
* rtos_examples/freertos_hello
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
* rtos_examples/freertos_queue
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
* rtos_examples/freertos_sem
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
* rtos_examples/freertos_generic
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
* rtos_examples/freertos_uart
*SDK_PATH = '''{{#var:SDK_PATH}}'''
* rtos_examples/freertos_tickless
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
* rtos_examples/freertos_mutex
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* rtos_examples/freertos_event
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
* rtos_examples/freertos_swtimer
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
* rtos_examples/freertos_i2c
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/slave
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/master
*DEACTIVATE_LMEM_CACHE_PATCH = '''{{#var:DEACTIVATE_LMEM_CACHE_PATCH}}'''
* cmsis_driver_examples/uart/sdma_transfer
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
* cmsis_driver_examples/uart/interrupt_transfer
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
* cmsis_driver_examples/ecspi/int_loopback_transfer
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
* cmsis_driver_examples/ecspi/sdma_loopback_transfer
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
* multicore_examples/rpmsg_lite_str_echo_rtos
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
* demo_apps/hello_world<!--
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
--><section end=VAR-SOM-MX8M-NANO_DEMOS_SECTION/>
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


=== Memory types ===
=== mcuxpresso-2.13.0-mx8mm-v1.0 ===
<section begin=VAR-SOM-MX8MN_MEMORY-TYPES/><!--
<section begin=MCUXPRESSO_2.13.0_V1.0_DART-MX8M-MINI/><!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-MINI}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.13.0-mx8mm-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.13.0_V1.0_DART-MX8M-MINI}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.13.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.13.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mm}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M-MINI_PINS_SECTION_V2}}<!--
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-MINI_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|DART-MX8M-MINI_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M_JTAG_SECTION}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mm_mcuxpresso-2.13.0_v10}} <!--
-->{{#vardefine:RELEASE_DATE|02/02/2023}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MM}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8mm-yocto-kirkstone-5.15-2.0.x-v1.1}}<!--
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mm}}<!--
--><section end=MCUXPRESSO_2.13.0_V1.0_DART-MX8M-MINI/>
 
= VAR-SOM-MX8M-NANO =
 
== Sections ==


Here is available a short summary of memory areas used by Cortex-M7 as described in related linker file.
=== Available dtbs ===
<section begin=VAR-SOM-MX8M-NANO_DTBS_SECTION/><!--
-->To allow Cortex M7 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m7''' label in the name, using the fdt_file environment variable in U-Boot.


{| class="wikitable"
{| class="wikitable"
|-
|-
! scope="col" | memory type
! scope="col" | File Name<br/>
! scope="col" | M7 memory area
! scope="col" | Description<br/>
! scope="col" | A53 memory area
! scope="col" | memory lentgh
! scope="col" | linker file
|-
|-
| DDR
| style="padding: 5px;"| imx8mn-var-som-symphony-'''m7'''.dtb
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel = 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4a and above and for kernel >= 5.10.72 (Yocto Hardknott) on all Symphony-Boards
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
|-
| 16MB (DDR)
| style="padding: 5px;"| imx8mn-var-som-symphony-legacy-'''m7'''.dtb
| MIMX8MN6xxxxx_cm7_ddr_ram.ld
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel = 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4 and below
|-
| style="padding: 5px;"| imx8mn-var-som-'''m7'''.dtb
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel 5.4.3 - 5.4.24 (Yocto Zeus) on som rev > 1.0
|-
| style="padding: 5px;"| imx8mn-var-som-rev10-'''m7'''.dtb
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel 5.4.3 - 5.4.24 (Yocto Zeus) on som rev 1.0
|-
| style="padding: 5px;"| fsl-imx8mn-var-som-'''m7'''.dtb
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel < 5.4.3 on som rev > 1.0
|-
|-
| TCM
| style="padding: 5px;"| fsl-imx8mn-var-som-rev10-'''m7'''.dtb
| 0x00000000-0x0001FFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
| style="padding: 5px;"| VAR-SOM-MX8M-NANO device tree blob for kernel < 5.4.3 on som rev 1.0
| 0x007E0000-0x007FFFFF (code)<br>0x00800000-0x0081FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
| 256kB (TCM) + 16MB (DDR)
| MIMX8MN6xxxxx_cm7_ram.ld
|-
|-
|}
|}


All linker files are locate in the '''armgcc''' folder of each demo.
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M7.<!--
--><section end=VAR-SOM-MX8M-NANO_DTBS_SECTION/>


The DDR reserved area must much the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M7 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M7 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M7.
=== Default M7 pins ===
<section begin=VAR-SOM-MX8M-NANO_PINS_SECTION/><!--
-->Default M7 pins used by the demos are:


The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M7 accessing the RPMSG area.
{| class="wikitable"
 
|-
After launching the build_all.sh command the following folder will be created in the armgcc folder
! scope="col" | Function
 
! scope="col" | SoC balls
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
! scope="col" | VAR-SOM-MX8M-NANO pins
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
! scope="col" | Symphony pins
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
! scope="col" | Notes
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
 
Further details about memory mapping are available in [https://www.nxp.com/webapp/Download?colCode=IMX8MNRM i.MX 8M Applications Processors Reference Manual] paragraphs:
 
* 2.1.2 Cortex-A53 Memory Map
* 2.1.3 Cortex-M7 Memory Map<!--
--><section end=VAR-SOM-MX8MN_MEMORY-TYPES/>
 
=== JTAG ===
<section begin=VAR-SOM-MX8MN_JTAG_SECTION/><!--
-->VAR-SOM-MX8M-NANO exposes JTAG signals on a header (not assembled by default) on the SOM top left side.
 
Here the pinout
 
{| class="wikitable"
|-
|-
! scope="col" | pin
| UART3 RX/TX
! scope="col" | signal
| E18 / D18
! scope="col" | description
| J1.175 / J1.124
! scope="col" | pin
| J18.5 / J18.3
! scope="col" | signal
|
! scope="col" | description
|-
|-
| '''1'''
| GPIO4_IO23
| JTAG_VREF
| AC24
| JTAG IO reference voltage,<br>connected to SOM_3V3_PER via 150 Ohm.
| J1.21
| '''2'''
| J16.5
| JTAG_TMS
|
| JTAG Mode Select signal
|-
|-
| '''3'''
| I2C4 SCL/SDA
| GND
| D13 / E13
| Digital Ground
| J1.174 / J1.176
| '''4'''
| J16.10 / J16.12
| JTAG_TCK
|
| JTAG Clock signal,<br>include PD of 8.2K Ohm.
|-
|-
| '''5'''
| PWM3
| GND
| AF9
| Digital Ground
| J1.69
| '''6'''
| J18.2
| JTAG_TDO
|
| JTAG Data Out signal
|-
|-
| '''7'''
| SPI1 CS0/SCK/SDI/SDO
| GND
| B6 / D6 / A7 / B7
| Digital Ground
| J1.39 / J1.43 / J1.41 / J1.45
| '''8'''
| J16.4/ J16.2 / J16.6 / J16.8
| JTAG_TDI
| Enabling it SPI devices will be no longer visible from Linux
| JTAG Data In signal
|-
|-
| '''9'''
|}<!--
| JTAG_TRST_B
--><section end=VAR-SOM-MX8M-NANO_PINS_SECTION/>
| JTAG Reset signal,<br>active low signal
| '''10'''
| POR_B
| Programmer Reset,<br>used to put the SOC in reset state.
|-
|}


Please refer to SoM datasheet for further details.<!--
=== Available Demos ===
--><section end=VAR-SOM-MX8MN_JTAG_SECTION/>
<section begin=VAR-SOM-MX8M-NANO_DEMOS_SECTION/><!--
 
-->* driver_examples/i2c/interrupt_b2b_transfer/slave
== Releases ==
* driver_examples/i2c/interrupt_b2b_transfer/master
 
* driver_examples/i2c/polling_b2b_transfer/slave
=== mcuxpresso-2.7.0-mx8mn-v1.0 ===
* driver_examples/i2c/polling_b2b_transfer/master
<section begin=MCUXPRESSO_2.7.0_V1.0_VAR-SOM-MX8M-NANO/><!--
* driver_examples/wdog
-->{{#vardefine:OS|FreeRTOS}}<!--
* driver_examples/sdma/scatter_gather
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
* driver_examples/sdma/memory_to_memory
-->{{#vardefine:SOC_HAS_M7|true}}<!--
* driver_examples/gpio/led_output
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.7.0-mx8mn-v1.0}}<!--
* driver_examples/pwm
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.7.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
* driver_examples/uart/auto_baudrate_detect
-->{{#vardefine:MCUXPRESSO_VERSION|2.7.0}}<!--
* driver_examples/uart/interrupt
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* driver_examples/uart/idle_detect_sdma_transfer
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* driver_examples/uart/interrupt_rb_transfer
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.7.x-var01}}<!--
* driver_examples/uart/sdma_transfer
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2019q3/RC1.1/gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2}}<!--
* driver_examples/uart/polling
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2}}<!--
* driver_examples/uart/interrupt_transfer
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-8-2019-q3-update}}<!--
* driver_examples/gpt/timer
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
* driver_examples/gpt/capture
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* driver_examples/ecspi/ecspi_loopback
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/slave
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/master
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
* driver_examples/ecspi/polling_b2b_transfer/slave
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
* driver_examples/ecspi/polling_b2b_transfer/master
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
* driver_examples/rdc
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.7.0_v10}} <!--
* driver_examples/tmu_1/monitor_threshold
-->{{#vardefine:RELEASE_DATE|5/3/2020}} <!--
* driver_examples/tmu_1/temperature_polling
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
* driver_examples/sema4/uboot
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
* rtos_examples/freertos_ecspi/ecspi_loopback
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
* rtos_examples/freertos_hello
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
* rtos_examples/freertos_queue
--><section end=MCUXPRESSO_2.7.0_V1.0_VAR-SOM-MX8M-NANO/><!--
* rtos_examples/freertos_sem
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
* rtos_examples/freertos_generic
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
* rtos_examples/freertos_uart
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
* rtos_examples/freertos_tickless
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
* rtos_examples/freertos_mutex
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
* rtos_examples/freertos_event
*SDK_PATH = '''{{#var:SDK_PATH}}'''
* rtos_examples/freertos_swtimer
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
* rtos_examples/freertos_i2c
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/slave
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/master
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
* cmsis_driver_examples/uart/sdma_transfer
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
* cmsis_driver_examples/uart/interrupt_transfer
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
* cmsis_driver_examples/ecspi/int_loopback_transfer
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
* cmsis_driver_examples/ecspi/sdma_loopback_transfer
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
* multicore_examples/rpmsg_lite_str_echo_rtos
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
* demo_apps/hello_world<!--
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
--><section end=VAR-SOM-MX8M-NANO_DEMOS_SECTION/>
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
 
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
=== Memory types ===
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
<section begin=VAR-SOM-MX8MN_MEMORY-TYPES/><!--
=== mcuxpresso-2.8.0-mx8mn-v1.0 ===
-->The SDK allow linking using 2 different memory types: DDR, TCM.
<section begin=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8M-NANO/><!--
 
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
Here is available a short summary of memory areas used by Cortex-M7 as described in related linker file.
-->{{#vardefine:SOC_HAS_M7|true}}<!--
 
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8mn-v1.0}}<!--
{| class="wikitable"
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
|-
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
! scope="col" | memory type
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
! scope="col" | M7 memory area
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
! scope="col" | A53 memory area
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
! scope="col" | memory lentgh
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
! scope="col" | linker file
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
|-
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
| DDR
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| 0x7E000000-0x7E1FFFFF (code)<br>0x7E200000-0x7E3FFFFF (data)<br>0x7E400000-0x7EFFFFFF (data2)
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
| 16MB (DDR)
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
| MIMX8MN6xxxxx_cm7_ddr_ram.ld
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
|-
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
| TCM
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
| 0x00000000-0x0001FFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
| 0x007E0000-0x007FFFFF (code)<br>0x00800000-0x0081FFFF (data)<br>0x7E000000-0x7EFFFFFF (data2)
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
| 256kB (TCM) + 16MB (DDR)
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.8.0_v10}}<!--
| MIMX8MN6xxxxx_cm7_ram.ld
-->{{#vardefine:RELEASE_DATE|9/8/2020}}<!--
|-
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
|}
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
--><section end=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8M-NANO/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''


=== mcuxpresso-2.9.0-mx8mn-v1.0 ===
All linker files are locate in the '''armgcc''' folder of each demo.
<section begin=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8M-NANO/><!--
 
-->{{#vardefine:OS|FreeRTOS}}<!--
The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M7 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M7 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M7.
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
 
-->{{#vardefine:SOC_HAS_M7|true}}<!--
The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M7 accessing the RPMSG area.
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8mn-v1.0}}<!--
 
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
After launching the build_all.sh command the following folder will be created in the armgcc folder
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
 
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
 
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
Further details about memory mapping are available in the following [https://www.nxp.com/doc/IMX8MNRM i.MX 8M Nano Applications Processor Reference Manual] paragraphs:
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
                                                                                                     
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* 2.1.2 Cortex-A53 Memory Map
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
* 2.1.3 Cortex-M7 Memory Map<!--
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
--><section end=VAR-SOM-MX8MN_MEMORY-TYPES/>
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
 
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
=== JTAG ===
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
<section begin=VAR-SOM-MX8MN_JTAG_SECTION/><!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
-->VAR-SOM-MX8M-NANO exposes JTAG signals on a header (not assembled by default) on the SOM top left side.
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
 
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.9.0_v10}}<!--
Here is the pinout:
-->{{#vardefine:RELEASE_DATE|1/27/2021}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mn-v1.1}}<!--
--><section end=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8M-NANO/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


=== mcuxpresso-2.10.0-mx8mn-v1.0 ===
{| class="wikitable"
<section begin=MCUXPRESSO_2.10.0_V1.0_VAR-SOM-MX8M-NANO/><!--
|-
-->{{#vardefine:OS|FreeRTOS}}<!--
! scope="col" | pin
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
! scope="col" | signal
-->{{#vardefine:SOC_HAS_M7|true}}<!--
! scope="col" | description
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.10.0-mx8mn-v1.0}}<!--
! scope="col" | pin
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.10.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
! scope="col" | signal
-->{{#vardefine:MCUXPRESSO_VERSION|2.10.0}}<!--
! scope="col" | description
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
|-
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| '''1'''
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.10.x-var01}}<!--
| JTAG_VREF
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
| JTAG IO reference voltage,<br>connected to SOM_3V3_PER via 150 Ohm.
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
| '''2'''
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10-2020-q4-major}}<!--
| JTAG_TMS
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
| JTAG Mode Select signal
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
|-
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
| '''3'''
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
| GND
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
| Digital Ground
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
| '''4'''
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
| JTAG_TCK
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
| JTAG Clock signal,<br>include PD of 8.2K Ohm.
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
|-
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.10.0_v10}}<!--
| '''5'''
-->{{#vardefine:RELEASE_DATE|10/21/2021}}<!--
| GND
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
| Digital Ground
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
| '''6'''
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mn-v1.5}}<!--
| JTAG_TDO
--><section end=MCUXPRESSO_2.10.0_V1.0_VAR-SOM-MX8M-NANO/><!--
| JTAG Data Out signal
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
|-
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
| '''7'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
| GND
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
| Digital Ground
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
| '''8'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
| JTAG_TDI
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
| JTAG Data In signal
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
|-
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
| '''9'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
| JTAG_TRST_B
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
| JTAG Reset signal,<br>active low signal
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
| '''10'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
| POR_B
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
| Programmer Reset,<br>used to put the SOC in reset state.
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
|-
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
|}
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


= DART-MX8M-PLUS =
Please refer to SoM datasheet for further details.<!--
--><section end=VAR-SOM-MX8MN_JTAG_SECTION/>


== Sections ==
== Releases ==


=== Available dtbs ===
=== mcuxpresso-2.7.0-mx8mn-v1.0 ===
<section begin=DART-MX8M-PLUS_DTBS_SECTION/><!--
<section begin=MCUXPRESSO_2.7.0_V1.0_VAR-SOM-MX8M-NANO/><!--
-->To allow Cortex M7 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m7''' label in the name, using the fdt_file environment variable in U-Boot.
-->{{#vardefine:OS|FreeRTOS}}<!--
 
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M7.
-->{{#vardefine:SOC_HAS_M7|true}}<!--
 
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.7.0-mx8mn-v1.0}}<!--
{| class="wikitable"
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.7.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
|-
-->{{#vardefine:MCUXPRESSO_VERSION|2.7.0}}<!--
! scope="col" | File Name<br/>
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
! scope="col" | Description<br/>
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
|-
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.7.x-var01}}<!--
| style="padding: 5px;"| imx8mp-var-dart-dt8customboard-'''m7'''.dtb
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2019q3/RC1.1/gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2}}<!--
| style="padding: 5px;"| DART-MX8M-PLUS device tree blob for kernel >= 5.4.70 (Yocto Zeus) on DT8MCustomBoard 2.x
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2}}<!--
|-
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-8-2019-q3-update}}<!--
| style="padding: 5px;"| imx8mp-var-dart-dt8mcustomboard-legacy-'''m7'''.dtb
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
| style="padding: 5px;"| DART-MX8M-PLUS device tree blob for kernel >= 5.4.70 (Yocto Zeus) on on DT8MCustomBoard 1.x
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
|-
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
| style="padding: 5px;"| imx8mp-var-som-symphony-'''m7'''.dtb
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-PLUS device tree blob for kernels >= 5.4.70 (Yocto Zeus) on on Symphony-Board
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
|-
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
| style="padding: 5px;"| imx8mp-var-som-symphony-2nd-ov5640'''m7'''.dtb
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
| style="padding: 5px;"| VAR-SOM-MX8M-PLUS device tree blob for kernels >= 5.4.70 (Yocto Zeus) on on Symphony-Board with 2nd OV5640
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.7.0_v10}} <!--
|-
-->{{#vardefine:RELEASE_DATE|5/3/2020}} <!--
|}
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
 
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
<section end=DART-MX8M-PLUS_DTBS_SECTION/>
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
 
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
=== Default M7 pins v1 ===
--><section end=MCUXPRESSO_2.7.0_V1.0_VAR-SOM-MX8M-NANO/><!--
<section begin=DART-MX8M-PLUS_PINS_SECTION/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
-->Default M7 pins used by the demos are:
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
 
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
{| class="wikitable"
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
|-
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
! scope="col" | function
*SDK_PATH = '''{{#var:SDK_PATH}}'''
! scope="col" | SoC balls
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
! scope="col" | DART-MX8M-PLUS pins
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
! scope="col" | DT8MCB pins
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
! scope="col" | VAR-SOM-MX8M-PLUS pins
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
! scope="col" | Symphony pins
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
! scope="col" | notes
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
|-
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
| UART3 RX/TX
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
| AE6 / AJ4
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
| J2.87 / J2.89
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
| J12.11 / J12.13
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
|
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
|
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
|
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
|-
=== mcuxpresso-2.8.0-mx8mn-v1.0 ===
| UART4 RX/TX
<section begin=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8M-NANO/><!--
| AH5 / AJ5
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
|  
-->{{#vardefine:SOC_HAS_M7|true}}<!--
|  
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8mn-v1.0}}<!--
| J1.115 / J1.171
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
| J18.9 / J18.7
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
|  
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
|-
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| GPIO3_IO14
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
| R26
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
|
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
|
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
| J1.79
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
| J17.10
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
|
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
|-
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
| GPIO4_IO03
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
| AF10
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
| J2.59
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
| GPLED1
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
|
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
|
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.8.0_v10}}<!--
|
-->{{#vardefine:RELEASE_DATE|9/8/2020}}<!--
|-
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
| I2C3 SCL/SDA
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
| AJ7 / AJ6
--><section end=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8M-NANO/><!--
| J3.46 / J3.42
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
| J12.18/ J12.20
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
|
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
|
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
|
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
|-
*SDK_PATH = '''{{#var:SDK_PATH}}'''
| I2C4 SCL/SDA
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
| AF8 / AD8
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
|
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
|
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
| J1.92 / J1.90
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
| J16.13 / J16.15
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
| enabling it SPI devices will be no longer visible from Linux
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
|-
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
| PWM2
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
| D8
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
|
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
|
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
| J1.69
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
| J18.2
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
|
 
|-
=== mcuxpresso-2.9.0-mx8mn-v1.0 ===
| PWM3
<section begin=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8M-NANO/><!--
| AE18
-->{{#vardefine:OS|FreeRTOS}}<!--
| J3.36
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
| J14.7
-->{{#vardefine:SOC_HAS_M7|true}}<!--
|
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8mn-v1.0}}<!--
|
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
|
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
|-
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
| SPI1 CS0/SCK/SDI/SDO
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| AE20 / AF20 / AD20 / AC20
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
| J2.79 / J2.77 / J2.81 / J2.83
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
| J16.4/ J16.2 / J16.8 / J16.6
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
|
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
|
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
| enabling it SPI devices will be no longer visible from Linux
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
|-
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
| SPI2 CS0/SCK/SDI/SDO
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
| AJ22 / AH21 / AH20 / AJ21
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
|
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
|  
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
| J1.39 / J1.43 / J1.41 / J1.45
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
| J16.4/ J16.2 / J16.6 / J16.8
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
| enabling it SPI devices will be no longer visible from Linux
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.9.0_v10}}<!--
|-
-->{{#vardefine:RELEASE_DATE|1/27/2021}}<!--
{{#ifeq: {{#var:MCUXPRESSO_VERSION}} | 2.10.0 |
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
{{!}}-
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
{{!}} FLEXCAN1 RX/TX {{!}}{{!}} AH15 / AJ16 {{!}}{{!}} j2.56 / j2.50 {{!}}{{!}} J13.11 / J13.5 on DT8MCB rev 1.x, TTL levels (CAN transceiver not mounted!) {{!}}{{!}}  {{!}}{{!}}  {{!}}{{!}} enabling it FLEXCAN1 devices will be no longer visible from Linux
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mn-v1.1}}<!--
{{!}}-
--><section end=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8M-NANO/><!--
{{!}} {{!}}{{!}}  {{!}}{{!}}  {{!}}{{!}} J16.9 / J16.7 on DT8MCB rev 2.x, CANL/CANH levels (CAN transceiver mounted!) {{!}}{{!}}  {{!}}{{!}} {{!}}{{!}}
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
{{!}}-
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
{{!}} FLEXCAN2 RX/TX {{!}}{{!}} AJ4 / AE6 {{!}}{{!}}  {{!}}{{!}}  {{!}}{{!}} J1.46 / J1.44 {{!}}{{!}} J16.18 / J16.20, CANL/CANH levels (CAN transceiver mounted!) {{!}}{{!}} enabling it FLEXCAN2 devices will be no longer visible from Linux
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
{{!}}-
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
}}
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
|}<!--
*SDK_PATH = '''{{#var:SDK_PATH}}'''
--><section end=DART-MX8M-PLUS_PINS_SECTION/>
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


=== Available Demos ===
=== mcuxpresso-2.10.0-mx8mn-v1.0 ===
<section begin=DART-MX8M-PLUS_DEMOS_SECTION/><!--
<section begin=MCUXPRESSO_2.10.0_V1.0_VAR-SOM-MX8M-NANO/><!--
-->* driver_examples/i2c/interrupt_b2b_transfer/slave
-->{{#vardefine:OS|FreeRTOS}}<!--
* driver_examples/i2c/interrupt_b2b_transfer/master
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
* driver_examples/i2c/polling_b2b_transfer/slave
-->{{#vardefine:SOC_HAS_M7|true}}<!--
* driver_examples/i2c/polling_b2b_transfer/master
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.10.0-mx8mn-v1.0}}<!--
* driver_examples/wdog
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.10.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
* driver_examples/sdma/scatter_gather
-->{{#vardefine:MCUXPRESSO_VERSION|2.10.0}}<!--
* driver_examples/sdma/memory_to_memory
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* driver_examples/gpio/led_output
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* driver_examples/pwm
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.10.x-var01}}<!--
* driver_examples/uart/auto_baudrate_detect
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
* driver_examples/uart/interrupt
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
* driver_examples/uart/interrupt_rb_transfer
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10-2020-q4-major}}<!--
* driver_examples/uart/polling
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
* driver_examples/uart/interrupt_transfer
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* driver_examples/gpt/timer
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
* driver_examples/gpt/capture
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
* driver_examples/ecspi/ecspi_loopback
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/slave
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/master
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
* driver_examples/ecspi/polling_b2b_transfer/slave
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
* driver_examples/ecspi/polling_b2b_transfer/master
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
* driver_examples/rdc
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.10.0_v10}}<!--
* driver_examples/tmu/monitor_threshold
-->{{#vardefine:RELEASE_DATE|10/21/2021}}<!--
* driver_examples/tmu/temperature_polling
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
* driver_examples/sema4/uboot
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
{{#ifeq: {{#var:MCUXPRESSO_VERSION}} | 2.10.0 |
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mn-v1.6}}<!--
* driver_examples/canfd/interrupt_transfer
-->{{#vardefine:BOARD_SDK|som_mx8mn}}<!--
* driver_examples/canfd/loopback
--><section end=MCUXPRESSO_2.10.0_V1.0_VAR-SOM-MX8M-NANO/><!--
* driver_examples/canfd/loopback_transfer
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
* driver_examples/canfd/ping_pong_buffer_transfer
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
* driver_examples/flexcan/interrupt_transfer
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
* driver_examples/flexcan/loopback
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
* driver_examples/flexcan/loopback_transfer
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
* driver_examples/flexcan/ping_pong_buffer_transfer
*SDK_PATH = '''{{#var:SDK_PATH}}'''
}}
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
* rtos_examples/freertos_ecspi/ecspi_loopback
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* rtos_examples/freertos_hello
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
* rtos_examples/freertos_queue
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
* rtos_examples/freertos_sem
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
* rtos_examples/freertos_generic
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
* rtos_examples/freertos_uart
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
* rtos_examples/freertos_tickless
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
* rtos_examples/freertos_mutex
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
* rtos_examples/freertos_event
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
* rtos_examples/freertos_swtimer
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
* rtos_examples/freertos_i2c
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/slave
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/master
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
* cmsis_driver_examples/uart/interrupt_transfer
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
* cmsis_driver_examples/ecspi/int_loopback_transfer
* cmsis_driver_examples/ecspi/sdma_loopback_transfer
* multicore_examples/rpmsg_lite_str_echo_rtos
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
* demo_apps/hello_world
{{note|The demos below only work if loaded from U-Boot !}}
* driver_examples/uart/idle_detect_sdma_transfer
* driver_examples/uart/sdma_transfer
* cmsis_driver_examples/uart/sdma_transfer<!--
--><section end=DART-MX8M-PLUS_DEMOS_SECTION/>


=== Variscite Memory types ===
=== mcuxpresso-2.11.1-mx8mn-v1.0 ===
<section begin=DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION/><!--
<section begin=MCUXPRESSO_2.11.1_V1.0_VAR-SOM-MX8M-NANO/><!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.
-->{{#vardefine:OS|FreeRTOS}}<!--
 
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
Here is available a short summary of memory areas used by Cortex-M7 as described in related linker file.
-->{{#vardefine:SOC_HAS_M7|true}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.11.1-mx8mn-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.11.1_V1.0_VAR-SOM-MX8M-NANO}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.11.1}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.11.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.07}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.11.1_v10}}<!--
-->{{#vardefine:RELEASE_DATE|05/31/2022}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8mn-v1.8}}<!--
-->{{#vardefine:BOARD_SDK|som_mx8mn}}<!--
--><section end=MCUXPRESSO_2.11.1_V1.0_VAR-SOM-MX8M-NANO/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


{| class="wikitable"
=== mcuxpresso-2.12.1-mx8mn-v1.0 ===
|-
<section begin=MCUXPRESSO_2.12.1_V1.0_VAR-SOM-MX8M-NANO/><!--
! scope="col" | memory type
-->{{#vardefine:OS|FreeRTOS}}<!--
! scope="col" | M7 memory area
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
! scope="col" | A53 memory area
-->{{#vardefine:SOC_HAS_M7|true}}<!--
! scope="col" | memory lentgh
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.12.1-mx8mn-v1.0}}<!--
! scope="col" | linker file
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.12.1_V1.0_VAR-SOM-MX8M-NANO}}<!--
|-
-->{{#vardefine:MCUXPRESSO_VERSION|2.12.1}}<!--
| DDR
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
| 0x80000000-0x801FFFFF (code)<br>0x80200000-0x803FFFFF (data)<br>0x80400000-0x80FFFFFF (data2)
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| 0x80000000-0x801FFFFF (code)<br>0x80200000-0x803FFFFF (data)<br>0x80400000-0x80FFFFFF (data2)
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.12.x-var01}}<!--
| 16MB (DDR)
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
| MIMX8MN6xxxxx_cm7_ddr_ram.ld
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
|-
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
| TCM
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
| 0x00000000-0x0001FFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x80000000-0x80FFFFFF (data2)
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| 0x007E0000-0x007FFFFF (code)<br>0x00800000-0x0081FFFF (data)<br>0x80000000-0x80FFFFFF (data2)
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
| 256kB (TCM) + 16MB (DDR)
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
| MIMX8MN6xxxxx_cm7_ram.ld
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
|-
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
|}
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.12.1_v10}}<!--
-->{{#vardefine:RELEASE_DATE|11/14/2022}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8mn-yocto-hardknott-5.10.72_2.2.1-v1.0}}<!--
-->{{#vardefine:BOARD_SDK|som_mx8mn}}<!--
--><section end=MCUXPRESSO_2.12.1_V1.0_VAR-SOM-MX8M-NANO/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_M7 = '''{{#var:SOC_HAS_M7}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''


All linker files are locate in the '''armgcc''' folder of each demo.
=== mcuxpresso-2.13.0-mx8mn-v1.0 ===
<section begin=MCUXPRESSO_2.13.0_V1.0_VAR-SOM-MX8M-NANO/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8M-NANO}}<!--
-->{{#vardefine:SOC_HAS_M7|true}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.13.0-mx8mn-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.13.0_V1.0_VAR-SOM-MX8M-NANO}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.13.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.13.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8mn}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8M-NANO_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8M-NANO_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8M-NANO_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8MN_MEMORY-TYPES}}<!--
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8MN_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MN}}<!--
-->{{#vardefine:SDK_GIT_TAG|som-mx8mn_mcuxpresso-2.13.0_v10}}<!--
-->{{#vardefine:RELEASE_DATE|02/13/2023}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.0 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.2 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8mn-yocto-kirkstone-5.15-2.0.x-v1.0}}<!--
-->{{#vardefine:BOARD_SDK|som_mx8mn}}<!--
--><section end=MCUXPRESSO_2.13.0_V1.0_VAR-SOM-MX8M-NANO/>


The DDR reserved area must much the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M7 accessing the range 0x80000000 - 0x80FFFFFF.
= DART-MX8M-PLUS =


The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M7 accessing the RPMSG area.
== Sections ==


After launching the build_all.sh command the following folder will be created in the armgcc folder
=== Available dtbs ===
<section begin=DART-MX8M-PLUS_DTBS_SECTION/><!--
-->To allow Cortex M7 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m7''' label in the name, using the fdt_file environment variable in U-Boot.


* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M7.
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)


Further details about memory mapping are available in [https://www.nxp.com/webapp/Download?colCode=IMX8MPRM.pdf i.MX 8M-Plus Applications Processors Reference Manual] paragraphs:
{| class="wikitable"
|-
! scope="col" | File Name<br/>
! scope="col" | Description<br/>
|-
| style="padding: 5px;"| imx8mp-var-dart-dt8customboard-'''m7'''.dtb
| style="padding: 5px;"| DART-MX8M-PLUS device tree blob for kernel >= 5.4.70 (Yocto Zeus) on DT8MCustomBoard 2.x
|-
| style="padding: 5px;"| imx8mp-var-dart-dt8mcustomboard-legacy-'''m7'''.dtb
| style="padding: 5px;"| DART-MX8M-PLUS device tree blob for kernel >= 5.4.70 (Yocto Zeus) on on DT8MCustomBoard 1.x
|-
| style="padding: 5px;"| imx8mp-var-som-symphony-'''m7'''.dtb
| style="padding: 5px;"| VAR-SOM-MX8M-PLUS device tree blob for kernels >= 5.4.70 (Yocto Zeus) on on Symphony-Board
|-
| style="padding: 5px;"| imx8mp-var-som-symphony-2nd-ov5640'''m7'''.dtb
| style="padding: 5px;"| VAR-SOM-MX8M-PLUS device tree blob for kernels >= 5.4.70 (Yocto Zeus) on on Symphony-Board with 2nd OV5640
|-
|}


* 2.2 Cortex-A53 Memory Map
<section end=DART-MX8M-PLUS_DTBS_SECTION/>
* 2.3 Cortex-M7 Memory Map<!--
--><section end=DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION/>


=== JTAG ===
=== Default M7 pins v1 ===
<section begin=VAR-SOM-MX8M-PLUS_JTAG_SECTION/><!--
<section begin=DART-MX8M-PLUS_PINS_SECTION/><!--
-->VAR-SOM-MX8M-NANO exposes JTAG signals on a header (not assembled by default) on the SOM top left side.
-->Default M7 pins used by the demos are:
 
Here the pinout


{| class="wikitable"
{| class="wikitable"
|-
|-
! scope="col" | pin
! scope="col" | Function
! scope="col" | signal
! scope="col" | SoC balls
! scope="col" | description
! scope="col" | DART-MX8M-PLUS pins
! scope="col" | pin
! scope="col" | DT8MCB pins
! scope="col" | signal
! scope="col" | VAR-SOM-MX8M-PLUS pins
! scope="col" | description
! scope="col" | Symphony pins
! scope="col" | Notes
|-
|-
| '''1'''
| UART3 RX/TX
| JTAG_VREF
| AE6 / AJ4
| JTAG IO reference voltage,<br>connected to SOM_3V3_PER via 150 Ohm.
| J2.87 / J2.89
| '''2'''
| J12.11 / J12.13
| JTAG_TMS
|  
| JTAG Mode Select signal
|  
|  
|-
|-
| '''3'''
| UART4 RX/TX
| GND
| AH5 / AJ5
| Digital Ground
|  
| '''4'''
|  
| JTAG_TCK
| J1.115 / J1.171
| JTAG Clock signal,<br>include PD of 8.2K Ohm.
| J18.9 / J18.7
|
|-
|-
| '''5'''
| GPIO3_IO14
| GND
| R26
| Digital Ground
|  
| '''6'''
|  
| JTAG_TDO
| J1.79
| JTAG Data Out signal
| J17.10
|
|-
|-
| '''7'''
| GPIO4_IO03
| GND
| AF10
| Digital Ground
| J2.59
| '''8'''
| GPLED1 on DT8MCB rev 1.x<br>J11.20 on DT8MCB rev 2.x
| JTAG_TDI
|  
| JTAG Data In signal
|  
|
|-
|-
| '''9'''
| I2C3 SCL/SDA
| JTAG_TRST_B
| AJ7 / AJ6
| JTAG Reset signal,<br>active low signal
| J3.46 / J3.42
| '''10'''
| J12.18/ J12.20
| POR_B
|  
| Programmer Reset,<br>used to put the SOC in reset state.
|  
|
|-
| I2C4 SCL/SDA
| AF8 / AD8
|
|
| J1.92 / J1.90
| J16.13 / J16.15
| Enabling it SPI devices will be no longer visible from Linux
|-
|-
|}
| PWM2
 
| D8
Please refer to SoM datasheet for further details.<!--
|
--><section end=VAR-SOM-MX8M-PLUS_JTAG_SECTION/>
|
 
| J1.69
== Releases ==
| J18.2
 
|
=== mcuxpresso-2.9.0-mx8mp-v1.0 ===
|-
<section begin=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-PLUS/><!--
| PWM3
-->{{#vardefine:OS|FreeRTOS}}<!--
| AE18
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-PLUS}}<!--
| J3.36
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8mp-v1.0}}<!--
| J14.7
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_DART-MX8M-PLUS}}<!--
|
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
|
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
|
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
|-
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
| SPI1 CS0/SCK/SDI/SDO
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
| AE20 / AF20 / AD20 / AC20
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
| J2.79 / J2.77 / J2.81 / J2.83
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
| J16.4/ J16.2 / J16.8 / J16.6
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mp}}<!--
|
-->{{#vardefine:BOARD_FOLDER1|boards/som_mx8mp}}<!--
|
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| Enabling it SPI devices will be no longer visible from Linux
-->{{#vardefine:PINS_SECTION|DART-MX8M-PLUS_PINS_SECTION}}<!--
|-
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-PLUS_DEMOS_SECTION}}<!--
| SPI2 CS0/SCK/SDI/SDO
-->{{#vardefine:DTBS_SECTION|DART-MX8M-PLUS_DTBS_SECTION}}<!--
| AJ22 / AH21 / AH20 / AJ21
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION}}<!--
|  
-->{{#vardefine:JTAG_SECTION|DART-MX8M-PLUS_JTAG_SECTION}}<!--
|  
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mp_mcuxpresso-2.9.0_v10}} <!--
| J1.39 / J1.43 / J1.41 / J1.45
-->{{#vardefine:RELEASE_DATE|5/27/2021}} <!--
| J16.4/ J16.2 / J16.6 / J16.8
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
| Enabling it SPI devices will be no longer visible from Linux
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.4 and higher}} <!--
|-
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf}}<!--
{{#ifeq: {{#var:MCUXPRESSO_VERSION}} | 2.9.0 |
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MP}}<!--
|
-->{{#vardefine:YOCTO_RELEASE_TAG|zeus-fsl-5.4.70_2.3.2-mx8mp-v1.1}}<!--
{{!}}-
-->{{#vardefine:SOM_CAN_SUPPORT_1GB_DDR|yes}}<!--
{{!}} FLEXCAN1 RX/TX {{!}}{{!}} AH15 / AJ16 {{!}}{{!}} j2.56 / j2.50 {{!}}{{!}} J13.11 / J13.5 on DT8MCB rev 1.x, TTL levels (CAN transceiver not mounted!) {{!}}{{!}} {{!}}{{!}} {{!}}{{!}} Enabling it FLEXCAN1 devices will be no longer visible from Linux
--><section end=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-PLUS/><!--
{{!}}-
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
{{!}} {{!}}{{!}} {{!}}{{!}} {{!}}{{!}} J16.9 / J16.7 on DT8MCB rev 2.x, CANL/CANH levels (CAN transceiver mounted!) {{!}}{{!}} {{!}}{{!}} {{!}}{{!}}
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
{{!}}-
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
{{!}} FLEXCAN2 RX/TX {{!}}{{!}} AJ4 / AE6 {{!}}{{!}} {{!}}{{!}} {{!}}{{!}} J1.46 / J1.44 {{!}}{{!}} J16.18 / J16.20, CANL/CANH levels (CAN transceiver mounted!) {{!}}{{!}} Enabling it FLEXCAN2 devices will be no longer visible from Linux
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
{{!}}-
*SDK_PATH = '''{{#var:SDK_PATH}}'''
}}
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
|}<!--
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
--><section end=DART-MX8M-PLUS_PINS_SECTION/>
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*SOM_CAN_SUPPORT_1GB_DDR = '''{{#var:SOM_CAN_SUPPORT_1GB_DDR}}'''


=== mcuxpresso-2.10.0-mx8mp-v1.0 ===
=== Available Demos ===
<section begin=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-PLUS/><!--
<section begin=DART-MX8M-PLUS_DEMOS_SECTION/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->* driver_examples/i2c/interrupt_b2b_transfer/slave
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-PLUS}}<!--
* driver_examples/i2c/interrupt_b2b_transfer/master
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.10.0-mx8mp-v1.0}}<!--
* driver_examples/i2c/polling_b2b_transfer/slave
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.10.0_V1.0_DART-MX8M-PLUS}}<!--
* driver_examples/i2c/polling_b2b_transfer/master
-->{{#vardefine:MCUXPRESSO_VERSION|2.10.0}}<!--
* driver_examples/wdog
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* driver_examples/sdma/scatter_gather
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* driver_examples/sdma/memory_to_memory
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.10.x-var01}}<!--
* driver_examples/gpio/led_output
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
* driver_examples/pwm
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
* driver_examples/uart/auto_baudrate_detect
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10-2020-q4-major}}<!--
* driver_examples/uart/interrupt
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mp}}<!--
* driver_examples/uart/interrupt_rb_transfer
-->{{#vardefine:BOARD_FOLDER1|boards/som_mx8mp}}<!--
* driver_examples/uart/polling
-->{{#vardefine:BOARD_SDK|dart_mx8mm}}<!--
* driver_examples/uart/interrupt_transfer
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* driver_examples/gpt/timer
-->{{#vardefine:PINS_SECTION|DART-MX8M-PLUS_PINS_SECTION}}<!--
* driver_examples/gpt/capture
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-PLUS_DEMOS_SECTION}}<!--
* driver_examples/ecspi/ecspi_loopback
-->{{#vardefine:DTBS_SECTION|DART-MX8M-PLUS_DTBS_SECTION}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/slave
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION}}<!--
* driver_examples/ecspi/interrupt_b2b_transfer/master
-->{{#vardefine:JTAG_SECTION|DART-MX8M-PLUS_JTAG_SECTION}}<!--
* driver_examples/ecspi/polling_b2b_transfer/slave
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mp_mcuxpresso-2.10.0_v10}} <!--
* driver_examples/ecspi/polling_b2b_transfer/master
-->{{#vardefine:RELEASE_DATE|9/27/2021}} <!--
* driver_examples/rdc
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
* driver_examples/tmu/monitor_threshold
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.4 and higher}} <!--
* driver_examples/tmu/temperature_polling
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf}}<!--
* driver_examples/sema4/uboot
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MP}}<!--
{{#if: {{#var:SDK_SUPPORT_CAN}} |
-->{{#vardefine:YOCTO_RELEASE_TAG|hardknott-fsl-5.10.35_2.0.0-mx8mp-v1.2}}<!--
* driver_examples/canfd/interrupt_transfer
-->{{#vardefine:SOM_CAN_SUPPORT_1GB_DDR|yes}}<!--
* driver_examples/canfd/loopback
--><section end=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-PLUS/><!--
* driver_examples/canfd/loopback_transfer
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
* driver_examples/canfd/ping_pong_buffer_transfer
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
* driver_examples/flexcan/interrupt_transfer
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
* driver_examples/flexcan/loopback
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
* driver_examples/flexcan/loopback_transfer
*SDK_PATH = '''{{#var:SDK_PATH}}'''
* driver_examples/flexcan/ping_pong_buffer_transfer
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
}}
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* rtos_examples/freertos_ecspi/ecspi_loopback
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
* rtos_examples/freertos_hello
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
* rtos_examples/freertos_queue
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
* rtos_examples/freertos_sem
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
* rtos_examples/freertos_generic
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
* rtos_examples/freertos_uart
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
* rtos_examples/freertos_tickless
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
* rtos_examples/freertos_mutex
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
* rtos_examples/freertos_event
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
* rtos_examples/freertos_swtimer
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
* rtos_examples/freertos_i2c
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/slave
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
* cmsis_driver_examples/i2c/int_b2b_transfer/master
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
* cmsis_driver_examples/uart/interrupt_transfer
*SOM_CAN_SUPPORT_1GB_DDR = '''{{#var:SOM_CAN_SUPPORT_1GB_DDR}}'''
* cmsis_driver_examples/ecspi/int_loopback_transfer
* cmsis_driver_examples/ecspi/sdma_loopback_transfer
* multicore_examples/rpmsg_lite_str_echo_rtos
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
* demo_apps/hello_world
* driver_examples/uart/idle_detect_sdma_transfer
* driver_examples/uart/sdma_transfer
* cmsis_driver_examples/uart/sdma_transfer<!--
--><section end=DART-MX8M-PLUS_DEMOS_SECTION/>


= VAR-SOM-MX8X =
=== Variscite Memory types ===
<section begin=DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION/><!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.


== Sections ==
Here is available a short summary of memory areas used by Cortex-M7 as described in related linker file.


=== Available dtbs ===
{| class="wikitable"
<section begin=VAR-SOM-MX8X_DTBS_SECTION/><!--
-->To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m4''' label in the name, using the fdt_file environment variable in U-Boot.
 
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.
 
{| class="wikitable"
|-
|-
! scope="col" | File Name<br/>
! scope="col" | memory type
! scope="col" | Description<br/>
! scope="col" | M7 memory area
! scope="col" | A53 memory area
! scope="col" | memory lentgh
! scope="col" | linker file
|-
|-
| style="padding: 5px;"| imx8qxp-var-som-symphony-sd-'''m4'''.dtb
| DDR
| style="padding: 5px;"| VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
| 0x80000000-0x801FFFFF (code)<br>0x80200000-0x803FFFFF (data)<br>0x80400000-0x80FFFFFF (data2)
| 0x80000000-0x801FFFFF (code)<br>0x80200000-0x803FFFFF (data)<br>0x80400000-0x80FFFFFF (data2)
| 16MB (DDR)
| MIMX8MN6xxxxx_cm7_ddr_ram.ld
|-
|-
| style="padding: 5px;"| imx8qxp-var-som-symphony-'''m4'''.dtb
| TCM
| style="padding: 5px;"| VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
| 0x00000000-0x0001FFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x80000000-0x80FFFFFF (data2)
| 0x007E0000-0x007FFFFF (code)<br>0x00800000-0x0081FFFF (data)<br>0x80000000-0x80FFFFFF (data2)
| 256kB (TCM) + 16MB (DDR)
| MIMX8MN6xxxxx_cm7_ram.ld
|-
|-
|}
|}
<section end=VAR-SOM-MX8X_DTBS_SECTION/>


=== Default M4 pins ===
All linker files are locate in the '''armgcc''' folder of each demo.
<section begin=VAR-SOM-MX8X_PINS_SECTION/><!--
 
-->Default M4 pins used by the demos are:
The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M7 accessing the range 0x80000000 - 0x80FFFFFF.
 
The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M7 accessing the RPMSG area.


{| class="wikitable"
After launching the build_all.sh command the following folder will be created in the armgcc folder
|-
 
! scope="col" | function
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
 
Further details about memory mapping are available in the following [https://www.nxp.com/doc/IMX8MPRM i.MX 8M Plus Applications Processor Reference Manual] paragraphs:
 
* 2.2 Cortex-A53 Memory Map
* 2.3 Cortex-M7 Memory Map<!--
--><section end=DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION/>
 
=== JTAG ===
<section begin=DART-MX8M-PLUS_JTAG_SECTION/><!--
 
-->The VAR-SOM-MX8M-PLUS exposes JTAG interface via an optional 10-pin header, on the SOM top left side.<br>
The DART-MX8M-PLUS exports JTAG interface via an optional 10-pin header, on the DT8MCustomBoard top side.
 
Here is the pinout:
 
{| class="wikitable"
|-
! scope="col" | pin
! scope="col" | pin
! scope="col" | signal
! scope="col" | description
! scope="col" | pin
! scope="col" | signal
! scope="col" | description
|-
|-
| debug UART (UART2)
| '''1'''
| RX: J18.5 / TX: J18.3
| JTAG_VREF
| JTAG IO reference voltage,<br>connected to SOM_3V3_PER via 150 Ohm.
| '''2'''
| JTAG_TMS
| JTAG Mode Select signal
|-
|-
| I2C (I2C3)
| '''3'''
| SCL: J16.10 / SDA: J16.12
| GND
|-
| Digital Ground
| M4 GPIO (M40_GPIO0_IO00)
| '''4'''
| J16.3
| JTAG_TCK
| JTAG Clock signal,<br>include PD of 8.2K Ohm.
|-
| '''5'''
| GND
| Digital Ground
| '''6'''
| JTAG_TDO
| JTAG Data Out signal
|-
|-
| M4 PWM (M40_TPM0_CH0)
| '''7'''
| J16.7
| GND
| Digital Ground
| '''8'''
| JTAG_TDI
| JTAG Data In signal
|-
|-
<!--
| '''9'''
| CAN (CAN1)
| JTAG_TRST_B
| RX: J18.9 / TX: J18.7
| JTAG Reset signal,<br>active low signal
| '''10'''
| POR_B
| Programmer Reset,<br>used to put the SOC in reset state.
|-
|-
-->
|}
|}<!--
 
--><section end=VAR-SOM-MX8X_PINS_SECTION/>
Please refer to SoM datasheet for further details.<!--
--><section end=DART-MX8M-PLUS_JTAG_SECTION/>


=== Available Demos ===
== Releases ==
<section begin=VAR-SOM-MX8X_DEMOS_SECTION/><!--
 
-->* cmsis_driver_examples/lpi2c/int_b2b_transfer/slave
=== mcuxpresso-2.9.0-mx8mp-v1.0 ===
* cmsis_driver_examples/lpi2c/int_b2b_transfer/master
<section begin=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-PLUS/><!--
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/slave
-->{{#vardefine:OS|FreeRTOS}}<!--
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/master
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-PLUS}}<!--
* cmsis_driver_examples/lpuart/edma_transfer
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8mp-v1.0}}<!--
* cmsis_driver_examples/lpuart/interrupt_transfer
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_DART-MX8M-PLUS}}<!--
* demo_apps/hello_world
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
* driver_examples/edma/scatter_gather
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* driver_examples/edma/memory_to_memory
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* driver_examples/intmux
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
* driver_examples/lpi2c/edma_b2b_transfer/slave
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
* driver_examples/lpi2c/edma_b2b_transfer/master
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
* driver_examples/lpi2c/interrupt_b2b_transfer/slave
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
* driver_examples/lpi2c/interrupt_b2b_transfer/master
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mp}}<!--
* driver_examples/lpi2c/polling_b2b_transfer/slave
-->{{#vardefine:BOARD_FOLDER1|boards/som_mx8mp}}<!--
* driver_examples/lpi2c/polling_b2b_transfer/master
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* driver_examples/lpi2c/read_accel_value_transfer
-->{{#vardefine:PINS_SECTION|DART-MX8M-PLUS_PINS_SECTION}}<!--
* driver_examples/lpit
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-PLUS_DEMOS_SECTION}}<!--
* driver_examples/lpuart/edma_transfer
-->{{#vardefine:DTBS_SECTION|DART-MX8M-PLUS_DTBS_SECTION}}<!--
* driver_examples/lpuart/interrupt_rb_transfer
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION}}<!--
* driver_examples/lpuart/polling
-->{{#vardefine:JTAG_SECTION|DART-MX8M-PLUS_JTAG_SECTION}}<!--
* driver_examples/lpuart/interrupt_transfer
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mp_mcuxpresso-2.9.0_v10}} <!--
* driver_examples/rgpio/led_output
-->{{#vardefine:RELEASE_DATE|5/27/2021}} <!--
* driver_examples/sema42/uboot
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
* driver_examples/tpm/input_capture
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.4 and higher}} <!--
* driver_examples/tpm/dual_edge_capture
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf}}<!--
* driver_examples/tpm/timer
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MP}}<!--
* driver_examples/tpm/simple_pwm
-->{{#vardefine:YOCTO_RELEASE_TAG|zeus-fsl-5.4.70_2.3.2-mx8mp-v1.1}}<!--
* driver_examples/tpm/output_compare
-->{{#vardefine:SOM_CAN_SUPPORT_1GB_DDR|yes}}<!--
* driver_examples/tstmr
--><section end=MCUXPRESSO_2.9.0_V1.0_DART-MX8M-PLUS/><!--
* driver_examples/wdog32
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
* mmcau_examples/mmcau_api
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
* multicore_examples/rpmsg_lite_str_echo_rtos
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
* rtos_examples/freertos_hello
*SDK_PATH = '''{{#var:SDK_PATH}}'''
* rtos_examples/freertos_queue
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
* rtos_examples/freertos_sem
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* rtos_examples/freertos_generic
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
* rtos_examples/freertos_tickless
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
* rtos_examples/freertos_mutex
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
* rtos_examples/freertos_event
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
* rtos_examples/freertos_swtimer
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
Additional demos are available as reference code, but require HW/SW customization.<!--
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
* demo_apps/power_mode_switch
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
* driver_examples/canfd/loopback_transfer
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
* driver_examples/canfd/loopback
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
* driver_examples/canfd/interrupt_transfer
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
* driver_examples/enet/txrx_multiring_transfer
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
* driver_examples/enet/txrx_transfer
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
* driver_examples/enet/txrx_ptp1588_transfer
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
* driver_examples/flexcan/loopback_edma_transfer
*SOM_CAN_SUPPORT_1GB_DDR = '''{{#var:SOM_CAN_SUPPORT_1GB_DDR}}'''
* driver_examples/flexcan/loopback_transfer
 
* driver_examples/flexcan/loopback
=== mcuxpresso-2.10.0-mx8mp-v1.0 ===
* driver_examples/flexcan/interrupt_transfer
<section begin=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-PLUS/><!--
* driver_examples/ftm/pwm_twochannel
-->{{#vardefine:OS|FreeRTOS}}<!--
* driver_examples/ftm/combine_pwm
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-PLUS}}<!--
* driver_examples/ftm/input_capture
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.10.0-mx8mp-v1.0}}<!--
* driver_examples/ftm/dual_edge_capture
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.10.0_V1.0_DART-MX8M-PLUS}}<!--
* driver_examples/ftm/timer
-->{{#vardefine:MCUXPRESSO_VERSION|2.10.0}}<!--
* driver_examples/ftm/simple_pwm
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* driver_examples/ftm/output_compare
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* driver_examples/gpio/led_output
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.10.x-var01}}<!--
* driver_examples/lpadc/interrupt
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
* driver_examples/lpadc/polling
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2}}<!--
* lwip_examples/lwip_ping/bm
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10-2020-q4-major}}<!--
* lwip_examples/lwip_ping/freertos
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mp}}<!--
* lwip_examples/lwip_iperf/bm
-->{{#vardefine:BOARD_FOLDER1|boards/som_mx8mp}}<!--
* lwip_examples/lwip_httpsrv/bm
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* lwip_examples/lwip_httpsrv/freertos
-->{{#vardefine:PINS_SECTION|DART-MX8M-PLUS_PINS_SECTION}}<!--
* lwip_examples/lwip_tcpecho/bm
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-PLUS_DEMOS_SECTION}}<!--
* lwip_examples/lwip_tcpecho/freertos
-->{{#vardefine:DTBS_SECTION|DART-MX8M-PLUS_DTBS_SECTION}}<!--
* lwip_examples/lwip_udpecho/bm
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION}}<!--
* lwip_examples/lwip_udpecho/freertos
-->{{#vardefine:JTAG_SECTION|DART-MX8M-PLUS_JTAG_SECTION}}<!--
* lwip_examples/lwip_dhcp/bm
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mp_mcuxpresso-2.10.0_v10}} <!--
* lwip_examples/lwip_dhcp/freertos
-->{{#vardefine:RELEASE_DATE|9/27/2021}} <!--
--><!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
--><section end=VAR-SOM-MX8X_DEMOS_SECTION/>
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.4 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MP}}<!--
-->{{#vardefine:SOM_CAN_SUPPORT_1GB_DDR|yes}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|hardknott-fsl-5.10.52_2.1.0-mx8mp-v1.2}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mp}}<!--
--><section end=MCUXPRESSO_2.10.0_V1.0_DART-MX8M-PLUS/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*SOM_CAN_SUPPORT_1GB_DDR = '''{{#var:SOM_CAN_SUPPORT_1GB_DDR}}'''


=== NXP Memory types ===
=== mcuxpresso-2.11.1-mx8mp-v1.0 ===
<section begin=VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION/><!--
<section begin=MCUXPRESSO_2.11.1_V1.0_DART-MX8M-PLUS/><!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-PLUS}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.11.1-mx8mp-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.11.1_V1.0_DART-MX8M-PLUS}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.11.1}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.11.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.07}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mp}}<!--
-->{{#vardefine:BOARD_FOLDER1|boards/som_mx8mp}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M-PLUS_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-PLUS_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|DART-MX8M-PLUS_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M-PLUS_JTAG_SECTION}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mp_mcuxpresso-2.11.1_v10}} <!--
-->{{#vardefine:RELEASE_DATE|5/26/2022}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.4 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MP}}<!--
-->{{#vardefine:SOM_CAN_SUPPORT_1GB_DDR|yes}}<!--
-->{{#vardefine:SDK_SUPPORT_CAN|yes}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|hardknott-fsl-5.10.52_2.1.0-mx8mp-v1.2}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mp}}<!--
--><section end=MCUXPRESSO_2.11.1_V1.0_DART-MX8M-PLUS/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*SOM_CAN_SUPPORT_1GB_DDR = '''{{#var:SOM_CAN_SUPPORT_1GB_DDR}}'''


Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.
=== mcuxpresso-2.12.1-mx8mp-v1.0 ===
 
<section begin=MCUXPRESSO_2.12.1_V1.0_DART-MX8M-PLUS/><!--
{| class="wikitable"
-->{{#vardefine:OS|FreeRTOS}}<!--
|-
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-PLUS}}<!--
! scope="col" | memory type
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.12.1-mx8mp-v1.0}}<!--
! scope="col" | M4 memory area
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.12.1_V1.0_DART-MX8M-PLUS}}<!--
! scope="col" | A35 memory area
-->{{#vardefine:MCUXPRESSO_VERSION|2.12.1}}<!--
! scope="col" | memory lentgh
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
! scope="col" | linker file
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
|-
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.12.x-var01}}<!--
| DDR
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
| 0x88000000-0x881FFFFF (code)<br>0x88200000-0x883FFFFF (data)<br>0x88400000-0x8FFFFFFF (data2)
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
| 0x88000000-0x881FFFFF (code)<br>0x88200000-0x883FFFFF (data)<br>0x88400000-0x8FFFFFFF (data2)
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
| 128MB (DDR)
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mp}}<!--
| MIMX8QX6xxxFZ_cm4_ddr_ram.ld
-->{{#vardefine:BOARD_FOLDER1|boards/som_mx8mp}}<!--
|-
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| TCM
-->{{#vardefine:PINS_SECTION|DART-MX8M-PLUS_PINS_SECTION}}<!--
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x88000000-0x8FFFFFFF (data2)
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-PLUS_DEMOS_SECTION}}<!--
| 0x34FE0000-0x34FFFFFF (code)<br>0x35000000-0x3501FFFF (data)<br>0x88000000-0x8FFFFFFF (data2)
-->{{#vardefine:DTBS_SECTION|DART-MX8M-PLUS_DTBS_SECTION}}<!--
| 256kB (TCM) + 128MB (DDR)
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION}}<!--
| MIMX8QX6xxxFZ_cm4_ram.ld
-->{{#vardefine:JTAG_SECTION|DART-MX8M-PLUS_JTAG_SECTION}}<!--
|-
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mp_mcuxpresso-2.12.1_v10}} <!--
|}
-->{{#vardefine:RELEASE_DATE|11/02/2022}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.4 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MP}}<!--
-->{{#vardefine:SOM_CAN_SUPPORT_1GB_DDR|yes}}<!--
-->{{#vardefine:SDK_SUPPORT_CAN|yes}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8mp-yocto-kirkstone-5.15-2.0.x-v1.0}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mp}}<!--
--><section end=MCUXPRESSO_2.12.1_V1.0_DART-MX8M-PLUS/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}'''
*SOM_CAN_SUPPORT_1GB_DDR = '''{{#var:SOM_CAN_SUPPORT_1GB_DDR}}'''


All linker files are locate in the '''armgcc''' folder of each demo.
=== mcuxpresso-2.13.0-mx8mp-v1.0 ===
 
<section begin=MCUXPRESSO_2.13.0_V1.0_DART-MX8M-PLUS/><!--
After launching the build_all.sh command the following folder will be created in the armgcc folder
-->{{#vardefine:OS|FreeRTOS}}<!--
 
-->{{#vardefine:HARDWARE_NAME|DART-MX8M-PLUS}}<!--
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.13.0-mx8mp-v1.0}}<!--
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.13.0_V1.0_DART-MX8M-PLUS}}<!--
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
-->{{#vardefine:MCUXPRESSO_VERSION|2.13.0}}<!--
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.13.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-10.3-2021.10}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/dart_mx8mp}}<!--
-->{{#vardefine:BOARD_FOLDER1|boards/som_mx8mp}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|DART-MX8M-PLUS_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|DART-MX8M-PLUS_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|DART-MX8M-PLUS_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|DART-MX8M-PLUS_JTAG_SECTION}}<!--
-->{{#vardefine:SDK_GIT_TAG|dart-mx8mp_mcuxpresso-2.13.0_v10}} <!--
-->{{#vardefine:RELEASE_DATE|02/08/2023}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.4 and higher}} <!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|EVK-MIMX8MP}}<!--
-->{{#vardefine:SOM_CAN_SUPPORT_1GB_DDR|yes}}<!--
-->{{#vardefine:SDK_SUPPORT_CAN|yes}}<!--
-->{{#vardefine:YOCTO_RELEASE_TAG|mx8mp-yocto-kirkstone-5.15-2.0.x-v1.2}}<!--
-->{{#vardefine:BOARD_SDK|dart_mx8mp}}<!--
--><section end=MCUXPRESSO_2.13.0_V1.0_DART-MX8M-PLUS/>


Further details about memory mapping are available in [https://www.nxp.com/webapp/Download?colCode=IMX8DQXPRM i.MX 8DualXPlus/8QuadXPlus Applications Processor Reference Manual] paragraphs:
= VAR-SOM-MX8X =


* 2.2 System Memory Map
== Sections ==
* 2.2.9 Cortex-M4 Memory Map<!--
--><section end=VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION/>


=== JTAG ===
=== Available dtbs ===
<section begin=VAR-SOM-MX8X_JTAG_SECTION/><!--
<section begin=VAR-SOM-MX8X_DTBS_SECTION/><!--
-->The VAR-SOM-MX8X exposes JTAG interface via an optional 10-pin header
-->To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m4''' label in the name, using the fdt_file environment variable in U-Boot.


Here the pinout
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.


{| class="wikitable"
{| class="wikitable"
|-
|-
! scope="col" | pin
! scope="col" | File Name<br/>
! scope="col" | signal
! scope="col" | Description<br/>
! scope="col" | description
|-
! scope="col" | pin
| style="padding: 5px;"| imx8qxp-var-som-symphony-sd-'''m4'''.dtb
! scope="col" | signal (ball)
| style="padding: 5px;"| VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
! scope="col" | description
|-
|-
| '''1'''
| style="padding: 5px;"| imx8qxp-var-som-symphony-'''m4'''.dtb
| JTAG_VREF
| style="padding: 5px;"| VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
| JTAG reference voltage (3.3V)
| '''2'''
| JTAG_TMS (AG35)
| JTAG Mode Select
|-
|-
| '''3'''
|}
| GND
<section end=VAR-SOM-MX8X_DTBS_SECTION/>
| Digital Ground
 
| '''4'''
=== Default M4 pins ===
| JTAG_TCK (AE31)
<section begin=VAR-SOM-MX8X_PINS_SECTION/><!--
| JTAG Clock
-->Default M4 pins used by the demos are:
 
{| class="wikitable"
|-
|-
| '''5'''
! scope="col" | Function
| GND
! scope="col" | Pin
| Digital Ground
| '''6'''
| JTAG_TDO (AF32)
| JTAG Data Out
|-
|-
| '''7'''
| debug UART (UART2)
| RTCK
| RX: J18.5 / TX: J18.3
| JTAG Return clock
| '''8'''
| JTAG_TDI (AH34)
| JTAG Data In
|-
|-
| '''9'''
| I2C (I2C3)
| JTAG_TRST_B_CONN
| SCL: J16.10 / SDA: J16.12
| JTAG TAP reset
|-
| '''10'''
| M4 GPIO (M40_GPIO0_IO00)
| JTAG_SRST_B
| J16.3
| JTAG System reset
|-
| M4 PWM (M40_TPM0_CH0)
| J16.7
|-
|-
|}
Please refer to SOM datasheet for further details.
<!--
<!--
--><section end=VAR-SOM-MX8X_JTAG_SECTION/>
| CAN (CAN1)
| RX: J18.9 / TX: J18.7
|-
-->
|}<!--
--><section end=VAR-SOM-MX8X_PINS_SECTION/>


== Releases ==
=== Available Demos ===
 
<section begin=VAR-SOM-MX8X_DEMOS_SECTION/><!--
=== mcuxpresso-2.5.2-mx8qx-v1.0 ===
-->* cmsis_driver_examples/lpi2c/int_b2b_transfer/slave
<section begin=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8X/><!--
* cmsis_driver_examples/lpi2c/int_b2b_transfer/master
-->{{#vardefine:OS|FreeRTOS}}<!--
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/slave
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8X}}<!--
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/master
-->{{#vardefine:SOC_HAS_SCU|true}}<!--
* cmsis_driver_examples/lpuart/edma_transfer
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.2-mx8qx-v1.0}}<!--
* cmsis_driver_examples/lpuart/interrupt_transfer
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8X}}<!--
* demo_apps/hello_world
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8X}}<!--
* driver_examples/edma/scatter_gather
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.2}}<!--
* driver_examples/edma/memory_to_memory
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* driver_examples/intmux
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* driver_examples/lpi2c/edma_b2b_transfer/slave
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
* driver_examples/lpi2c/edma_b2b_transfer/master
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
* driver_examples/lpi2c/interrupt_b2b_transfer/slave
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
* driver_examples/lpi2c/interrupt_b2b_transfer/master
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-7-2018-q2-update}}<!--
* driver_examples/lpi2c/polling_b2b_transfer/slave
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qx}}<!--
* driver_examples/lpi2c/polling_b2b_transfer/master
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* driver_examples/lpi2c/read_accel_value_transfer
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8X_PINS_SECTION}}<!--
* driver_examples/lpit
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8X_DEMOS_SECTION}}<!--
* driver_examples/lpuart/edma_transfer
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8X_DTBS_SECTION}}<!--
* driver_examples/lpuart/interrupt_rb_transfer
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION}}<!--
* driver_examples/lpuart/polling
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8X_JTAG_SECTION}}<!--
* driver_examples/lpuart/interrupt_transfer
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8QuadXPlus.pdf}}<!--
* driver_examples/rgpio/led_output
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QXP-MEK}}<!--
* driver_examples/sema42/uboot
-->{{#vardefine:SCFW_SOC|mx8qx_b0}} <!--
* driver_examples/tpm/input_capture
-->{{#vardefine:SCFW_PATCH_URL|ftp://customerv:Variscite1@ftp.variscite.com/VAR-SOM-MX8X/Software/SCFW}} <!--
* driver_examples/tpm/dual_edge_capture
-->{{#vardefine:SCFW_M4_PATCH|0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff}} <!--
* driver_examples/tpm/timer
-->{{#vardefine:SDK_GIT_TAG|som-mx8qx_mcuxpresso-2.5.2_v10}} <!--
* driver_examples/tpm/simple_pwm
-->{{#vardefine:RELEASE_DATE|2/10/2020}} <!--
* driver_examples/tpm/output_compare
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
* driver_examples/tstmr
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
* driver_examples/wdog32
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QX}} <!--
* mmcau_examples/mmcau_api
--><section end=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8X/><!--
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
* multicore_examples/rpmsg_lite_str_echo_rtos
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
* rtos_examples/freertos_hello
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
* rtos_examples/freertos_queue
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
* rtos_examples/freertos_sem
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
* rtos_examples/freertos_generic
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
* rtos_examples/freertos_tickless
*SDK_PATH = '''{{#var:SDK_PATH}}'''
* rtos_examples/freertos_mutex
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
* rtos_examples/freertos_event
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* rtos_examples/freertos_swtimer
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
Additional demos are available as reference code, but require HW/SW customization.<!--
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
* demo_apps/power_mode_switch
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
* driver_examples/canfd/loopback_transfer
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
* driver_examples/canfd/loopback
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
* driver_examples/canfd/interrupt_transfer
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
* driver_examples/enet/txrx_multiring_transfer
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
* driver_examples/enet/txrx_transfer
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
* driver_examples/enet/txrx_ptp1588_transfer
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
* driver_examples/flexcan/loopback_edma_transfer
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
* driver_examples/flexcan/loopback_transfer
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
* driver_examples/flexcan/loopback
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
* driver_examples/flexcan/interrupt_transfer
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
* driver_examples/ftm/pwm_twochannel
*SCFW_PATCH_URL = = '''{{#var:SCFW_PATCH_URL}}
* driver_examples/ftm/combine_pwm
*SCFW_M4_PATCH = = '''{{#var:SCFW_M4_PATCH}}
* driver_examples/ftm/input_capture
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
* driver_examples/ftm/dual_edge_capture
 
* driver_examples/ftm/timer
=== mcuxpresso-2.8.0-mx8qx-v1.0 ===
* driver_examples/ftm/simple_pwm
<section begin=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8X/><!--
* driver_examples/ftm/output_compare
-->{{#vardefine:OS|FreeRTOS}}<!--
* driver_examples/gpio/led_output
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8X}}<!--
* driver_examples/lpadc/interrupt
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8qx-v1.0}}<!--
* driver_examples/lpadc/polling
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8X}}<!--
* lwip_examples/lwip_ping/bm
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8X}}<!--
* lwip_examples/lwip_ping/freertos
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
* lwip_examples/lwip_iperf/bm
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* lwip_examples/lwip_httpsrv/bm
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* lwip_examples/lwip_httpsrv/freertos
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
* lwip_examples/lwip_tcpecho/bm
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
* lwip_examples/lwip_tcpecho/freertos
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
* lwip_examples/lwip_udpecho/bm
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
* lwip_examples/lwip_udpecho/freertos
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qx}}<!--
* lwip_examples/lwip_dhcp/bm
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* lwip_examples/lwip_dhcp/freertos
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8X_PINS_SECTION}}<!--
--><!--
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8X_DEMOS_SECTION}}<!--
--><section end=VAR-SOM-MX8X_DEMOS_SECTION/>
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8X_DTBS_SECTION}}<!--
 
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION}}<!--
=== NXP Memory types ===
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8X_JTAG_SECTION}}<!--
<section begin=VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION/><!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QX.pdf}}<!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QXP-MEK}}<!--
 
-->{{#vardefine:SCFW_SOC|mx8qx_b0}} <!--
Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.
-->{{#vardefine:SCFW_PATCH_URL|ftp://customerv:Variscite1@ftp.variscite.com/VAR-SOM-MX8X/Software/SCFW}} <!--
 
-->{{#vardefine:SCFW_M4_PATCH|0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff}} <!--
{| class="wikitable"
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QX}} <!--
|-
-->{{#vardefine:SDK_GIT_TAG|som-mx8qx_mcuxpresso-2.8.0_v10}}<!--
! scope="col" | memory type
-->{{#vardefine:RELEASE_DATE|02/18/2021}}<!--
! scope="col" | M4 memory area
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
! scope="col" | A35 memory area
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
! scope="col" | memory lentgh
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8x-v1.0}}<!--
! scope="col" | linker file
--><section end=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8X/><!--
|-
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
| DDR
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
| 0x88000000-0x881FFFFF (code)<br>0x88200000-0x883FFFFF (data)<br>0x88400000-0x8FFFFFFF (data2)
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
| 0x88000000-0x881FFFFF (code)<br>0x88200000-0x883FFFFF (data)<br>0x88400000-0x8FFFFFFF (data2)
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
| 128MB (DDR)
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
| MIMX8QX6xxxFZ_cm4_ddr_ram.ld
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
|-
*SDK_PATH = '''{{#var:SDK_PATH}}'''
| TCM
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x88000000-0x8FFFFFFF (data2)
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
| 0x34FE0000-0x34FFFFFF (code)<br>0x35000000-0x3501FFFF (data)<br>0x88000000-0x8FFFFFFF (data2)
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
| 256kB (TCM) + 128MB (DDR)
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
| MIMX8QX6xxxFZ_cm4_ram.ld
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
|-
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
|}
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
 
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
All linker files are locate in the '''armgcc''' folder of each demo.
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
 
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
After launching the build_all.sh command the following folder will be created in the armgcc folder
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*SCFW_PATCH_URL = = '''{{#var:SCFW_PATCH_URL}}
*SCFW_M4_PATCH = = '''{{#var:SCFW_M4_PATCH}}
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}


=== mcuxpresso-2.9.0-mx8qx-v1.0 ===
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
<section begin=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8X/><!--
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:OS|FreeRTOS}}<!--
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8X}}<!--
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8qx-v1.0}}<!--
 
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8X}}<!--
Further details about memory mapping are available in the following [https://www.nxp.com/doc/IMX8DQXPRM i.MX 8DualX/8DualXPlus/8QuadXPlus Applications Processor Reference Manual] paragraphs:
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8X}}<!--
 
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
* 2.2 System Memory Map
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* 2.2.9 Cortex-M4 Memory Map<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
--><section end=VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION/>
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
 
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
=== JTAG ===
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
<section begin=VAR-SOM-MX8X_JTAG_SECTION/><!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
-->The VAR-SOM-MX8X exposes JTAG interface via an optional 10-pin header
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qx}}<!--
 
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
Here is the pinout:
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8X_PINS_SECTION}}<!--
 
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8X_DEMOS_SECTION}}<!--
{| class="wikitable"
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8X_DTBS_SECTION}}<!--
|-
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION}}<!--
! scope="col" | pin
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8X_JTAG_SECTION}}<!--
! scope="col" | signal
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QX.pdf}}<!--
! scope="col" | description
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QXP-MEK}}<!--
! scope="col" | pin
-->{{#vardefine:SCFW_SOC|mx8qx_b0}} <!--
! scope="col" | signal (ball)
-->{{#vardefine:SCFW_PATCH_URL|ftp://customerv:Variscite1@ftp.variscite.com/VAR-SOM-MX8X/Software/SCFW}} <!--
! scope="col" | description
-->{{#vardefine:SCFW_M4_PATCH|0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff}} <!--
|-
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QX}} <!--
| '''1'''
-->{{#vardefine:SDK_GIT_TAG|som-mx8qx_mcuxpresso-2.9.0_v10}}<!--
| JTAG_VREF
-->{{#vardefine:RELEASE_DATE|03/04/2021}}<!--
| JTAG reference voltage (3.3V)
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
| '''2'''
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
| JTAG_TMS (AG35)
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8x-v1.0}}<!--
| JTAG Mode Select
--><section end=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8X/><!--
|-
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
| '''3'''
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
| GND
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
| Digital Ground
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
| '''4'''
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
| JTAG_TCK (AE31)
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
| JTAG Clock
*SDK_PATH = '''{{#var:SDK_PATH}}'''
|-
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
| '''5'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
| GND
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
| Digital Ground
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
| '''6'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
| JTAG_TDO (AF32)
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
| JTAG Data Out
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
|-
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
| '''7'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
| RTCK
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
| JTAG Return clock
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
| '''8'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
| JTAG_TDI (AH34)
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
| JTAG Data In
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
|-
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
| '''9'''
*SCFW_PATCH_URL = = '''{{#var:SCFW_PATCH_URL}}
| JTAG_TRST_B_CONN
*SCFW_M4_PATCH = = '''{{#var:SCFW_M4_PATCH}}
| JTAG TAP reset
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
| '''10'''
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
| JTAG_SRST_B
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
| JTAG System reset
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
|-
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
|}
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}


= VAR-SOM-MX8 =
Please refer to SOM datasheet for further details.


== Sections ==
<!--
--><section end=VAR-SOM-MX8X_JTAG_SECTION/>


=== Available dtbs ===
== Releases ==
<section begin=VAR-SOM-MX8_DTBS_SECTION/><!--
-->To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m4''' label in the name, using the fdt_file environment variable in U-Boot.


This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.
=== mcuxpresso-2.5.2-mx8qx-v1.0 ===
 
<section begin=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8X/><!--
{| class="wikitable"
-->{{#vardefine:OS|FreeRTOS}}<!--
|-
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8X}}<!--
! scope="col" | File Name<br/>
-->{{#vardefine:SOC_HAS_SCU|true}}<!--
! scope="col" | Description<br/>
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.2-mx8qx-v1.0}}<!--
|-
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8X}}<!--
| style="padding: 5px;"| imx8qm-var-som-lvds-'''m4'''.dtb
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8X}}<!--
| style="padding: 5px;"| VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.2}}<!--
|-
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
| style="padding: 5px;"| imx8qm-var-som-hdmi-'''m4'''.dtb
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| style="padding: 5px;"| VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
|-
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
| style="padding: 5px;"| imx8qm-var-som-lvds-'''m4'''.dtb
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
| style="padding: 5px;"| VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-7-2018-q2-update}}<!--
|-
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qx}}<!--
| style="padding: 5px;"| imx8qm-var-spear-dp-'''m4'''.dtb
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| style="padding: 5px;"| VAR-SPEAR-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8X_PINS_SECTION}}<!--
|-
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8X_DEMOS_SECTION}}<!--
| style="padding: 5px;"| imx8qm-var-spear-hdmi-'''m4'''.dtb
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8X_DTBS_SECTION}}<!--
| style="padding: 5px;"| VAR-SPEAR-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION}}<!--
|-
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8X_JTAG_SECTION}}<!--
| style="padding: 5px;"| imx8qm-var-spear-lvds-'''m4'''.dtb
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8QuadXPlus.pdf}}<!--
| style="padding: 5px;"| VAR-SPEAR-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QXP-MEK}}<!--
|-
-->{{#vardefine:SCFW_SOC|mx8qx_b0}} <!--
|}
-->{{#vardefine:SCFW_PATCH_URL|{{VAR_FILES_DOMAIN_URL}}/VAR-SOM-MX8X/Software/SCFW}} <!--
<section end=VAR-SOM-MX8_DTBS_SECTION/>
-->{{#vardefine:SCFW_M4_PATCH|0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff}} <!--
 
-->{{#vardefine:SDK_GIT_TAG|som-mx8qx_mcuxpresso-2.5.2_v10}} <!--
=== Default M4 pins ===
-->{{#vardefine:RELEASE_DATE|2/10/2020}} <!--
<section begin=VAR-SOM-MX8_PINS_SECTION/><!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->Default M4 pins used by the demos are:
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QX}} <!--
--><section end=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8X/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*SCFW_PATCH_URL = = '''{{#var:SCFW_PATCH_URL}}
*SCFW_M4_PATCH = = '''{{#var:SCFW_M4_PATCH}}
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}


{| class="wikitable"
=== mcuxpresso-2.8.0-mx8qx-v1.0 ===
|-
<section begin=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8X/><!--
! scope="col" | function
-->{{#vardefine:OS|FreeRTOS}}<!--
! scope="col" | SoC balls
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8X}}<!--
! scope="col" | VAR-SOM-MX8 pins
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8qx-v1.0}}<!--
! scope="col" | Symphony pins
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8X}}<!--
! scope="col" | SPEAR-MX8 pins
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8X}}<!--
! scope="col" | SP8CustomBoard pins
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
! scope="col" | notes
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
|-
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| M40_UART0 RX / TX
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
| AM44 / AU51
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
| N/A
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
| N/A
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
| J3.32 / J3.38
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qx}}<!--
| J40
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| SP8CustomBoard requires SW8 ON, SW9 OFF
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8X_PINS_SECTION}}<!--
|-
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8X_DEMOS_SECTION}}<!--
| DMA_UART2 RX / TX
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8X_DTBS_SECTION}}<!--
| BE35 / BE37
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION}}<!--
| J1.175 / J1.124
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8X_JTAG_SECTION}}<!--
| J18.5 / J18.3
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QX.pdf}}<!--
| J1.80 / J1.82
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QXP-MEK}}<!--
| J26.19 /J26.17
-->{{#vardefine:SCFW_SOC|mx8qx_b0}} <!--
|
-->{{#vardefine:SCFW_PATCH_URL|{{VAR_FILES_DOMAIN_URL}}/VAR-SOM-MX8X/Software/SCFW}} <!--
|-
-->{{#vardefine:SCFW_M4_PATCH|0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff}} <!--
| DMA_UART4 RX / TX
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QX}} <!--
| AR47 / AU53
-->{{#vardefine:SDK_GIT_TAG|som-mx8qx_mcuxpresso-2.8.0_v10}}<!--
| J1.115 / J1.171
-->{{#vardefine:RELEASE_DATE|02/18/2021}}<!--
| J18.9 / J18.7
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
| J3.34 / J3.29
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
| J20.2 / J20.4
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8x-v1.0}}<!--
| SPEAR-MX8 demos do not refer it
--><section end=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8X/><!--
|-
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
| FLEXCAN0 RX/TX
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
| C5 / H6
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
| J1.46 / J1.44
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
| J16.18 / J16.20
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
| J4.79 / J4.80
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
| J26.1 / J26.3
*SDK_PATH = '''{{#var:SDK_PATH}}'''
|
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
|-
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
| M41_I2C0 SCL/SDA
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
| AR45 / AU49
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
| N/A
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
| N/A
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
| J1.9 / J3.36
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
| J20.18 / J20.20
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
|
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
|-
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
| DMA_I2C0 SCL/SDA
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
| BN9 / BN7
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
| J1.174 / J1.176
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
| J16.10 / J16.12
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
| J2.88 / J1.90
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
| J26.2 / J26.4
*SCFW_PATCH_URL = = '''{{#var:SCFW_PATCH_URL}}
|
*SCFW_M4_PATCH = = '''{{#var:SCFW_M4_PATCH}}
|-
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
| DMA_SPI0 CS0 / SCK / SDI / SDO
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
| BC1 / BB4 / BA5 / AY6
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
| J1.79 / J1.75 / J1.77 / J1.70
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
| J17.10 / J17.6 / J17.8 / J17.4
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
| J2.78 / j2.74 / J2.72 / J2.76
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}
| J20.7 / J20.1 / J20.5 / J20.3
|
|-
| ADC_IN6
| AL9
| J1.39
| J16.4
| J4.62
| J29.16
| VAR-SOM-MX8 requires enabling a buffer (refer to the datasheet)
|-
| M40_TPM0 0 / 1
| AR47 / AU53
| J1.115 / J1.171
| J18.9 / J18.7
| J3.34 / J3.29
| J20.2 / J20.4
| pins are share with with DMA_UART4
|-
| GPIO3_IO06
| BA3
| J1.40
| J17.2
| J2.80
| J20.9
|
|-
|}<!--
--><section end=VAR-SOM-MX8_PINS_SECTION/>


=== Available Demos ===
=== mcuxpresso-2.9.0-mx8qx-v1.0 ===
<section begin=VAR-SOM-MX8_DEMOS_SECTION/><!--
<section begin=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8X/><!--
-->* cmsis_driver_examples/lpi2c/int_b2b_transfer/master
-->{{#vardefine:OS|FreeRTOS}}<!--
* cmsis_driver_examples/lpi2c/int_b2b_transfer/slave
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8X}}<!--
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/master
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8qx-v1.0}}<!--
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/slave
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8X}}<!--
* cmsis_driver_examples/lpuart/edma_transfer
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8X}}<!--
* cmsis_driver_examples/lpuart/interrupt_transfer
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
* cmsis_driver_examples/lpspi/edma_b2b_transfer/master
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* cmsis_driver_examples/lpspi/edma_b2b_transfer/slave
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
* cmsis_driver_examples/lpspi/int_b2b_transfer/master
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
* cmsis_driver_examples/lpspi/int_b2b_transfer/slave
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
* demo_apps/hello_world
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
* driver_examples/canfd/loopback_transfer
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
* driver_examples/canfd/loopback
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qx}}<!--
* driver_examples/canfd/interrupt_transfer
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* driver_examples/edma/scatter_gather
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8X_PINS_SECTION}}<!--
* driver_examples/edma/memory_to_memory
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8X_DEMOS_SECTION}}<!--
* driver_examples/flexcan/loopback_edma_transfer
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8X_DTBS_SECTION}}<!--
* driver_examples/flexcan/loopback_transfer
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION}}<!--
* driver_examples/flexcan/loopback
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8X_JTAG_SECTION}}<!--
* driver_examples/flexcan/interrupt_transfer
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QX.pdf}}<!--
* driver_examples/intmux
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QXP-MEK}}<!--
* driver_examples/lpadc/interrupt
-->{{#vardefine:SCFW_SOC|mx8qx_b0}} <!--
* driver_examples/lpadc/polling
-->{{#vardefine:SCFW_PATCH_URL|{{VAR_FILES_DOMAIN_URL}}/VAR-SOM-MX8X/Software/SCFW}} <!--
* driver_examples/lpi2c/edma_b2b_transfer/slave
-->{{#vardefine:SCFW_M4_PATCH|0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff}} <!--
* driver_examples/lpi2c/edma_b2b_transfer/master
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QX}} <!--
* driver_examples/lpi2c/interrupt_b2b_transfer/slave
-->{{#vardefine:SDK_GIT_TAG|som-mx8qx_mcuxpresso-2.9.0_v10}}<!--
* driver_examples/lpi2c/interrupt_b2b_transfer/master
-->{{#vardefine:RELEASE_DATE|03/04/2021}}<!--
* driver_examples/lpi2c/polling_b2b_transfer/slave
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
* driver_examples/lpi2c/polling_b2b_transfer/master
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
* driver_examples/lpi2c/read_accel_value_transfer
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8x-v1.0}}<!--
* driver_examples/lpspi/edma_b2b_transfer/master
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0001-i.MX8QX-deactivated-the-LMEM-caches-to-debug-in-exte.patch}}<!--
* driver_examples/lpspi/edma_b2b_transfer/slave
--><section end=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8X/><!--
* driver_examples/lpspi/interrupt_b2b/master
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
* driver_examples/lpspi/interrupt_b2b/slave
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
* driver_examples/lpspi/interrupt_b2b_transfer/master
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
* driver_examples/lpspi/interrupt_b2b_transfer/slave
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
* driver_examples/lpspi/polling_b2b_transfer/master
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
* driver_examples/lpspi/polling_b2b_transfer/slave
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
* driver_examples/lpspi/polling_b2b_transfer/master
*SDK_PATH = '''{{#var:SDK_PATH}}'''
* driver_examples/lpspi/polling_b2b_transfer/slave
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
* driver_examples/lpit
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* driver_examples/lpuart/edma_transfer
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
* driver_examples/lpuart/interrupt_rb_transfer
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
* driver_examples/lpuart/polling
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
* driver_examples/lpuart/interrupt_transfer
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
* driver_examples/lpuart/interrupt
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
* driver_examples/gpio/led_output
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
* driver_examples/rgpio/led_output
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
* driver_examples/sema42/uboot
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
* driver_examples/sema42/dual_core
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
* driver_examples/tpm/timer
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
* driver_examples/tpm/simple_pwm
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
* driver_examples/tpm/pwm_twochannel
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
* driver_examples/tpm/output_compare
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
* driver_examples/tpm/input_capture
*SCFW_PATCH_URL = = '''{{#var:SCFW_PATCH_URL}}
* driver_examples/tpm/dual_edge_capture
*SCFW_M4_PATCH = = '''{{#var:SCFW_M4_PATCH}}
* driver_examples/tpm/combine_pwm
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
* driver_examples/tstmr
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
* driver_examples/wdog32
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
* mmcau_examples/mmcau_api
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
* multicore_examples/rpmsg_lite_str_echo_rtos
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}
* multicore_examples/rpmsg_lite_pingpong_rtos/sdk_remote
 
* multicore_examples/rpmsg_lite_pingpong_rtos/sdk_master
= VAR-SOM-MX8 =
* rtos_examples/freertos_hello
 
* rtos_examples/freertos_queue
== Sections ==
* rtos_examples/freertos_sem
 
* rtos_examples/freertos_generic
=== Available dtbs ===
* rtos_examples/freertos_tickless
<section begin=VAR-SOM-MX8_DTBS_SECTION/><!--
* rtos_examples/freertos_mutex
-->To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing '''m4''' label in the name, using the fdt_file environment variable in U-Boot.
* rtos_examples/freertos_lpuart
 
* rtos_examples/freertos_event
This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.<br>
* rtos_examples/freertos_swtimer
 
* rtos_examples/freertos_lpi2c
{| class="wikitable"
* rtos_examples/freertos_lpspi_b2b/master
|-
* rtos_examples/freertos_lpspi_b2b/slave
! scope="col" | File Name<br/>
* rtos_examples/freertos_lpspi
! scope="col" | Description<br/>
Additional demos are available as reference code, but require HW/SW customization.
|-
<!--
| style="padding: 5px;"| imx8qm-var-som-symphony-dp-'''m4'''.dtb
* demo_apps/power_mode_switch
| style="padding: 5px;"| DTB file for VAR-SOM-MX8 with DP display and Cortex-M4 on Symphony Board for kernel >= 5.10.72 (Yocto Hardknott)
* driver_examples/enet/txrx_multiring_transfer
|-
* driver_examples/enet/txrx_transfer
| style="padding: 5px;"| imx8qm-var-som-symphony-hdmi-'''m4'''.dtb
* driver_examples/enet/txrx_ptp1588_transfer
| style="padding: 5px;"| DTB file for VAR-SOM-MX8 with HDMI display and Cortex-M4 on Symphony Board for kernel >= 5.10.72 (Yocto Hardknott)
* lwip_examples/lwip_ping/bm
|-
* lwip_examples/lwip_ping/freertos
| style="padding: 5px;"| imx8qm-var-som-symphony-lvds-'''m4'''.dtb
* lwip_examples/lwip_iperf/bm
| style="padding: 5px;"| DTB file for VAR-SOM-MX8 with LVDS display and Cortex-M4 on Symphony Board for kernel >= 5.10.72 (Yocto Hardknott)
* lwip_examples/lwip_httpsrv/bm
|-
* lwip_examples/lwip_httpsrv/freertos
| style="padding: 5px;"| imx8qm-var-spear-sp8customboard-dp-'''m4'''.dtb
* lwip_examples/lwip_tcpecho/bm
| style="padding: 5px;"| DTB file for SPEAR-MX8 with DP display and Cortex-M4 on SP8CustomBoard for kernel >= 5.10.72 (Yocto Hardknott)
* lwip_examples/lwip_tcpecho/freertos
|-
* lwip_examples/lwip_udpecho/bm
| style="padding: 5px;"| imx8qm-var-spear-sp8customboard-hdmi-'''m4'''.dtb
* lwip_examples/lwip_udpecho/freertos
| style="padding: 5px;"| DTB file for SPEAR-MX8 with HDMI display and Cortex-M4 on SP8CustomBoard for kernel >= 5.10.72 (Yocto Hardknott)
* lwip_examples/lwip_dhcp/bm
|-
* lwip_examples/lwip_dhcp/freertos
| style="padding: 5px;"| imx8qm-var-spear-sp8customboard-lvds.'''m4'''.dtb
--><!--
| style="padding: 5px;"| DTB file for SPEAR-MX8 with LVDS display and Cortex-M4 on SP8CustomBoard for kernel >= 5.10.72 (Yocto Hardknott)
{{#if: {{#var:SOC_HAS_SCU}} |
|-
if needed, RPMSG functionality require applying the following kernel patch for the kernel 4.14.98
| style="padding: 5px;"| imx8qm-var-som-dp-'''m4'''.dtb
| style="padding: 5px;"| DTB file for VAR-SOM-MX8 with DP display and Cortex-M4 on Symphony Board for kernel = 5.4.142 (Yocto Dunfell)
|-
| style="padding: 5px;"| imx8qm-var-som-hdmi-'''m4'''.dtb
| style="padding: 5px;"| DTB file for VAR-SOM-MX8 with HDMI display and Cortex-M4 on Symphony Board for kernel = 5.4.142 (Yocto Dunfell)
|-
| style="padding: 5px;"| imx8qm-var-som-lvds-'''m4'''.dtb
| style="padding: 5px;"| DTB file for VAR-SOM-MX8 with LVDS display and Cortex-M4 on Symphony Board for kernel = 5.4.142 (Yocto Dunfell)
|-
| style="padding: 5px;"| imx8qm-var-spear-dp-'''m4'''.dtb
| style="padding: 5px;"| DTB file for SPEAR-MX8 with DP display and Cortex-M4 on SP8CustomBoard for kernel = 5.4.142 (Yocto Dunfell)
|-
| style="padding: 5px;"| imx8qm-var-spear-hdmi-'''m4'''.dtb
| style="padding: 5px;"| DTB file for SPEAR-MX8 with HDMI display and Cortex-M4 on SP8CustomBoard for kernel = 5.4.142 (Yocto Dunfell)
|-
| style="padding: 5px;"| imx8qm-var-spear-lvds-'''m4'''.dtb
| style="padding: 5px;"| DTB file for SPEAR-MX8 with LVDS display and Cortex-M4 on SP8CustomBoard for kernel = 5.4.142 (Yocto Dunfell)
|-
|}
<section end=VAR-SOM-MX8_DTBS_SECTION/>
 
=== Default M4 pins ===
<section begin=VAR-SOM-MX8_PINS_SECTION/><!--
-->Default M4 pins used by the demos are:


<pre>
{| class="wikitable"
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi
|-
index 1814a639d8f0..dcc12eb85c0a 100644
! scope="col" | Function
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi
! scope="col" | SoC balls
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi
! scope="col" | VAR-SOM-MX8 pins
@@ -1205,28 +1205,28 @@
! scope="col" | Symphony pins
};
! scope="col" | SPEAR-MX8 pins
! scope="col" | SP8CustomBoard pins
&intmux_cm40 {
! scope="col" | Notes
- status = "okay";
|-
+ status = "didabled";
| M40_UART0 RX / TX
};
| AM44 / AU51
| N/A
&rpmsg{
| N/A
/*
| J3.32 / J3.38
* 64K for one rpmsg instance:
| J40
*/
| SP8CustomBoard requires SW8 ON, SW9 OFF
- vdev-nums = <1>;
|-
- reg = <0x0 0x90000000 0x0 0x10000>;
| DMA_UART2 RX / TX
+ vdev-nums = <2>;
| BE35 / BE37
+ reg = <0x0 0x90000000 0x0 0x20000>;
| J1.175 / J1.124
status = "okay";
| J18.5 / J18.3
};
| J1.80 / J1.82
| J26.19 /J26.17
&intmux_cm41 {
|
- status = "okay";
|-
+ status = "disabled";
| DMA_UART4 RX / TX
};
| AR47 / AU53
| J1.115 / J1.171
&rpmsg1{
| J18.9 / J18.7
/*
| J3.34 / J3.29
* 64K for one rpmsg instance:
| J20.2 / J20.4
*/
| SPEAR-MX8 demos do not refer it
- vdev-nums = <1>;
|-
- reg = <0x0 0x90100000 0x0 0x10000>;
| FLEXCAN0 RX/TX
+ vdev-nums = <2>;
| C5 / H6
+ reg = <0x0 0x90100000 0x0 0x20000>;
| J1.46 / J1.44
status = "okay";
| J16.18 / J16.20
};
| J4.79 / J4.80
| J26.1 / J26.3
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi
|
index 982da0e412f8..5df8783e56aa 100644
|-
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi
| M41_I2C0 SCL/SDA
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi
| AR45 / AU49
@@ -1357,28 +1357,28 @@
| N/A
};
| N/A
| J1.9 / J3.36
&intmux_cm40 {
| J20.18 / J20.20
- status = "okay";
|
+ status = "disabled";
|-
};
| DMA_I2C0 SCL/SDA
| BN9 / BN7
&rpmsg {
| J1.174 / J1.176
/*
| J16.10 / J16.12
* 64K for one rpmsg instance:
| J2.88 / J1.90
*/
| J26.2 / J26.4
- vdev-nums = <1>;
|
- reg = <0x0 0x90000000 0x0 0x10000>;
|-
+ vdev-nums = <2>;
| DMA_SPI0 CS0 / SCK / SDI / SDO
+ reg = <0x0 0x90000000 0x0 0x20000>;
| BC1 / BB4 / BA5 / AY6
status = "okay";
| J1.79 / J1.75 / J1.77 / J1.70
};
| J17.10 / J17.6 / J17.8 / J17.4
| J2.78 / j2.74 / J2.72 / J2.76
&intmux_cm41 {
| J20.7 / J20.1 / J20.5 / J20.3
- status = "okay";
|
+ status = "disabled";
|-
};
| ADC_IN6
| AL9
&rpmsg1 {
| J1.39
/*
| J16.4
* 64K for one rpmsg instance:
| J4.62
*/
| J29.16
- vdev-nums = <1>;
| VAR-SOM-MX8 requires enabling a buffer (refer to the datasheet)
- reg = <0x0 0x90100000 0x0 0x10000>;
|-
+ vdev-nums = <2>;
| M40_TPM0 0 / 1
+ reg = <0x0 0x90100000 0x0 0x20000>;
| AR47 / AU53
status = "okay";
| J1.115 / J1.171
};
| J18.9 / J18.7
</pre>
| J3.34 / J3.29
}}
| J20.2 / J20.4
--><section end=VAR-SOM-MX8_DEMOS_SECTION/>
| pins are share with with DMA_UART4
 
|-
=== NXP Memory types ===
| GPIO3_IO06
<section begin=VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION/><!--
| BA3
-->The SDK allow linking using 2 different memory types: DDR, TCM.
| J1.40
 
| J17.2
Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.
| J2.80
 
| J20.9
{| class="wikitable"
|
|-
|-
! scope="col" | memory type
|}<!--
! scope="col" | M4 if
--><section end=VAR-SOM-MX8_PINS_SECTION/>
! scope="col" | M4 memory area
! scope="col" | memory lentgh
! scope="col" | linker file
|-
| DDR
| 0
| 0x88000000-0x881FFFFF (code)<br>0x88200000-0x883FFFFF (data)<br>0x88400000-0x887FFFFF (data2)
| 8MB (DDR)
| MIMX8QM6xxxFF_cm4_core0_ddr_ram.ld
|-
| DDR
| 1
| 0x88800000-0x88BFFFFF (code)<br>0x88C00000-0x88FFFFFF (data)<br>0x89000000-0x8FFFFFFF (data2)
| 120MB (DDR)
| MIMX8QM6xxxFF_cm4_core1_ddr_ram.ld
|-
| TCM
| 0
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x88000000-0x887FFFFF (data2)
| 256kB (TCM) + 8MB (DDR)
| MIMX8QM6xxxFF_cm4_core0_ram.ld
|-
| TCM
| 1
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x88800000-0x8FFFFFFF (data2)
| 256kB (TCM) + 120MB (DDR)
| MIMX8QM6xxxFF_cm4_core1_ram.ld
|-
|}


All linker files are locate in the '''armgcc''' folder of each demo.
=== Available Demos ===
 
<section begin=VAR-SOM-MX8_DEMOS_SECTION/><!--
After launching the build_all.sh command the following folder will be created in the armgcc folder
-->* cmsis_driver_examples/lpi2c/int_b2b_transfer/master
 
* cmsis_driver_examples/lpi2c/int_b2b_transfer/slave
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/master
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
* cmsis_driver_examples/lpi2c/edma_b2b_transfer/slave
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
* cmsis_driver_examples/lpuart/edma_transfer
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
* cmsis_driver_examples/lpuart/interrupt_transfer
<!--
* cmsis_driver_examples/lpspi/edma_b2b_transfer/master
--><section end=VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION/>
* cmsis_driver_examples/lpspi/edma_b2b_transfer/slave
 
* cmsis_driver_examples/lpspi/int_b2b_transfer/master
=== JTAG ===
* cmsis_driver_examples/lpspi/int_b2b_transfer/slave
<section begin=VAR-SOM-MX8_JTAG_SECTION/><!--
* demo_apps/hello_world
-->The VAR-SOM-MX8 and SPEAR-MX8 exposes JTAG interface via an optional 10-pin header
* driver_examples/canfd/loopback_transfer
 
* driver_examples/canfd/loopback
Here the pinout
* driver_examples/canfd/interrupt_transfer
 
* driver_examples/edma/scatter_gather
{| class="wikitable"
* driver_examples/edma/memory_to_memory
|-
* driver_examples/flexcan/loopback_edma_transfer
! scope="col" | pin
* driver_examples/flexcan/loopback_transfer
! scope="col" | signal
* driver_examples/flexcan/loopback
! scope="col" | description
* driver_examples/flexcan/interrupt_transfer
! scope="col" | pin
* driver_examples/intmux
! scope="col" | signal (ball)
* driver_examples/lpadc/interrupt
! scope="col" | description
* driver_examples/lpadc/polling
|-
* driver_examples/lpi2c/edma_b2b_transfer/slave
| '''1'''
* driver_examples/lpi2c/edma_b2b_transfer/master
| JTAG_VREF
* driver_examples/lpi2c/interrupt_b2b_transfer/slave
| JTAG reference voltage (3.3V)
* driver_examples/lpi2c/interrupt_b2b_transfer/master
| '''2'''
* driver_examples/lpi2c/polling_b2b_transfer/slave
| JTAG_TMS (AG35)
* driver_examples/lpi2c/polling_b2b_transfer/master
| JTAG Mode Select
* driver_examples/lpi2c/read_accel_value_transfer
|-
* driver_examples/lpspi/edma_b2b_transfer/master
| '''3'''
* driver_examples/lpspi/edma_b2b_transfer/slave
| GND
* driver_examples/lpspi/interrupt_b2b/master
| Digital Ground
* driver_examples/lpspi/interrupt_b2b/slave
| '''4'''
* driver_examples/lpspi/interrupt_b2b_transfer/master
| JTAG_TCK (AE31)
* driver_examples/lpspi/interrupt_b2b_transfer/slave
| JTAG Clock
* driver_examples/lpspi/polling_b2b_transfer/master
|-
* driver_examples/lpspi/polling_b2b_transfer/slave
| '''5'''
* driver_examples/lpspi/polling_b2b_transfer/master
| GND
* driver_examples/lpspi/polling_b2b_transfer/slave
| Digital Ground
* driver_examples/lpit
| '''6'''
* driver_examples/lpuart/edma_transfer
| JTAG_TDO (AF32)
* driver_examples/lpuart/interrupt_rb_transfer
| JTAG Data Out
* driver_examples/lpuart/polling
|-
* driver_examples/lpuart/interrupt_transfer
| '''7'''
* driver_examples/lpuart/interrupt
| RTCK
* driver_examples/gpio/led_output
| JTAG Return clock
* driver_examples/rgpio/led_output
| '''8'''
* driver_examples/sema42/uboot
| JTAG_TDI (AH34)
* driver_examples/sema42/dual_core
| JTAG Data In
* driver_examples/tpm/timer
|-
* driver_examples/tpm/simple_pwm
| '''9'''
* driver_examples/tpm/pwm_twochannel
| JTAG_TRST_B_CONN
* driver_examples/tpm/output_compare
| JTAG TAP reset
* driver_examples/tpm/input_capture
| '''10'''
* driver_examples/tpm/dual_edge_capture
| JTAG_SRST_B
* driver_examples/tpm/combine_pwm
| JTAG System reset
* driver_examples/tstmr
|-
* driver_examples/wdog32
|}
* mmcau_examples/mmcau_api
 
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
Please refer to SOM datasheet for further details.<!--
* multicore_examples/rpmsg_lite_str_echo_rtos
--><section end=VAR-SOM-MX8_JTAG_SECTION/>
* multicore_examples/rpmsg_lite_pingpong_rtos/sdk_remote
 
* multicore_examples/rpmsg_lite_pingpong_rtos/sdk_master
== Releases ==
* rtos_examples/freertos_hello
 
* rtos_examples/freertos_queue
=== mcuxpresso-2.5.2-mx8qm-v1.0 ===
* rtos_examples/freertos_sem
<section begin=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8/><!--
* rtos_examples/freertos_generic
-->{{#vardefine:OS|FreeRTOS}}<!--
* rtos_examples/freertos_tickless
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8}}<!--
* rtos_examples/freertos_mutex
-->{{#vardefine:SOC_HAS_SCU|true}}<!--
* rtos_examples/freertos_lpuart
-->{{#vardefine:SOC_HAS_M40_M41|true}}<!--
* rtos_examples/freertos_event
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.2-mx8qm-v1.0}}<!--
* rtos_examples/freertos_swtimer
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8}}<!--
* rtos_examples/freertos_lpi2c
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8}}<!--
* rtos_examples/freertos_lpspi_b2b/master
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.2}}<!--
* rtos_examples/freertos_lpspi_b2b/slave
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
* rtos_examples/freertos_lpspi
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
Additional demos are available as reference code, but require HW/SW customization.
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
* demo_apps/power_mode_switch
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
* driver_examples/enet/txrx_multiring_transfer
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-7-2018-q2-update}}<!--
* driver_examples/enet/txrx_transfer
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qm}}<!--
* driver_examples/enet/txrx_ptp1588_transfer
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
* lwip_examples/lwip_ping/bm
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8_PINS_SECTION}}<!--
* lwip_examples/lwip_ping/freertos
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8_DEMOS_SECTION}}<!--
* lwip_examples/lwip_iperf/bm
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8_DTBS_SECTION}}<!--
* lwip_examples/lwip_httpsrv/bm
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION}}<!--
* lwip_examples/lwip_httpsrv/freertos
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8_JTAG_SECTION}}<!--
* lwip_examples/lwip_tcpecho/bm
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8QuadMax.pdf}}<!--
* lwip_examples/lwip_tcpecho/freertos
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QM-MEK}}<!--
* lwip_examples/lwip_udpecho/bm
-->{{#vardefine:SCFW_SOC|mx8qm_b0}} <!--
* lwip_examples/lwip_udpecho/freertos
-->{{#vardefine:SCFW_DEFINES_URL|https://github.com/varigit/imx-sc-firmware/blob/1.2.8/src/scfw_export_mx8qm_b0/platform/board/mx8qm_var_som/board.c#L79}} <!--
* lwip_examples/lwip_dhcp/bm
-->{{#vardefine:SDK_GIT_TAG|som-mx8qm_mcuxpresso-2.5.2_v10}} <!--
* lwip_examples/lwip_dhcp/freertos
-->{{#vardefine:RELEASE_DATE|3/9/2020}} <!--
--><!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
{{#if: {{#var:SOC_HAS_SCU}} |
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
if needed, RPMSG functionality require applying the following kernel patch for the kernel 4.14.98
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QM}} <!--
--><section end=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
*SOC_HAS_M40_M41 = '''{{#var:SOC_HAS_M40_M41}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*SCFW_DEFINES_URL = = '''{{#var:SCFW_DEFINES_URL}}
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}


=== mcuxpresso-2.8.0-mx8qm-v1.0 ===
<pre>
<section begin=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8/><!--
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi
-->{{#vardefine:OS|FreeRTOS}}<!--
index 1814a639d8f0..dcc12eb85c0a 100644
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8}}<!--
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi
-->{{#vardefine:SOC_HAS_M40_M41|true}}<!--
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-som-common.dtsi
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8qm-v1.0}}<!--
@@ -1205,28 +1205,28 @@
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8}}<!--
};
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
&intmux_cm40 {
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
- status = "okay";
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
+ status = "didabled";
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
};
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
&rpmsg{
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
/*
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qm}}<!--
* 64K for one rpmsg instance:
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
*/
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8_PINS_SECTION}}<!--
- vdev-nums = <1>;
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8_DEMOS_SECTION}}<!--
- reg = <0x0 0x90000000 0x0 0x10000>;
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8_DTBS_SECTION}}<!--
+ vdev-nums = <2>;
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION}}<!--
+ reg = <0x0 0x90000000 0x0 0x20000>;
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8_JTAG_SECTION}}<!--
status = "okay";
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QM.pdf}}<!--
};
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QM-MEK}}<!--
-->{{#vardefine:SCFW_SOC|mx8qm_b0}} <!--
&intmux_cm41 {
-->{{#vardefine:SCFW_DEFINES_URL|https://github.com/varigit/imx-sc-firmware/blob/1.2.8/src/scfw_export_mx8qm_b0/platform/board/mx8qm_var_som/board.c#L79}} <!--
- status = "okay";
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QM}} <!--
+ status = "disabled";
-->{{#vardefine:SDK_GIT_TAG|som-mx8qm_mcuxpresso-2.8.0_v10}}<!--
};
-->{{#vardefine:RELEASE_DATE|02/19/2021}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
&rpmsg1{
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
/*
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8-v1.1}}<!--
* 64K for one rpmsg instance:
--><section end=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8/><!--
*/
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
- vdev-nums = <1>;
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
- reg = <0x0 0x90100000 0x0 0x10000>;
*SOC_HAS_M40_M41 = '''{{#var:SOC_HAS_M40_M41}}'''
+ vdev-nums = <2>;
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
+ reg = <0x0 0x90100000 0x0 0x20000>;
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
status = "okay";
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
};
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
index 982da0e412f8..5df8783e56aa 100644
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-var-spear-common.dtsi
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
@@ -1357,28 +1357,28 @@
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
};
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
&intmux_cm40 {
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
- status = "okay";
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
+ status = "disabled";
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
};
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
&rpmsg {
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
/*
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
* 64K for one rpmsg instance:
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*/
*SCFW_DEFINES_URL = = '''{{#var:SCFW_DEFINES_URL}}
- vdev-nums = <1>;
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
- reg = <0x0 0x90000000 0x0 0x10000>;
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
+ vdev-nums = <2>;
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
+ reg = <0x0 0x90000000 0x0 0x20000>;
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
status = "okay";
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
};
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}
&intmux_cm41 {
- status = "okay";
+ status = "disabled";
};
&rpmsg1 {
/*
* 64K for one rpmsg instance:
*/
- vdev-nums = <1>;
- reg = <0x0 0x90100000 0x0 0x10000>;
+ vdev-nums = <2>;
+ reg = <0x0 0x90100000 0x0 0x20000>;
status = "okay";
};
</pre>
}}
--><section end=VAR-SOM-MX8_DEMOS_SECTION/>
 
=== NXP Memory types ===
<section begin=VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION/><!--
-->The SDK allow linking using 2 different memory types: DDR, TCM.


=== mcuxpresso-2.9.0-mx8qm-v1.0 ===
Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.
<section begin=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8/><!--
 
-->{{#vardefine:OS|FreeRTOS}}<!--
{| class="wikitable"
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8}}<!--
|-
-->{{#vardefine:SOC_HAS_M40_M41|true}}<!--
! scope="col" | memory type
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8qm-v1.0}}<!--
! scope="col" | M4 if
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8}}<!--
! scope="col" | M4 memory area
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8}}<!--
! scope="col" | memory lentgh
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
! scope="col" | linker file
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
|-
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
| DDR
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
| 0
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
| 0x88000000-0x881FFFFF (code)<br>0x88200000-0x883FFFFF (data)<br>0x88400000-0x887FFFFF (data2)
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
| 8MB (DDR)
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
| MIMX8QM6xxxFF_cm4_core0_ddr_ram.ld
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qm}}<!--
|-
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
| DDR
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8_PINS_SECTION}}<!--
| 1
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8_DEMOS_SECTION}}<!--
| 0x88800000-0x88BFFFFF (code)<br>0x88C00000-0x88FFFFFF (data)<br>0x89000000-0x8FFFFFFF (data2)
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8_DTBS_SECTION}}<!--
| 120MB (DDR)
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION}}<!--
| MIMX8QM6xxxFF_cm4_core1_ddr_ram.ld
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8_JTAG_SECTION}}<!--
|-
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QM.pdf}}<!--
| TCM
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QM-MEK}}<!--
| 0
-->{{#vardefine:SCFW_SOC|mx8qm_b0}} <!--
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x88000000-0x887FFFFF (data2)
-->{{#vardefine:SCFW_DEFINES_URL|https://github.com/varigit/imx-sc-firmware/blob/1.2.8/src/scfw_export_mx8qm_b0/platform/board/mx8qm_var_som/board.c#L79}} <!--
| 256kB (TCM) + 8MB (DDR)
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QM}} <!--
| MIMX8QM6xxxFF_cm4_core0_ram.ld
-->{{#vardefine:SDK_GIT_TAG|som-mx8qm_mcuxpresso-2.9.0_v10}}<!--
|-
-->{{#vardefine:RELEASE_DATE|03/15/2021}}<!--
| TCM
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
| 1
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
| 0x1FFE0000-0x1FFFFFFF (code)<br>0x20000000-0x2001FFFF (data)<br>0x88800000-0x8FFFFFFF (data2)
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8-v1.1}}<!--
| 256kB (TCM) + 120MB (DDR)
--><section end=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8/><!--
| MIMX8QM6xxxFF_cm4_core1_ram.ld
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
|-
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
|}
*SOC_HAS_M40_M41 = '''{{#var:SOC_HAS_M40_M41}}'''
 
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
All linker files are locate in the '''armgcc''' folder of each demo.
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
 
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
After launching the build_all.sh command the following folder will be created in the armgcc folder
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
 
*SDK_PATH = '''{{#var:SDK_PATH}}'''
* '''ddr_debug''': containing DDR binaries compiled in debug mode (not stripped: symbols available)
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
* '''ddr_release''': containing DDR binaries compiled in release mode (stripped: no symbols available)
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
<!--
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
--><section end=VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION/>
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
 
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
=== JTAG ===
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
<section begin=VAR-SOM-MX8_JTAG_SECTION/><!--
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
-->The VAR-SOM-MX8 and SPEAR-MX8 exposes JTAG interface via an optional 10-pin header
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
 
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
Here is the pinout:
 
{| class="wikitable"
|-
! scope="col" | pin
! scope="col" | signal
! scope="col" | description
! scope="col" | pin
! scope="col" | signal (ball)
! scope="col" | description
|-
| '''1'''
| JTAG_VREF
| JTAG reference voltage (3.3V)
| '''2'''
| JTAG_TMS (AG35)
| JTAG Mode Select
|-
| '''3'''
| GND
| Digital Ground
| '''4'''
| JTAG_TCK (AE31)
| JTAG Clock
|-
| '''5'''
| GND
| Digital Ground
| '''6'''
| JTAG_TDO (AF32)
| JTAG Data Out
|-
| '''7'''
| RTCK
| JTAG Return clock
| '''8'''
| JTAG_TDI (AH34)
| JTAG Data In
|-
| '''9'''
| JTAG_TRST_B_CONN
| JTAG TAP reset
| '''10'''
| JTAG_SRST_B
| JTAG System reset
|-
|}
 
Please refer to SOM datasheet for further details.<!--
--><section end=VAR-SOM-MX8_JTAG_SECTION/>
 
== Releases ==
 
=== mcuxpresso-2.5.2-mx8qm-v1.0 ===
<section begin=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8}}<!--
-->{{#vardefine:SOC_HAS_SCU|true}}<!--
-->{{#vardefine:SOC_HAS_M40_M41|true}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.5.2-mx8qm-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8}}<!--
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.5.2}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.5.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-7-2018-q2-update}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qm}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for i.MX 8QuadMax.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QM-MEK}}<!--
-->{{#vardefine:SCFW_SOC|mx8qm_b0}} <!--
-->{{#vardefine:SCFW_DEFINES_URL|https://github.com/varigit/imx-sc-firmware/blob/1.2.8/src/scfw_export_mx8qm_b0/platform/board/mx8qm_var_som/board.c#L79}} <!--
-->{{#vardefine:SDK_GIT_TAG|som-mx8qm_mcuxpresso-2.5.2_v10}} <!--
-->{{#vardefine:RELEASE_DATE|3/9/2020}} <!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QM}} <!--
--><section end=MCUXPRESSO_2.5.2_V1.0_VAR-SOM-MX8/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
*SOC_HAS_M40_M41 = '''{{#var:SOC_HAS_M40_M41}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*SCFW_DEFINES_URL = = '''{{#var:SCFW_DEFINES_URL}}
*SCFW_DEFINES_URL = = '''{{#var:SCFW_DEFINES_URL}}
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
 
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
=== mcuxpresso-2.8.0-mx8qm-v1.0 ===
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
<section begin=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8/><!--
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
-->{{#vardefine:OS|FreeRTOS}}<!--
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8}}<!--
-->{{#vardefine:SOC_HAS_M40_M41|true}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.8.0-mx8qm-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8}}<!--
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.8.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.8.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qm}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QM.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QM-MEK}}<!--
-->{{#vardefine:SCFW_SOC|mx8qm_b0}} <!--
-->{{#vardefine:SCFW_DEFINES_URL|https://github.com/varigit/imx-sc-firmware/blob/1.2.8/src/scfw_export_mx8qm_b0/platform/board/mx8qm_var_som/board.c#L79}} <!--
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QM}} <!--
-->{{#vardefine:SDK_GIT_TAG|som-mx8qm_mcuxpresso-2.8.0_v10}}<!--
-->{{#vardefine:RELEASE_DATE|02/19/2021}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8-v1.1}}<!--
--><section end=MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
*SOC_HAS_M40_M41 = '''{{#var:SOC_HAS_M40_M41}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*SCFW_DEFINES_URL = = '''{{#var:SCFW_DEFINES_URL}}
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}
 
=== mcuxpresso-2.9.0-mx8qm-v1.0 ===
<section begin=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8/><!--
-->{{#vardefine:OS|FreeRTOS}}<!--
-->{{#vardefine:HARDWARE_NAME|VAR-SOM-MX8}}<!--
-->{{#vardefine:SOC_HAS_M40_M41|true}}<!--
-->{{#vardefine:RELEASE_NAME|mcuxpresso-2.9.0-mx8qm-v1.0}}<!--
-->{{#vardefine:RELEASE_LINK|MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8}}<!--
-->{{#vardefine:YOCTO_RELEASE_LINK|RELEASE_SUMO_V1.2_VAR-SOM-MX8}}<!--
-->{{#vardefine:MCUXPRESSO_VERSION|2.9.0}}<!--
-->{{#vardefine:SDK_PATH|~/var-mcuxpresso}}<!--
-->{{#vardefine:SDK_GIT_URL|https://github.com/varigit/freertos-variscite}}<!--
-->{{#vardefine:SDK_GIT_BRANCH|mcuxpresso_sdk_2.9.x-var01}}<!--
-->{{#vardefine:TOOLCHAIN_URL|https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_BZ2_NAME|gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2}}<!--
-->{{#vardefine:TOOLCHAIN_FOLDER|gcc-arm-none-eabi-9-2020-q2-update}}<!--
-->{{#vardefine:BOARD_FOLDER|boards/som_mx8qm}}<!--
-->{{#vardefine:DOCS_FOLDER|docs}}<!--
-->{{#vardefine:PINS_SECTION|VAR-SOM-MX8_PINS_SECTION}}<!--
-->{{#vardefine:DEMOS_SECTION|VAR-SOM-MX8_DEMOS_SECTION}}<!--
-->{{#vardefine:DTBS_SECTION|VAR-SOM-MX8_DTBS_SECTION}}<!--
-->{{#vardefine:MEMORY_TYPES_SECTION|VAR-SOM-MX8_MEMORY-TYPES_NXP_SECTION}}<!--
-->{{#vardefine:JTAG_SECTION|VAR-SOM-MX8_JTAG_SECTION}}<!--
-->{{#vardefine:NXP_USER_GUIDE|Getting Started with MCUXpresso SDK for MEK-MIMX8QM.pdf}}<!--
-->{{#vardefine:NXP_REFERENCE_KIT|IMX8QM-MEK}}<!--
-->{{#vardefine:SCFW_SOC|mx8qm_b0}} <!--
-->{{#vardefine:SCFW_DEFINES_URL|https://github.com/varigit/imx-sc-firmware/blob/1.2.8/src/scfw_export_mx8qm_b0/platform/board/mx8qm_var_som/board.c#L79}} <!--
-->{{#vardefine:IMX_MKIMAGE_SOC|iMX8QM}} <!--
-->{{#vardefine:SDK_GIT_TAG|som-mx8qm_mcuxpresso-2.9.0_v10}}<!--
-->{{#vardefine:RELEASE_DATE|03/15/2021}}<!--
-->{{#vardefine:SUPPORTED_REV_SOM|v1.1 and higher}} <!--
-->{{#vardefine:SUPPORTED_REV_CARRIER|v1.1 and higher}} <!--
-->{{#vardefine:YOCTO_RELEASE_TAG|dunfell-fslc-5.4-2.1.x-mx8-v1.1}}<!--
-->{{#vardefine:DEACTIVATE_LMEM_CACHE_PATCH|0002-i.MX8QM-CM40-deactivated-the-LMEM-caches-to-debug-in.patch}}<!--
--><section end=MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8/><!--
-->*HARDWARE_NAME = '''{{#var:HARDWARE_NAME}}'''
*SOC_HAS_SCU = '''{{#var:SOC_HAS_SCU}}'''
*SOC_HAS_M40_M41 = '''{{#var:SOC_HAS_M40_M41}}'''
*RELEASE_NAME = '''{{#var:RELEASE_NAME}}'''
*RELEASE_LINK = '''{{#var:RELEASE_LINK}}'''
*YOCTO_RELEASE_LINK = '''{{#var:YOCTO_RELEASE_LINK}}'''
*MCUXPRESSO_VERSION = '''{{#var:MCUXPRESSO_VERSION}}'''
*SDK_PATH = '''{{#var:SDK_PATH}}'''
*SDK_GIT_URL = '''{{#var:SDK_GIT_URL}}'''
*SDK_GIT_BRANCH = '''{{#var:SDK_GIT_BRANCH}}'''
*TOOLCHAIN_URL = '''{{#var:TOOLCHAIN_URL}}'''
*TOOLCHAIN_BZ2_NAME = '''{{#var:TOOLCHAIN_BZ2_NAME}}'''
*TOOLCHAIN_FOLDER = '''{{#var:TOOLCHAIN_FOLDER}}'''
*BOARD_FOLDER = '''{{#var:BOARD_FOLDER}}'''
*DOCS_FOLDER = '''{{#var:DOCS_FOLDER}}'''
*PINS_SECTION = '''{{#var:PINS_SECTION}}'''
*DEMOS_SECTION = '''{{#var:DEMOS_SECTION}}'''
*DTBS_SECTION = '''{{#var:DTBS_SECTION}}'''
*MEMORY_TYPES_SECTION = '''{{#var:MEMORY_TYPES_SECTION}}'''
*JTAG_SECTION = '''{{#var:JTAG_SECTION}}'''
*NXP_USER_GUIDE = '''{{#var:NXP_USER_GUIDE}}'''
*NXP_REFERENCE_KIT = '''{{#var:NXP_REFERENCE_KIT}}'''
*SCFW_SOC = = '''{{#var:SCFW_SOC}}
*SCFW_DEFINES_URL = = '''{{#var:SCFW_DEFINES_URL}}
*IMX_MKIMAGE_SOC = = '''{{#var:IMX_MKIMAGE_SOC}}
*SDK_GIT_TAG = '''{{#var:SDK_GIT_TAG}}
*RELEASE_DATE = '''{{#var:RELEASE_DATE}}
*SUPPORTED_REV_SOM = '''{{#var:SUPPORTED_REV_SOM}}
*SUPPORTED_REV_CARRIER = '''{{#var:SUPPORTED_REV_CARRIER}}
*YOCTO_RELEASE_TAG = '''{{#var:YOCTO_RELEASE_TAG}}
 
<section begin=MCUXPRESSO_GLOBALS/>
<!--
    Set variables for all releases
 
    Cortex M4 or M7:
--> {{#vardefine:CORTEX_M_TYPE | <!--
-->    {{#switch:{{#var:HARDWARE_NAME}} | <!--
-->      VAR-SOM-MX8M-NANO = m7 | <!--
-->      DART-MX8M-PLUS = m7 | <!--
-->      VAR-SOM-MX93 = m33 | <!--
-->      m4 <!--
-->    }} <!--
--> }} <!--
--> {{#vardefine:CORTEX_M_TYPE_UC | <span style="text-transform: uppercase;">{{#var:CORTEX_M_TYPE}}</span>}}<!--
 
 
    SDK SOC_INCLUDE_PATH
--> {{#vardefine:SDK_DEVICE|<!--
-->    {{#switch:{{#var:HARDWARE_NAME}} | <!--
-->      VAR-SOM-MX8M-NANO = MIMX8MN6 | <!--
-->      DART-MX8M-MINI = MIMX8MM6 | <!--
-->      DART-MX8M-PLUS = MIMX8ML8 | <!--
-->      DART-MX8M = MIMX8MQ6 | <!--
-->      VAR-SOM-MX8 = MIMX8QM6 | <!--
-->      VAR-SOM-MX8X = MIMX8QX6 | <!--
-->    }} <!--
--> }} <!--
--> {{#vardefine:SOC_INCLUDE_PATH|{{#var:SDK_PATH}}/freertos-variscite/devices/{{#var:SDK_DEVICE}}}}<!--
--><section end=MCUXPRESSO_GLOBALS/>
{{#var:SOC_INCLUDE_PATH}}
 
 
= VAR-SOM-MX93=
 
== Sections ==
 
=== Available dtbs ===
<section begin=VAR-SOM-MX93_DTBS_SECTION/><!--
-->To allow the Cortex-M33 to access shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, by selecting the right version with the symbolic link in the /boot folder of the booting media.<br>
These device trees contain '''m33''' label in their name.
 
 
The below table lists an example dtb blob file name for VAR-SOM-MX93 (on the Symphony Board) with support for the '''M33''' for each kernel version / Yocto release:
 
{| class="wikitable"
|-
! scope="col" | File Name<br/>
! scope="col" | Description<br/>
|-
| style="padding: 5px;"| imx93-var-som-symphony-'''m33'''.dtb
| style="padding: 5px;"| VAR-SOM-MX93 (Rev 2.x+) device tree blob for kernel = 6.1.1 (Yocto Langdale) on Symphony-Board 1.4a and above.
|-
| style="padding: 5px;"| imx93-var-som-1.x-symphony-'''m33'''.dtb
| style="padding: 5px;"| VAR-SOM-MX93 (Rev 1.x) device tree blob for kernel = 6.1.1 (Yocto Langdale) on Symphony-Board 1.4a and above.
|-
|}
 
This device tree disables some of the base device tree nodes in order to avoid conflicts between the Cortex-A55 processors and Cortex-M33.
 
For the full list of device tree blob files, refer to the "Build Results" section in the appropriate wiki page for the specific Yocto/Debian release you are using.<!--
 
--><section end=VAR-SOM-MX93_DTBS_SECTION/>
 
=== Default M33 pins ===
<section begin=VAR-SOM-MX93_PINS_SECTION/><!--
-->Default M33 pins used by the demos are:
 
{| class="wikitable"
|-
! scope="col" | Function
! scope="col" | SoC balls
! scope="col" | {{#var:HARDWARE_NAME}} Pins
! scope="col" | Symphony Pins
! scope="col" | Notes
|-
| UART7 RX/TX
| M21 / M20
| J1.175 / J1.124
| J18.5 / J18.3
|
|-
| TPM6-CH3 - PWM Output or Input Capture
| W21
| J1.69
| J18.2
|
|-
| CAN1 RX/TX
| J17 / G17
| J1.46 / J1.44
| J16.18 / J16.20, CANL / CANH levels (CAN transceiver mounted!)
| If enabled, CAN devices will no longer visible from Linux
|-
| LPSPI6 CS0/SCK/SDI/SDO
| J21 / K21 / J20 / K20
| J1.39 / J1.43 / J1.41 / J1.45
| J16.4 / J16.2 / J16.6 / J16.8
| If enabled, SPI6 devices will no longer be visible from Linux
|-
| LPI2C7 SCL/SDA
| L21 / L20
| J1.174 / J1.176
| J16.10 / J16.12
| If enabled, I2C7 devices will no longer be visible from Linux
|-
| GPIO GPIO4.28
| U4
| J1.75
| J17.6
| GPIO pin is 1.8V IO level!
|-
|}<!--
--><section end=VAR-SOM-MX93_PINS_SECTION/>
 
=== Available Demos ===
<section begin=VAR-SOM-MX93_DEMOS_SECTION/><!--
-->{{#switch: {{#var:RELEASE_NAME}}
| mcuxpresso-2.13.1-mx93-v1.0 =<!--
-->* demo_apps/ethosu_apps_rpmsg
* demo_apps/hello_world
* driver_examples/canfd/loopback
* driver_examples/canfd/loopback_transfer
* driver_examples/edma/memory_to_memory
* driver_examples/edma/scatter_gather
* driver_examples/edma4/channel_link
* driver_examples/edma4/interleave_transfer
* driver_examples/edma4/memory_to_memory
* driver_examples/edma4/memory_to_memory_transfer
* driver_examples/edma4/memset
* driver_examples/edma4/ping_pong_transfer
* driver_examples/edma4/scatter_gather
* driver_examples/edma4/wrap_transfer
* driver_examples/flexcan/loopback
* driver_examples/flexcan/loopback_edma_transfer
* driver_examples/flexcan/loopback_transfer
* driver_examples/lpit/chained_channel
* driver_examples/lpit/single_channel
* driver_examples/lptmr
* driver_examples/lpuart/interrupt
* driver_examples/lpuart/interrupt_rb_transfer
* driver_examples/lpuart/interrupt_transfer
* driver_examples/lpuart/polling
* driver_examples/tpm/input_capture
* driver_examples/tpm/output_compare
* driver_examples/tpm/simple_pwm
* driver_examples/tpm/timer
* driver_examples/tstmr
* multicore_examples/rpmsg_lite_pingpong_rtos
* multicore_examples/rpmsg_lite_str_echo_rtos
* rtos_examples/freertos_event
* rtos_examples/freertos_generic
* rtos_examples/freertos_hello
* rtos_examples/freertos_mutex
* rtos_examples/freertos_queue
* rtos_examples/freertos_sem
* rtos_examples/freertos_swtimer
<br>
Additional demos may be provided on this platform in a future release.<!--
--> | #default = <!--
-->* demo_apps/ethosu_apps_rpmsg/ethosu_apps_rpmsg
* demo_apps/hello_world/hello_world
* driver_examples/canfd/efifo_interrupt_transfer/canfd_efifo_interrupt_transfer
* driver_examples/canfd/interrupt_transfer/canfd_interrupt_transfer
* driver_examples/canfd/loopback_transfer/canfd_loopback_transfer
* driver_examples/canfd/loopback/canfd_loopback
* driver_examples/canfd/ping_pong_buffer_transfer/canfd_ping_pong_buffer_transfer
* driver_examples/edma4/channel_link/edma4_channel_link
* driver_examples/edma4/interleave_transfer/edma4_interleave_transfer
* driver_examples/edma4/memory_to_memory/edma4_memory_to_memory
* driver_examples/edma4/memory_to_memory_transfer/edma4_memory_to_memory_transfer
* driver_examples/edma4/memset/edma4_memset
* driver_examples/edma4/ping_pong_transfer/edma4_ping_pong_transfer
* driver_examples/edma4/scatter_gather/edma4_scatter_gather
* driver_examples/edma4/wrap_transfer/edma4_wrap_transfer
* driver_examples/flexcan/efifo_interrupt_transfer/flexcan_efifo_interrupt_transfer
* driver_examples/flexcan/interrupt_transfer/flexcan_interrupt_transfer
* driver_examples/flexcan/loopback_edma_transfer/flexcan_loopback_edma_transfer
* driver_examples/flexcan/loopback_transfer/flexcan_loopback_transfer
* driver_examples/flexcan/loopback/flexcan_loopback
* driver_examples/flexcan/ping_pong_buffer_transfer/flexcan_ping_pong_buffer_transfer
* driver_examples/lpi2c/interrupt_b2b_transfer/master/lpi2c_interrupt_b2b_transfer_master
* driver_examples/lpi2c/interrupt_b2b_transfer/slave/lpi2c_interrupt_b2b_transfer_slave
* driver_examples/lpi2c/polling_b2b/master/lpi2c_polling_b2b_master
* driver_examples/lpi2c/polling_b2b/slave/lpi2c_polling_b2b_slave
* driver_examples/lpit/chained_channel/lpit_chained_channel
* driver_examples/lpit/single_channel/lpit_single_channel
* driver_examples/lpspi/interrupt_b2b/master/lpspi_interrupt_b2b_master
* driver_examples/lpspi/interrupt_b2b/slave/lpspi_interrupt_b2b_slave
* driver_examples/lpspi/interrupt_b2b_transfer/master/lpspi_interrupt_b2b_transfer_master
* driver_examples/lpspi/interrupt_b2b_transfer/slave/lpspi_interrupt_b2b_transfer_slave
* driver_examples/lpspi/polling_b2b/master/lpspi_polling_b2b_master
* driver_examples/lpspi/polling_b2b_transfer/slave/lpspi_polling_b2b_transfer_slave
* driver_examples/edma/memory_to_memory/dma3_memory_to_memory
* driver_examples/edma/scatter_gather/dma3_scatter_gather
* driver_examples/flexcan/loopback_transfer/flexcan_loopback_transfer
* driver_examples/flexcan/loopback/flexcan_loopback
* driver_examples/flexcan/ping_pong_buffer_transfer/flexcan_ping_pong_buffer_transfer
* driver_examples/flexcan/efifo_interrupt_transfer/flexcan_efifo_interrupt_transfer
* driver_examples/flexcan/interrupt_transfer/flexcan_interrupt_transfer
* driver_examples/rgpio/led_output/rgpio_led_output
* driver_examples/lpi2c/polling_b2b/master/lpi2c_polling_b2b_master
* driver_examples/lpi2c/polling_b2b/slave/lpi2c_polling_b2b_slave
* driver_examples/lptmr/lptmr
* driver_examples/lpuart/interrupt_rb_transfer/lpuart_interrupt_rb_transfer
* driver_examples/lpuart/interrupt_transfer/lpuart_interrupt_transfer
* driver_examples/lpuart/interrupt/lpuart_interrupt
* driver_examples/lpuart/polling/lpuart_polling
* driver_examples/tstmr/tstmr
* multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote/rpmsg_lite_pingpong_rtos_linux_remote
* multicore_examples/rpmsg_lite_str_echo_rtos/rpmsg_lite_str_echo_rtos_imxcm33
* rtos_examples/freertos_event/freertos_event
* rtos_examples/freertos_generic/freertos_generic
* rtos_examples/freertos_hello/freertos_hello
* rtos_examples/freertos_lpi2c_b2b/master/freertos_lpi2c_b2b_master
* rtos_examples/freertos_lpi2c_b2b/slave/freertos_lpi2c_b2b_slave
* rtos_examples/freertos_lpspi_b2b/master/freertos_lpspi_b2b_master
* rtos_examples/freertos_lpspi_b2b/slave/freertos_lpspi_b2b_slave
* rtos_examples/freertos_mutex/freertos_mutex
* rtos_examples/freertos_queue/freertos_queue
* rtos_examples/freertos_sem/freertos_sem
* rtos_examples/freertos_swtimer/freertos_swtimer
<br>
Additional demos may be provided on this platform in a future release.
<br><br>
{{note|The Wi-Fi/Bluetooth module interfaces have been disabled in the M33 device tree to not conflict with certain demos, however, if the module is present on your SoM, you should also disable the Wi-Fi service from running in Linux via "systemctl disable variscite-wifi"}}<!--
-->}}
<section end=VAR-SOM-MX93_DEMOS_SECTION/>
 
==Building Using Yocto==
<section begin=VAR-SOM-MX93_BUILDING_USING_YOCTO_SECTION/><!--
-->
In Yocto Dunfell and newer, Variscite provides a Yocto recipe for building and installing firmware into the Yocto image. Note, the examples below apply to the original release of this recipe in Dunfell and thus some of the syntax (such as the overrides) may need to be updated for newer versions.
 
https://github.com/varigit/meta-variscite-fslc/tree/dunfell/recipes-bsp/freertos-variscite
 
This recipe installs the following firmware files:
{{!}}-
{{!}} /boot/cm_<demo name>.bin.debug {{!}}{{!}} TCM {{!}}{{!}} U-Boot
{{!}}-
{{!}} /lib/firmware/cm_<demo name>.elf.debug {{!}}{{!}} TCM {{!}}{{!}} Linux Remoteproc Framework
 
If you have modified freertos-variscite in your own Git repository and kept the same directory structure, you can easily build your custom firmware by creating a bbappend file:
 
$ mkdir -p <your-layer>/recipes-bsp/freertos-variscite
$ nano <your-layer>/recipes-bsp/freertos-variscite/freertos-variscite_2.13.x.bbappend
 
Append '''SRC_URI''' and '''SRCREV''' to use your freertos-variscite Git repository
 
SRC_URI_remove = "git://github.com/varigit/freertos-variscite.git;protocol=git;branch=${MCUXPRESSO_BRANCH};"
SRC_URI_append = " <your Git repository>"
SRCREV = "<your Git commit id>"
 
Append '''CM_DEMOS''' to build your firmware. For example, to build rtos_examples/freertos_hello:
 
CM_DEMOS_append = "rtos_examples/freertos_hello"
 
Rebuild fsl-image-gui:
 
$ bitbake -c cleansstate freertos-variscite && bitbake fsl-image-gui
 
The firmware binary files should now be installed to /boot/ and elf files to /lib/firmware/
<section end=VAR-SOM-MX93_BUILDING_USING_YOCTO_SECTION/>
 
=== Running a demo ===
<section begin=VAR-SOM-MX93_RUNNING_DEMO_SECTION/><!--
-->
== Running a demo from U-Boot ==
 
To assist in loading M33 firmware from U-Boot prior to Linux boot, Variscite has created a dedicated set of U-Boot environment commands.
 
{{note|To allow Cortex-M accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded.}}
 
To enable Cortex-M U-Boot auto-loading:
=> setenv use_m33 yes; saveenv
 
To disable Cortex-M U-Boot auto-loading:
=> setenv use_m33 no; saveenv
 
Note that the Cortex A55s and M33 have a different memory addressing "view" that is documented in the reference manual. Additionally, the bootaux command for the M33 uses secure aliases from the M33's point of view. Thus, two variables must be set properly in order to set the loading address (defaults used in the example below):
=> setenv m33_addr 0x201E0000
=> setenv m33_addr_auxview 0x1FFE0000
=> saveenv
 
To set the name of the Cortex-M binary
=> setenv m33_bin cm_hello_world.bin; saveenv
 
{{note|The .bin file is expected to exist in the directory /boot of the booting media.}}
<br>
After enabling as above, the U-Boot '''boot''' command will handle loading the Cortex-M firmware when the system begins the boot process. For testing, it is possible to invoke the Cortex-M33 boot process manually:
=> run loadm33bin && run runm33bin
 
After booting in Linux, the M33 will be listed as in the "attached" state by remoteproc:
# cat /sys/class/remoteproc/remoteproc0/state
attached
 
 
Additional details and step by step procedure to run each of the demos is available [{{#var:SDK_GIT_URL}}/blob/{{#var:SDK_GIT_BRANCH}}/{{#var:DOCS_FOLDER}}/{{urlencode:{{#var:NXP_USER_GUIDE}}|PATH}} online] or in the following document:
 
{{#var:SDK_PATH}}/freertos-variscite/{{#var:DOCS_FOLDER}}/{{#var:NXP_USER_GUIDE}}
 
{{note|This process can be simplified using /etc/remoteproc/variscite-rproc-u-boot in Linux<br>
Please refer to the Yocto Scripts section below for more information}}
 
== Running a demo from Linux ==
 
The Linux remoteproc framework can be used to load the Cortex-M33 firmware from Linux userspace.
 
{{note|The U-Boot M33 auto-loading must not be currently enabled in order to allow for remoteproc control and loading of the M33.}}
 
Increase kernel loglevel while debugging:
# sysctl kernel.printk=7;
 
If the state is 'running', stop the Cortex-M33
# echo stop > /sys/class/remoteproc/remoteproc0/state
 
Load new firmware
# echo cm_hello_world.elf > /sys/class/remoteproc/remoteproc0/firmware
{{note| The .elf file is expected to exist in the /lib/firmware directory}}
 
Run the new firmware
# echo start > /sys/class/remoteproc/remoteproc0/state
 
{{note|This process can be simplified using /etc/remoteproc/variscite-rproc-linux in Linux<br>
Please refer to the Yocto Scripts section below for more information}}
 
{{note|By default, Linux disables unused clocks. Certain M33 examples may use peripherals which are not enabled in Linux. Depending on the clock source, Linux may disable the clock by default, resulting in the example/peripheral not functioning. Therefore, when running M33 examples, it is recommended to override this. The easiest way to achieve this is to append the bootarg "clk_ignore_unused." }}
 
== Running a Demo using Yocto Scripts ==
 
In Yocto, Variscite provides scripts to simplify loading firmware via U-Boot or Linux:
 
{| class="wikitable"
|-
! Script
! Description
|-
| <span id="yocto_scripts_u_boot">/etc/remoteproc/variscite-rproc-u-boot</span> || Configure U-Boot to load firmware on boot
|-
| <span id="yocto_scripts_rproc">/etc/remoteproc/variscite-rproc-linux</span> || Load and run firmware using Linux remoteproc framework
|}
 
'''Examples'''
 
variscite-rproc-u-boot example on imx93-var-som:
root@imx93-var-som:~# /etc/remoteproc/variscite-rproc-u-boot -f /boot/cm_hello_world.bin.release
Configuring for TCM memory
+ fw_setenv m33_addr 0x201E0000
Cannot read environment, using default
+ fw_setenv fdt_file imx93-var-som-symphony-m33.dtb
+ fw_setenv use_m33 yes
+ fw_setenv m33_bin cm_hello_world.bin.release
+ fw_setenv kernelargs ' clk_ignore_unused'
+ fw_setenv m33_addr_auxview 0x1FFE0000
Finished: Please reboot, the m33 firmware will run during U-Boot
 
variscite-rproc-linux example on imx93-var-som:
root@imx93-var-som:~# /etc/remoteproc/variscite-rproc-linux -f /lib/firmware/cm_hello_world.elf.release
Cortex-M: Loading cm_hello_world.elf.release
Cortex-M: Starting
[  974.434796] remoteproc remoteproc0: powering up imx-rproc
[  974.442420] remoteproc remoteproc0: Booting fw image cm_hello_world.elf.release, size 99776
[  974.451172] remoteproc remoteproc0: header-less resource table
<section end=VAR-SOM-MX93_RUNNING_DEMO_SECTION/>
 
=== NXP Memory types ===
<section begin=VAR-SOM-MX93_MEMORY-TYPES_NXP_SECTION/><!--
-->The SDK currently allows linking only out of TCM.
 
Below is a short summary of memory areas used by Cortex-M33 as described in related linker file:
 
{| class="wikitable"
|-
! scope="col" | Memory Type
! scope="col" | M33 Memory Area
! scope="col" | A55 Memory Area
! scope="col" | Memory Length
! scope="col" | Linker File
|-
| TCM
| 0x0FFE0000 - 0x0FFFFFFF (code)<br>0x20000000 – 0x2001FFFF (data)
| 0x201E0000 – 0x201FFFFF (code)<br>0x20200000 – 0x2021FFFF (data)
| 128kB (Code TCM) + 128kB (System TCM)
| MIMX9352_cm33_ram.ld
|-
|}
 
All linker files are located in the '''armgcc''' folder of each demo. Please consult the linker file for the actual memory used by each demo.
 
After launching the build_all.sh command the following folder will be created in the armgcc folder
 
* '''debug''': containing TCM binaries compiled in debug mode (not stripped: symbols available)
* '''release''': containing TCM binaries compiled in release mode (stripped: no symbols available)
<!--
--><section end=VAR-SOM-MX93_MEMORY-TYPES_NXP_SECTION/>
 
=== JTAG ===
<section begin=VAR-SOM-MX93_JTAG_SECTION/><!--
-->The JTAG interface is not exposed directly on the VAR-SOM-MX93 but the associated signals are exposed via the J1 SOM connector.<br>
 
{{note|Note: These signals are shared with the Wi-Fi module if present, so usage will require disabling this interface and making any appropriate pin muxing adjustments.<br><br>
Please refer to SoM datasheet for further details.}}
<!--
--><section end=VAR-SOM-MX93_JTAG_SECTION/>
 
<noinclude>{{:MPC_VAR-SOM-MX93}}</noinclude><includeonly><!--
--><section begin=MCUXPRESSO_2.13.1_V1.0_VAR-SOM-MX93/><!--
-->{{#lst:MPC_VAR-SOM-MX93|MCUXPRESSO_2.13.1_V1.0_VAR-SOM-MX93}}<!--
--><section end=MCUXPRESSO_2.13.1_V1.0_VAR-SOM-MX93/><!--
 
--><section begin=MCUXPRESSO_2.13.1_V1.1_VAR-SOM-MX93/><!--
-->{{#lst:MPC_VAR-SOM-MX93|MCUXPRESSO_2.13.1_V1.0_VAR-SOM-MX93}}<!--
-->{{#lst:MPC_VAR-SOM-MX93|MCUXPRESSO_2.13.1_V1.1_VAR-SOM-MX93}}<!--
--><section end=MCUXPRESSO_2.13.1_V1.1_VAR-SOM-MX93/><!--
-->


<section begin=MCUXPRESSO_GLOBALS/>
</includeonly>
<!--
    Set variables for all releases
 
    Cortex M4 or M7:
--> {{#vardefine:CORTEX_M_TYPE | <!--
-->    {{#switch:{{#var:HARDWARE_NAME}} | <!--
-->      VAR-SOM-MX8M-NANO = m7 | <!--
-->      DART-MX8M-PLUS = m7 | <!--
-->      m4 <!--
-->    }} <!--
--> }} <!--
--> {{#vardefine:CORTEX_M_TYPE_UC | <span style="text-transform: uppercase;">{{#var:CORTEX_M_TYPE}}</span>}}<!--
 
 
    SDK SOC_INCLUDE_PATH
--> {{#vardefine:SDK_DEVICE|<!--
-->    {{#switch:{{#var:HARDWARE_NAME}} | <!--
-->      VAR-SOM-MX8M-NANO = MIMX8MN6 | <!--
-->      DART-MX8M-MINI = MIMX8MM6 | <!--
-->      DART-MX8M-PLUS = MIMX8ML8 | <!--
-->      DART-MX8M = MIMX8MQ6 | <!--
-->      VAR-SOM-MX8 = MIMX8QM6 | <!--
-->      VAR-SOM-MX8X = MIMX8QX6 | <!--
-->    }} <!--
--> }} <!--
--> {{#vardefine:SOC_INCLUDE_PATH|{{#var:SDK_PATH}}/freertos-variscite/devices/{{#var:SDK_DEVICE}}}}<!--
--><section end=MCUXPRESSO_GLOBALS/>
{{#var:SOC_INCLUDE_PATH}}

Revision as of 03:49, 19 September 2023


DART-MX8M

Sections

Available dtbs

To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, by selecting the right version with the symbolic link in the /boot folder of the booting media.
These device trees contain m4 label in their name.


The below table lists an example dtb blob file name for DART-MX8M (on DT8MCustomBoard rev. 1.3 and higher) with support for M4 (and SD card and LVDS), for each kernel version / Yocto release:

File Name
Description
imx8mq-var-dart-dt8mcustomboard-m4-sd-lvds.dtb For kernel >= 5.4.85 (Yocto >= Dunfell)
imx8mq-var-dart-m4-sd-lvds.dtb For kernel = 5.4.24 (Yocto Zeus)
fsl-imx8mq-var-dart-m4-sd-lvds.dtb For kernel = 4.19.35 (Yocto Warrior)
Image.gz-fsl-imx8mq-var-dart-m4-sd-lvds.dtb For kernel = 4.14.98 (Yocto Sumo)

For the full list of device tree blob files, refer to the "Build Results" section in the appropriate wiki page for the specific Yocto/Debian release you are using.

Default M4 pins

Default M4 pins used by the demos are:

Function Pin
debug UART (UART2) RX: J12.6 / TX: J12.4
GPIO (GPIO4_IO03) LED7 for DT8CustomBoard 1.x
U43.2 / R228 for DT8CustomBoard >= 2.0 (Use Oscilloscope to observe output signal)
I2C (I2C3) SCL: J12.18 / SDA: J12.20
PWM (PWM2) J14.3

Available Demos

  • driver_examples/i2c/interrupt_b2b_transfer/slave
  • driver_examples/i2c/interrupt_b2b_transfer/master
  • driver_examples/i2c/polling_b2b_transfer/slave
  • driver_examples/i2c/polling_b2b_transfer/master
  • driver_examples/wdog
  • driver_examples/gpio/led_output
  • driver_examples/tmu/tmu_monitor_report
  • driver_examples/pwm
  • driver_examples/uart/auto_baudrate_detect
  • driver_examples/uart/interrupt
  • driver_examples/uart/interrupt_rb_transfer
  • driver_examples/uart/polling
  • driver_examples/uart/interrupt_transfer
  • driver_examples/gpt/timer
  • driver_examples/gpt/capture
  • driver_examples/ecspi/ecspi_loopback
  • driver_examples/qspi/polling_transfer
  • driver_examples/rdc
  • driver_examples/sema4/uboot
  • rtos_examples/freertos_ecspi/ecspi_loopback
  • rtos_examples/freertos_hello
  • rtos_examples/freertos_queue
  • rtos_examples/freertos_sem
  • rtos_examples/freertos_generic
  • rtos_examples/freertos_uart
  • rtos_examples/freertos_tickless
  • rtos_examples/freertos_mutex
  • rtos_examples/freertos_event
  • rtos_examples/freertos_swtimer
  • rtos_examples/freertos_i2c
  • cmsis_driver_examples/i2c/int_b2b_transfer/slave
  • cmsis_driver_examples/i2c/int_b2b_transfer/master
  • cmsis_driver_examples/uart/interrupt_transfer
  • cmsis_driver_examples/ecspi/int_loopback_transfer
  • multicore_examples/rpmsg_lite_str_echo_rtos
  • multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
  • demo_apps/hello_world

NXP Memory types

The SDK allow linking using 2 different memory types: DDR, TCM.

Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.

memory type M4 memory area A53 memory area memory lentgh linker file
DDR 0x80000000-0x801FFFFF (code)
0x80200000-0x803FFFFF (data)
0x80400000-0x80FFFFFF (data2)
0x80000000-0x801FFFFF (code)
0x80200000-0x803FFFFF (data)
0x80400000-0x80FFFFFF (data2)
16MB (DDR) MIMX8MQ6xxxJZ_cm4_ddr_ram.ld
TCM 0x1FFE0000-0x1FFFFFFF (code)
0x20000000-0x2001FFFF (data)
0x80000000-0x80FFFFFF (data2)
0x007E0000-0x007FFFFF (code)
0x00800000-0x0081FFFF (data)
0x80000000-0x80FFFFFF (data2)
256kB (TCM) + 16MB (DDR) MIMX8MQ6xxxJZ_cm4_ram.ld

All linker files are locate in the armgcc folder of each demo.

The DDR reserved area must match the one declared in the kernel device tree: at least 2 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x80000000 - 0x80FFFFFF.

The RPMSG area is located at 0xB8000000: at least 3 GB of RAM is required on the SoM to allow Cortex-M4 accessing the RPMSG area. After launching the build_all.sh command the following folder will be created in the armgcc folder

  • ddr_debug: containing DDR binaries compiled in debug mode (not stripped: symbols available)
  • ddr_release: containing DDR binaries compiled in release mode (stripped: no symbols available)
  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)

Further details about memory mapping are available in the following i.MX 8M Applications Processor Reference Manual paragraphs:

  • 2.1.2 Cortex-A53 Memory Map
  • 2.1.3 Cortex-M4 Memory Map

Variscite Memory types

The SDK allow linking using 2 different memory types: DDR, TCM.

Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.

memory type M4 memory area A53 memory area memory lentgh linker file
DDR 0x7E000000-0x7E1FFFFF (code)
0x7E200000-0x7E3FFFFF (data)
0x7E400000-0x7EFFFFFF (data2)
0x7E000000-0x7E1FFFFF (code)
0x7E200000-0x7E3FFFFF (data)
0x7E400000-0x7EFFFFFF (data2)
16MB (DDR) MIMX8MQ6xxxJZ_cm4_ddr_ram.ld
TCM 0x1FFE0000-0x1FFFFFFF (code)
0x20000000-0x2001FFFF (data)
0x7E000000-0x7EFFFFFF (data2)
0x007E0000-0x007FFFFF (code)
0x00800000-0x0081FFFF (data)
0x7E000000-0x7EFFFFFF (data2)
256kB (TCM) + 16MB (DDR) MIMX8MQ6xxxJZ_cm4_ram.ld

All linker files are locate in the armgcc folder of each demo.

The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M4 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M4.

The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M4 accessing the RPMSG area.

After launching the build_all.sh command the following folder will be created in the armgcc folder

  • ddr_debug: containing DDR binaries compiled in debug mode (not stripped: symbols available)
  • ddr_release: containing DDR binaries compiled in release mode (stripped: no symbols available)
  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)

Further details about memory mapping are available in the following i.MX 8M Applications Processor Reference Manual paragraphs:

  • 2.1.2 Cortex-A53 Memory Map
  • 2.1.3 Cortex-M4 Memory Map

JTAG

The VAR-DT8MCustomBoard exports the DART-MX8M JTAG signals through J29, a standard 1.27" 10 pin header.

Here is the pinout:

pin signal description pin signal description
1 JTAG_VREF JTAG IO reference voltage,
connects to SOM_NVCC_3V3.
2 JTAG_TMS JTAG Mode Select signal
3 GND Digital Ground 4 JTAG_TCK JTAG Clock signal,
requires 10K pull down.
5 GND Digital Ground 6 JTAG_TDO JTAG Data Out signal
7 GND Digital Ground 8 JTAG_TDI JTAG Data In signal
9 JTAG_NTRST_C JTAG Reset signal 10 NRST_CON Programmer Reset,
used to put the SOC in reset state.

Please refer to board schematics for further details.

Releases

mcuxpresso-2.5.1-mx8mq-v1.0

  • HARDWARE_NAME = DART-MX8M
  • RELEASE_NAME = mcuxpresso-2.5.1-mx8mq-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.5.1_V1.0_DART-MX8M
  • MCUXPRESSO_VERSION = 2.5.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.5.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-7-2018-q2-update
  • BOARD_FOLDER = boards/dart_mx8mq
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M_MEMORY-TYPES_NXP_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK i.MX 8M Devices.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MQ

mcuxpresso-2.5.1-mx8mq-v1.1

   *HARDWARE_NAME = DART-MX8M
  • RELEASE_NAME = mcuxpresso-2.5.1-mx8mq-v1.1
  • RELEASE_LINK = MCUXPRESSO_2.5.1_V1.1_DART-MX8M
  • MCUXPRESSO_VERSION = 2.5.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.5.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-7-2018-q2-update
  • BOARD_FOLDER = boards/dart_mx8mq
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK i.MX 8M Devices.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MQ

mcuxpresso-2.8.0-mx8mq-v1.0

 *HARDWARE_NAME = DART-MX8M
  • RELEASE_NAME = mcuxpresso-2.8.0-mx8mq-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.8.0_V1.0_DART-MX8M
  • MCUXPRESSO_VERSION = 2.8.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.8.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/dart_mx8mq
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MQ

mcuxpresso-2.9.0-mx8mq-v1.0

 *HARDWARE_NAME = DART-MX8M
  • RELEASE_NAME = mcuxpresso-2.9.0-mx8mq-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.9.0_V1.0_DART-MX8M
  • MCUXPRESSO_VERSION = 2.9.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.9.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/dart_mx8mq
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MQ
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8mq-v1.0

mcuxpresso-2.10.0-mx8mq-v1.0

 *HARDWARE_NAME = DART-MX8M
  • RELEASE_NAME = mcuxpresso-2.10.0-mx8mq-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.10.0_V1.0_DART-MX8M
  • MCUXPRESSO_VERSION = 2.10.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.10.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10-2020-q4-major
  • BOARD_FOLDER = boards/dart_mx8mq
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MQ
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8mq-v1.3
  • DEACTIVATE_LMEM_CACHE_PATCH = 0001-iMX8MQ-deactivated-the-LMEM-caches-to-debug-in-exter.patch
  • BOARD_SDK = dart_mx8mq

mcuxpresso-2.11.1-mx8mq-v1.0

 *HARDWARE_NAME = DART-MX8M
  • RELEASE_NAME = mcuxpresso-2.11.1-mx8mq-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.11.1_V1.0_DART-MX8M
  • MCUXPRESSO_VERSION = 2.11.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.11.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.07
  • BOARD_FOLDER = boards/dart_mx8mq
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MQ
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8mq-v1.5
  • DEACTIVATE_LMEM_CACHE_PATCH = 0001-iMX8MQ-deactivated-the-LMEM-caches-to-debug-in-exter.patch
  • BOARD_SDK = dart_mx8mq

mcuxpresso-2.12.1-mx8mq-v1.0

 *HARDWARE_NAME = DART-MX8M
  • RELEASE_NAME = mcuxpresso-2.12.1-mx8mq-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.12.1_V1.0_DART-MX8M
  • MCUXPRESSO_VERSION = 2.12.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.12.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.10
  • BOARD_FOLDER = boards/dart_mx8mq
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MQ.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MQ
  • YOCTO_RELEASE_TAG = mx8m-yocto-kirkstone-5.15-2.0.x-v1.0
  • DEACTIVATE_LMEM_CACHE_PATCH = 0001-iMX8MQ-deactivated-the-LMEM-caches-to-debug-in-exter.patch
  • BOARD_SDK = dart_mx8mq

mcuxpresso-2.13.0-mx8mq-v1.0


DART-MX8M-MINI

Sections

Available dtbs

To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing m4 label in the name, using the fdt_file environment variable in U-Boot.

This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.

File Name
Description
imx8mm-var-dart-dt8mcustomboard-m4.dtb DART-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell)
imx8mm-var-dart-m4.dtb DART-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. > 1.0
fsl-imx8mm-var-dart-m4.dtb DART-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. > 1.0
imx8mm-var-som-symphony-m4.dtb VAR-SOM-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4a and above
imx8mm-var-som-symphony-legacy-m4.dtb VAR-SOM-MX8M-MINI device tree blob for kernel >= 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4 and below
imx8mm-var-som-m4.dtb VAR-SOM-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. > 1.0
imx8mm-var-som-rev10-m4.dtb VAR-SOM-MX8M-MINI device tree blob for kernel 5.4.3 (Yocto Zeus) on SOM rev. 1.0
fsl-imx8mm-var-som-m4.dtb VAR-SOM-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. > 1.0
fsl-imx8mm-var-som-rev10-m4.dtb VAR-SOM-MX8M-MINI device tree blob for in kernels < 5.4.3 on SOM rev. 1.0


Default M4 pins

Default M4 pins used by the demos are:

Function Pin
Debug UART (UART2) RX: J12.6 / TX: J12.4
GPIO (GPIO4_IO03) LED7
I2C (I2C4) SCL: J12.17 / SDA: J12.19
PWM (PWM2) J14.3

Default M4 pins v2

Default M4 pins used by the demos are:

Function SoC balls DART-MX8M-MINI pins DT8MCB pins VAR-SOM-MX8M-MINI pins Symphony pins Notes
UART3 RX/TX E18 / D18 J2.87 / J2.89 J12.11 / J12.13 J1.175 / J1.124 J18.5 / J18.3
GPIO4_IO03 AF15 J2.59 GPLED1 J1.84 J17.3 The led_output demo makes the GPLED1 blink for only DT8MCustomBoard 1.x, use the scope on one of the following test points for DT8MCustomBoard >= 2.x (U43.2/R228/MIPI-CSI pin 20)
I2C4 SCL/SDA D13 / E13 J1.17 / J1.19 J12.17/ J12.19 J1.174 / J1.176 J16.10 / J16.12
PWM3 AF9 J3.36 J14.7 J1.69 J18.2
SPI1 CS0/SCK/SDI/SDO B6 / D6 / A7 / B7 J2.79 / J2.77 / J2.81 / J2.83 J16.4/ J16.2 / J16.8 / J16.6 J1.39 / J1.43 / J1.41 / J1.45 J16.4/ J16.2 / J16.6 / J16.8 Enabling it SPI devices will be no longer visible from Linux

Available Demos

  • driver_examples/i2c/interrupt_b2b_transfer/slave
  • driver_examples/i2c/interrupt_b2b_transfer/master
  • driver_examples/i2c/polling_b2b_transfer/slave
  • driver_examples/i2c/polling_b2b_transfer/master
  • driver_examples/wdog
  • driver_examples/sdma/scatter_gather
  • driver_examples/sdma/memory_to_memory
  • driver_examples/gpio/led_output
  • driver_examples/pwm
  • driver_examples/uart/auto_baudrate_detect
  • driver_examples/uart/interrupt
  • driver_examples/uart/idle_detect_sdma_transfer
  • driver_examples/uart/interrupt_rb_transfer
  • driver_examples/uart/sdma_transfer
  • driver_examples/uart/polling
  • driver_examples/uart/interrupt_transfer
  • driver_examples/gpt/timer
  • driver_examples/gpt/capture
  • driver_examples/ecspi/ecspi_loopback
  • driver_examples/ecspi/interrupt_b2b_transfer/slave
  • driver_examples/ecspi/interrupt_b2b_transfer/master
  • driver_examples/ecspi/polling_b2b_transfer/slave
  • driver_examples/ecspi/polling_b2b_transfer/master
  • driver_examples/rdc
  • driver_examples/tmu_1/monitor_threshold
  • driver_examples/tmu_1/temperature_polling
  • driver_examples/sema4/uboot
  • rtos_examples/freertos_ecspi/ecspi_loopback
  • rtos_examples/freertos_hello
  • rtos_examples/freertos_queue
  • rtos_examples/freertos_sem
  • rtos_examples/freertos_generic
  • rtos_examples/freertos_uart
  • rtos_examples/freertos_tickless
  • rtos_examples/freertos_mutex
  • rtos_examples/freertos_event
  • rtos_examples/freertos_swtimer
  • rtos_examples/freertos_i2c
  • cmsis_driver_examples/i2c/int_b2b_transfer/slave
  • cmsis_driver_examples/i2c/int_b2b_transfer/master
  • cmsis_driver_examples/uart/sdma_transfer
  • cmsis_driver_examples/uart/interrupt_transfer
  • cmsis_driver_examples/ecspi/int_loopback_transfer
  • cmsis_driver_examples/ecspi/sdma_loopback_transfer
  • multicore_examples/rpmsg_lite_str_echo_rtos
  • multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
  • demo_apps/hello_world

Variscite Memory types

The SDK allow linking using 2 different memory types: DDR, TCM.

Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.

memory type M4 memory area A53 memory area memory lentgh linker file
DDR 0x7E000000-0x7E1FFFFF (code)
0x7E200000-0x7E3FFFFF (data)
0x7E400000-0x7EFFFFFF (data2)
0x7E000000-0x7E1FFFFF (code)
0x7E200000-0x7E3FFFFF (data)
0x7E400000-0x7EFFFFFF (data2)
16MB (DDR) MIMX8MM6xxxxx_cm4_ddr_ram.ld
TCM 0x1FFE0000-0x1FFFFFFF (code)
0x20000000-0x2001FFFF (data)
0x7E000000-0x7EFFFFFF (data2)
0x007E0000-0x007FFFFF (code)
0x00800000-0x0081FFFF (data)
0x7E000000-0x7EFFFFFF (data2)
256kB (TCM) + 16MB (DDR) MIMX8MM6xxxxx_cm4_ram.ld

All linker files are locate in the armgcc folder of each demo.

The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M4 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M4 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M4.

The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M4 accessing the RPMSG area.

After launching the build_all.sh command the following folder will be created in the armgcc folder

  • ddr_debug: containing DDR binaries compiled in debug mode (not stripped: symbols available)
  • ddr_release: containing DDR binaries compiled in release mode (stripped: no symbols available)
  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)

Further details about memory mapping are available in the following i.MX 8M Mini Applications Processor Reference Manual paragraphs:

  • 2.1.2 Cortex-A53 Memory Map
  • 2.1.3 Cortex-M4 Memory Map

Releases

freertos-1.0.1-mx7-v1.0


mcuxpresso-2.5.0-mx8mm-v1.0

  • HARDWARE_NAME = DART-MX8M-MINI
  • RELEASE_NAME = mcuxpresso-2.5.0-mx8mm-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.5.0_V1.0_DART-MX8M-MINI
  • MCUXPRESSO_VERSION = 2.5.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.5.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-7-2018-q2-update
  • BOARD_FOLDER = boards/dart_mx8mm
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-MINI_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M-MINI_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-MINI_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MM

mcuxpresso-2.5.0-mx8mm-v1.1

   *HARDWARE_NAME = DART-MX8M-MINI
  • RELEASE_NAME = mcuxpresso-2.5.0-mx8mm-v1.1
  • RELEASE_LINK = MCUXPRESSO_2.5.0_V1.1_DART-MX8M-MINI
  • MCUXPRESSO_VERSION = 2.5.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.5.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-7-2018-q2-update
  • BOARD_FOLDER = boards/dart_mx8mm
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-MINI_PINS_SECTION_V2
  • DEMOS_SECTION = DART-MX8M-MINI_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-MINI_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MM

mcuxpresso-2.8.0-mx8mm-v1.0

   *HARDWARE_NAME = DART-MX8M-MINI
  • RELEASE_NAME = mcuxpresso-2.8.0-mx8mm-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.8.0_V1.0_DART-MX8M-MINI
  • MCUXPRESSO_VERSION = 2.8.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.8.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/dart_mx8mm
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-MINI_PINS_SECTION_V2
  • DEMOS_SECTION = DART-MX8M-MINI_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-MINI_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MM

mcuxpresso-2.9.0-mx8mm-v1.0

   *HARDWARE_NAME = DART-MX8M-MINI
  • RELEASE_NAME = mcuxpresso-2.9.0-mx8mm-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.9.0_V1.0_DART-MX8M-MINI
  • MCUXPRESSO_VERSION = 2.9.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.9.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/dart_mx8mm
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-MINI_PINS_SECTION_V2
  • DEMOS_SECTION = DART-MX8M-MINI_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-MINI_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MM
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8mm-v1.1

mcuxpresso-2.10.0-mx8mm-v1.0

   *HARDWARE_NAME = DART-MX8M-MINI
  • RELEASE_NAME = mcuxpresso-2.10.0-mx8mm-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.10.0_V1.0_DART-MX8M-MINI
  • MCUXPRESSO_VERSION = 2.10.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.10.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10-2020-q4-major
  • BOARD_FOLDER = boards/dart_mx8mm
  • DEACTIVATE_LMEM_CACHE_PATCH = 0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-MINI_PINS_SECTION_V2
  • DEMOS_SECTION = DART-MX8M-MINI_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-MINI_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MM
  • YOCTO_RELEASE_TAG = hardknott-fslc-5.4-2.3.x-mx8mm-v1.1

mcuxpresso-2.11.1-mx8mm-v1.0

   *HARDWARE_NAME = DART-MX8M-MINI
  • RELEASE_NAME = mcuxpresso-2.11.1-mx8mm-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.11.1_V1.0_DART-MX8M-MINI
  • MCUXPRESSO_VERSION = 2.11.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.11.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.07
  • BOARD_FOLDER = boards/dart_mx8mm
  • DEACTIVATE_LMEM_CACHE_PATCH = 0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-MINI_PINS_SECTION_V2
  • DEMOS_SECTION = DART-MX8M-MINI_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-MINI_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MM
  • YOCTO_RELEASE_TAG = hardknott-fslc-5.4-2.3.x-mx8mm-v1.4

mcuxpresso-2.12.1-mx8mm-v1.0

   *HARDWARE_NAME = DART-MX8M-MINI
  • RELEASE_NAME = mcuxpresso-2.12.1-mx8mm-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.12.1_V1.0_DART-MX8M-MINI
  • MCUXPRESSO_VERSION = 2.12.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.12.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.10
  • BOARD_FOLDER = boards/dart_mx8mm
  • DEACTIVATE_LMEM_CACHE_PATCH = 0001-iMX8M-MINI-deactivated-the-LMEM-caches-to-debug-in-e.patch
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-MINI_PINS_SECTION_V2
  • DEMOS_SECTION = DART-MX8M-MINI_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-MINI_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-MINI_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MM.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MM
  • YOCTO_RELEASE_TAG = mx8mm-yocto-kirkstone-5.15-2.0.x-v1.0

mcuxpresso-2.13.0-mx8mm-v1.0


VAR-SOM-MX8M-NANO

Sections

Available dtbs

To allow Cortex M7 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing m7 label in the name, using the fdt_file environment variable in U-Boot.

File Name
Description
imx8mn-var-som-symphony-m7.dtb VAR-SOM-MX8M-NANO device tree blob for kernel = 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4a and above and for kernel >= 5.10.72 (Yocto Hardknott) on all Symphony-Boards
imx8mn-var-som-symphony-legacy-m7.dtb VAR-SOM-MX8M-NANO device tree blob for kernel = 5.4.74 (Yocto Dunfell) on Symphony-Board 1.4 and below
imx8mn-var-som-m7.dtb VAR-SOM-MX8M-NANO device tree blob for kernel 5.4.3 - 5.4.24 (Yocto Zeus) on som rev > 1.0
imx8mn-var-som-rev10-m7.dtb VAR-SOM-MX8M-NANO device tree blob for kernel 5.4.3 - 5.4.24 (Yocto Zeus) on som rev 1.0
fsl-imx8mn-var-som-m7.dtb VAR-SOM-MX8M-NANO device tree blob for kernel < 5.4.3 on som rev > 1.0
fsl-imx8mn-var-som-rev10-m7.dtb VAR-SOM-MX8M-NANO device tree blob for kernel < 5.4.3 on som rev 1.0

This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M7.

Default M7 pins

Default M7 pins used by the demos are:

Function SoC balls VAR-SOM-MX8M-NANO pins Symphony pins Notes
UART3 RX/TX E18 / D18 J1.175 / J1.124 J18.5 / J18.3
GPIO4_IO23 AC24 J1.21 J16.5
I2C4 SCL/SDA D13 / E13 J1.174 / J1.176 J16.10 / J16.12
PWM3 AF9 J1.69 J18.2
SPI1 CS0/SCK/SDI/SDO B6 / D6 / A7 / B7 J1.39 / J1.43 / J1.41 / J1.45 J16.4/ J16.2 / J16.6 / J16.8 Enabling it SPI devices will be no longer visible from Linux

Available Demos

  • driver_examples/i2c/interrupt_b2b_transfer/slave
  • driver_examples/i2c/interrupt_b2b_transfer/master
  • driver_examples/i2c/polling_b2b_transfer/slave
  • driver_examples/i2c/polling_b2b_transfer/master
  • driver_examples/wdog
  • driver_examples/sdma/scatter_gather
  • driver_examples/sdma/memory_to_memory
  • driver_examples/gpio/led_output
  • driver_examples/pwm
  • driver_examples/uart/auto_baudrate_detect
  • driver_examples/uart/interrupt
  • driver_examples/uart/idle_detect_sdma_transfer
  • driver_examples/uart/interrupt_rb_transfer
  • driver_examples/uart/sdma_transfer
  • driver_examples/uart/polling
  • driver_examples/uart/interrupt_transfer
  • driver_examples/gpt/timer
  • driver_examples/gpt/capture
  • driver_examples/ecspi/ecspi_loopback
  • driver_examples/ecspi/interrupt_b2b_transfer/slave
  • driver_examples/ecspi/interrupt_b2b_transfer/master
  • driver_examples/ecspi/polling_b2b_transfer/slave
  • driver_examples/ecspi/polling_b2b_transfer/master
  • driver_examples/rdc
  • driver_examples/tmu_1/monitor_threshold
  • driver_examples/tmu_1/temperature_polling
  • driver_examples/sema4/uboot
  • rtos_examples/freertos_ecspi/ecspi_loopback
  • rtos_examples/freertos_hello
  • rtos_examples/freertos_queue
  • rtos_examples/freertos_sem
  • rtos_examples/freertos_generic
  • rtos_examples/freertos_uart
  • rtos_examples/freertos_tickless
  • rtos_examples/freertos_mutex
  • rtos_examples/freertos_event
  • rtos_examples/freertos_swtimer
  • rtos_examples/freertos_i2c
  • cmsis_driver_examples/i2c/int_b2b_transfer/slave
  • cmsis_driver_examples/i2c/int_b2b_transfer/master
  • cmsis_driver_examples/uart/sdma_transfer
  • cmsis_driver_examples/uart/interrupt_transfer
  • cmsis_driver_examples/ecspi/int_loopback_transfer
  • cmsis_driver_examples/ecspi/sdma_loopback_transfer
  • multicore_examples/rpmsg_lite_str_echo_rtos
  • multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
  • demo_apps/hello_world

Memory types

The SDK allow linking using 2 different memory types: DDR, TCM.

Here is available a short summary of memory areas used by Cortex-M7 as described in related linker file.

memory type M7 memory area A53 memory area memory lentgh linker file
DDR 0x7E000000-0x7E1FFFFF (code)
0x7E200000-0x7E3FFFFF (data)
0x7E400000-0x7EFFFFFF (data2)
0x7E000000-0x7E1FFFFF (code)
0x7E200000-0x7E3FFFFF (data)
0x7E400000-0x7EFFFFFF (data2)
16MB (DDR) MIMX8MN6xxxxx_cm7_ddr_ram.ld
TCM 0x00000000-0x0001FFFF (code)
0x20000000-0x2001FFFF (data)
0x7E000000-0x7EFFFFFF (data2)
0x007E0000-0x007FFFFF (code)
0x00800000-0x0081FFFF (data)
0x7E000000-0x7EFFFFFF (data2)
256kB (TCM) + 16MB (DDR) MIMX8MN6xxxxx_cm7_ram.ld

All linker files are locate in the armgcc folder of each demo.

The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M7 accessing the range 0x7E000000 - 0x7EFFFFFF. For some reason, Cortex-M7 is not able to access RAM locations below 0x60000000: SoMs with 512 MB of RAM are not suitable to use Cortex-M7.

The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M7 accessing the RPMSG area.

After launching the build_all.sh command the following folder will be created in the armgcc folder

  • ddr_debug: containing DDR binaries compiled in debug mode (not stripped: symbols available)
  • ddr_release: containing DDR binaries compiled in release mode (stripped: no symbols available)
  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)

Further details about memory mapping are available in the following i.MX 8M Nano Applications Processor Reference Manual paragraphs:

  • 2.1.2 Cortex-A53 Memory Map
  • 2.1.3 Cortex-M7 Memory Map

JTAG

VAR-SOM-MX8M-NANO exposes JTAG signals on a header (not assembled by default) on the SOM top left side.

Here is the pinout:

pin signal description pin signal description
1 JTAG_VREF JTAG IO reference voltage,
connected to SOM_3V3_PER via 150 Ohm.
2 JTAG_TMS JTAG Mode Select signal
3 GND Digital Ground 4 JTAG_TCK JTAG Clock signal,
include PD of 8.2K Ohm.
5 GND Digital Ground 6 JTAG_TDO JTAG Data Out signal
7 GND Digital Ground 8 JTAG_TDI JTAG Data In signal
9 JTAG_TRST_B JTAG Reset signal,
active low signal
10 POR_B Programmer Reset,
used to put the SOC in reset state.

Please refer to SoM datasheet for further details.

Releases

mcuxpresso-2.7.0-mx8mn-v1.0

   *HARDWARE_NAME = VAR-SOM-MX8M-NANO
  • SOC_HAS_M7 = true
  • RELEASE_NAME = mcuxpresso-2.7.0-mx8mn-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.7.0_V1.0_VAR-SOM-MX8M-NANO
  • MCUXPRESSO_VERSION = 2.7.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.7.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2019q3/RC1.1/gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-8-2019-q3-update
  • BOARD_FOLDER = boards/som_mx8mn
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8M-NANO_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8M-NANO_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8M-NANO_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8MN_MEMORY-TYPES
  • JTAG_SECTION = VAR-SOM-MX8MN_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MN

mcuxpresso-2.8.0-mx8mn-v1.0

 *HARDWARE_NAME = VAR-SOM-MX8M-NANO
  • SOC_HAS_M7 = true
  • RELEASE_NAME = mcuxpresso-2.8.0-mx8mn-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8M-NANO
  • MCUXPRESSO_VERSION = 2.8.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.8.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/som_mx8mn
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8M-NANO_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8M-NANO_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8M-NANO_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8MN_MEMORY-TYPES
  • JTAG_SECTION = VAR-SOM-MX8MN_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MN

mcuxpresso-2.9.0-mx8mn-v1.0

 *HARDWARE_NAME = VAR-SOM-MX8M-NANO
  • SOC_HAS_M7 = true
  • RELEASE_NAME = mcuxpresso-2.9.0-mx8mn-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8M-NANO
  • MCUXPRESSO_VERSION = 2.9.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.9.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/som_mx8mn
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8M-NANO_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8M-NANO_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8M-NANO_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8MN_MEMORY-TYPES
  • JTAG_SECTION = VAR-SOM-MX8MN_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MN
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8mn-v1.1

mcuxpresso-2.10.0-mx8mn-v1.0

 *HARDWARE_NAME = VAR-SOM-MX8M-NANO
  • SOC_HAS_M7 = true
  • RELEASE_NAME = mcuxpresso-2.10.0-mx8mn-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.10.0_V1.0_VAR-SOM-MX8M-NANO
  • MCUXPRESSO_VERSION = 2.10.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.10.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10-2020-q4-major
  • BOARD_FOLDER = boards/som_mx8mn
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8M-NANO_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8M-NANO_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8M-NANO_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8MN_MEMORY-TYPES
  • JTAG_SECTION = VAR-SOM-MX8MN_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MN
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8mn-v1.6

mcuxpresso-2.11.1-mx8mn-v1.0

 *HARDWARE_NAME = VAR-SOM-MX8M-NANO
  • SOC_HAS_M7 = true
  • RELEASE_NAME = mcuxpresso-2.11.1-mx8mn-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.11.1_V1.0_VAR-SOM-MX8M-NANO
  • MCUXPRESSO_VERSION = 2.11.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.11.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.07
  • BOARD_FOLDER = boards/som_mx8mn
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8M-NANO_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8M-NANO_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8M-NANO_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8MN_MEMORY-TYPES
  • JTAG_SECTION = VAR-SOM-MX8MN_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MN
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8mn-v1.8

mcuxpresso-2.12.1-mx8mn-v1.0

 *HARDWARE_NAME = VAR-SOM-MX8M-NANO
  • SOC_HAS_M7 = true
  • RELEASE_NAME = mcuxpresso-2.12.1-mx8mn-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.12.1_V1.0_VAR-SOM-MX8M-NANO
  • MCUXPRESSO_VERSION = 2.12.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.12.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.10
  • BOARD_FOLDER = boards/som_mx8mn
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8M-NANO_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8M-NANO_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8M-NANO_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8MN_MEMORY-TYPES
  • JTAG_SECTION = VAR-SOM-MX8MN_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MN.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MN
  • YOCTO_RELEASE_TAG = mx8mn-yocto-hardknott-5.10.72_2.2.1-v1.0

mcuxpresso-2.13.0-mx8mn-v1.0


DART-MX8M-PLUS

Sections

Available dtbs

To allow Cortex M7 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing m7 label in the name, using the fdt_file environment variable in U-Boot.

This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M7.

File Name
Description
imx8mp-var-dart-dt8customboard-m7.dtb DART-MX8M-PLUS device tree blob for kernel >= 5.4.70 (Yocto Zeus) on DT8MCustomBoard 2.x
imx8mp-var-dart-dt8mcustomboard-legacy-m7.dtb DART-MX8M-PLUS device tree blob for kernel >= 5.4.70 (Yocto Zeus) on on DT8MCustomBoard 1.x
imx8mp-var-som-symphony-m7.dtb VAR-SOM-MX8M-PLUS device tree blob for kernels >= 5.4.70 (Yocto Zeus) on on Symphony-Board
imx8mp-var-som-symphony-2nd-ov5640m7.dtb VAR-SOM-MX8M-PLUS device tree blob for kernels >= 5.4.70 (Yocto Zeus) on on Symphony-Board with 2nd OV5640


Default M7 pins v1

Default M7 pins used by the demos are:

Function SoC balls DART-MX8M-PLUS pins DT8MCB pins VAR-SOM-MX8M-PLUS pins Symphony pins Notes
UART3 RX/TX AE6 / AJ4 J2.87 / J2.89 J12.11 / J12.13
UART4 RX/TX AH5 / AJ5 J1.115 / J1.171 J18.9 / J18.7
GPIO3_IO14 R26 J1.79 J17.10
GPIO4_IO03 AF10 J2.59 GPLED1 on DT8MCB rev 1.x
J11.20 on DT8MCB rev 2.x
I2C3 SCL/SDA AJ7 / AJ6 J3.46 / J3.42 J12.18/ J12.20
I2C4 SCL/SDA AF8 / AD8 J1.92 / J1.90 J16.13 / J16.15 Enabling it SPI devices will be no longer visible from Linux
PWM2 D8 J1.69 J18.2
PWM3 AE18 J3.36 J14.7
SPI1 CS0/SCK/SDI/SDO AE20 / AF20 / AD20 / AC20 J2.79 / J2.77 / J2.81 / J2.83 J16.4/ J16.2 / J16.8 / J16.6 Enabling it SPI devices will be no longer visible from Linux
SPI2 CS0/SCK/SDI/SDO AJ22 / AH21 / AH20 / AJ21 J1.39 / J1.43 / J1.41 / J1.45 J16.4/ J16.2 / J16.6 / J16.8 Enabling it SPI devices will be no longer visible from Linux
FLEXCAN1 RX/TX AH15 / AJ16 j2.56 / j2.50 J13.11 / J13.5 on DT8MCB rev 1.x, TTL levels (CAN transceiver not mounted!) Enabling it FLEXCAN1 devices will be no longer visible from Linux
J16.9 / J16.7 on DT8MCB rev 2.x, CANL/CANH levels (CAN transceiver mounted!)
FLEXCAN2 RX/TX AJ4 / AE6 J1.46 / J1.44 J16.18 / J16.20, CANL/CANH levels (CAN transceiver mounted!) Enabling it FLEXCAN2 devices will be no longer visible from Linux

Available Demos

  • driver_examples/i2c/interrupt_b2b_transfer/slave
  • driver_examples/i2c/interrupt_b2b_transfer/master
  • driver_examples/i2c/polling_b2b_transfer/slave
  • driver_examples/i2c/polling_b2b_transfer/master
  • driver_examples/wdog
  • driver_examples/sdma/scatter_gather
  • driver_examples/sdma/memory_to_memory
  • driver_examples/gpio/led_output
  • driver_examples/pwm
  • driver_examples/uart/auto_baudrate_detect
  • driver_examples/uart/interrupt
  • driver_examples/uart/interrupt_rb_transfer
  • driver_examples/uart/polling
  • driver_examples/uart/interrupt_transfer
  • driver_examples/gpt/timer
  • driver_examples/gpt/capture
  • driver_examples/ecspi/ecspi_loopback
  • driver_examples/ecspi/interrupt_b2b_transfer/slave
  • driver_examples/ecspi/interrupt_b2b_transfer/master
  • driver_examples/ecspi/polling_b2b_transfer/slave
  • driver_examples/ecspi/polling_b2b_transfer/master
  • driver_examples/rdc
  • driver_examples/tmu/monitor_threshold
  • driver_examples/tmu/temperature_polling
  • driver_examples/sema4/uboot
  • rtos_examples/freertos_ecspi/ecspi_loopback
  • rtos_examples/freertos_hello
  • rtos_examples/freertos_queue
  • rtos_examples/freertos_sem
  • rtos_examples/freertos_generic
  • rtos_examples/freertos_uart
  • rtos_examples/freertos_tickless
  • rtos_examples/freertos_mutex
  • rtos_examples/freertos_event
  • rtos_examples/freertos_swtimer
  • rtos_examples/freertos_i2c
  • cmsis_driver_examples/i2c/int_b2b_transfer/slave
  • cmsis_driver_examples/i2c/int_b2b_transfer/master
  • cmsis_driver_examples/uart/interrupt_transfer
  • cmsis_driver_examples/ecspi/int_loopback_transfer
  • cmsis_driver_examples/ecspi/sdma_loopback_transfer
  • multicore_examples/rpmsg_lite_str_echo_rtos
  • multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
  • demo_apps/hello_world
  • driver_examples/uart/idle_detect_sdma_transfer
  • driver_examples/uart/sdma_transfer
  • cmsis_driver_examples/uart/sdma_transfer

Variscite Memory types

The SDK allow linking using 2 different memory types: DDR, TCM.

Here is available a short summary of memory areas used by Cortex-M7 as described in related linker file.

memory type M7 memory area A53 memory area memory lentgh linker file
DDR 0x80000000-0x801FFFFF (code)
0x80200000-0x803FFFFF (data)
0x80400000-0x80FFFFFF (data2)
0x80000000-0x801FFFFF (code)
0x80200000-0x803FFFFF (data)
0x80400000-0x80FFFFFF (data2)
16MB (DDR) MIMX8MN6xxxxx_cm7_ddr_ram.ld
TCM 0x00000000-0x0001FFFF (code)
0x20000000-0x2001FFFF (data)
0x80000000-0x80FFFFFF (data2)
0x007E0000-0x007FFFFF (code)
0x00800000-0x0081FFFF (data)
0x80000000-0x80FFFFFF (data2)
256kB (TCM) + 16MB (DDR) MIMX8MN6xxxxx_cm7_ram.ld

All linker files are locate in the armgcc folder of each demo.

The DDR reserved area must match the one declared in the kernel device tree: at least 1 GB of RAM is required on the SoM to allow Cortex-M7 accessing the range 0x80000000 - 0x80FFFFFF.

The RPMSG area is located at 0x40000000: all SoMs allow Cortex-M7 accessing the RPMSG area.

After launching the build_all.sh command the following folder will be created in the armgcc folder

  • ddr_debug: containing DDR binaries compiled in debug mode (not stripped: symbols available)
  • ddr_release: containing DDR binaries compiled in release mode (stripped: no symbols available)
  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)

Further details about memory mapping are available in the following i.MX 8M Plus Applications Processor Reference Manual paragraphs:

  • 2.2 Cortex-A53 Memory Map
  • 2.3 Cortex-M7 Memory Map

JTAG

The VAR-SOM-MX8M-PLUS exposes JTAG interface via an optional 10-pin header, on the SOM top left side.
The DART-MX8M-PLUS exports JTAG interface via an optional 10-pin header, on the DT8MCustomBoard top side.

Here is the pinout:

pin signal description pin signal description
1 JTAG_VREF JTAG IO reference voltage,
connected to SOM_3V3_PER via 150 Ohm.
2 JTAG_TMS JTAG Mode Select signal
3 GND Digital Ground 4 JTAG_TCK JTAG Clock signal,
include PD of 8.2K Ohm.
5 GND Digital Ground 6 JTAG_TDO JTAG Data Out signal
7 GND Digital Ground 8 JTAG_TDI JTAG Data In signal
9 JTAG_TRST_B JTAG Reset signal,
active low signal
10 POR_B Programmer Reset,
used to put the SOC in reset state.

Please refer to SoM datasheet for further details.

Releases

mcuxpresso-2.9.0-mx8mp-v1.0

   *HARDWARE_NAME = DART-MX8M-PLUS
  • RELEASE_NAME = mcuxpresso-2.9.0-mx8mp-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.9.0_V1.0_DART-MX8M-PLUS
  • MCUXPRESSO_VERSION = 2.9.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.9.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/dart_mx8mp
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-PLUS_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M-PLUS_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-PLUS_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M-PLUS_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MP
  • YOCTO_RELEASE_TAG = zeus-fsl-5.4.70_2.3.2-mx8mp-v1.1
  • SOM_CAN_SUPPORT_1GB_DDR = yes

mcuxpresso-2.10.0-mx8mp-v1.0

   *HARDWARE_NAME = DART-MX8M-PLUS
  • RELEASE_NAME = mcuxpresso-2.10.0-mx8mp-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.10.0_V1.0_DART-MX8M-PLUS
  • MCUXPRESSO_VERSION = 2.10.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.10.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10-2020q4/gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10-2020-q4-major-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10-2020-q4-major
  • BOARD_FOLDER = boards/dart_mx8mp
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-PLUS_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M-PLUS_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-PLUS_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M-PLUS_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MP
  • YOCTO_RELEASE_TAG = hardknott-fsl-5.10.52_2.1.0-mx8mp-v1.2
  • SOM_CAN_SUPPORT_1GB_DDR = yes

mcuxpresso-2.11.1-mx8mp-v1.0

   *HARDWARE_NAME = DART-MX8M-PLUS
  • RELEASE_NAME = mcuxpresso-2.11.1-mx8mp-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.11.1_V1.0_DART-MX8M-PLUS
  • MCUXPRESSO_VERSION = 2.11.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.11.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.07/gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.07-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.07
  • BOARD_FOLDER = boards/dart_mx8mp
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-PLUS_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M-PLUS_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-PLUS_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M-PLUS_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MP
  • YOCTO_RELEASE_TAG = hardknott-fsl-5.10.52_2.1.0-mx8mp-v1.2
  • SOM_CAN_SUPPORT_1GB_DDR = yes

mcuxpresso-2.12.1-mx8mp-v1.0

   *HARDWARE_NAME = DART-MX8M-PLUS
  • RELEASE_NAME = mcuxpresso-2.12.1-mx8mp-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.12.1_V1.0_DART-MX8M-PLUS
  • MCUXPRESSO_VERSION = 2.12.1
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.12.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/10.3-2021.10/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-10.3-2021.10
  • BOARD_FOLDER = boards/dart_mx8mp
  • DOCS_FOLDER = docs
  • PINS_SECTION = DART-MX8M-PLUS_PINS_SECTION
  • DEMOS_SECTION = DART-MX8M-PLUS_DEMOS_SECTION
  • DTBS_SECTION = DART-MX8M-PLUS_DTBS_SECTION
  • MEMORY_TYPES_SECTION = DART-MX8M-PLUS_MEMORY-TYPES_VAR_SECTION
  • JTAG_SECTION = DART-MX8M-PLUS_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf
  • NXP_REFERENCE_KIT = EVK-MIMX8MP
  • YOCTO_RELEASE_TAG = mx8mp-yocto-kirkstone-5.15-2.0.x-v1.0
  • SOM_CAN_SUPPORT_1GB_DDR = yes

mcuxpresso-2.13.0-mx8mp-v1.0


VAR-SOM-MX8X

Sections

Available dtbs

To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing m4 label in the name, using the fdt_file environment variable in U-Boot.

This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.

File Name
Description
imx8qxp-var-som-symphony-sd-m4.dtb VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)
imx8qxp-var-som-symphony-m4.dtb VAR-SOM-MX8 device tree blob for kernel >= 5.4.85 (Yocto Dunfell)


Default M4 pins

Default M4 pins used by the demos are:

Function Pin
debug UART (UART2) RX: J18.5 / TX: J18.3
I2C (I2C3) SCL: J16.10 / SDA: J16.12
M4 GPIO (M40_GPIO0_IO00) J16.3
M4 PWM (M40_TPM0_CH0) J16.7

Available Demos

  • cmsis_driver_examples/lpi2c/int_b2b_transfer/slave
  • cmsis_driver_examples/lpi2c/int_b2b_transfer/master
  • cmsis_driver_examples/lpi2c/edma_b2b_transfer/slave
  • cmsis_driver_examples/lpi2c/edma_b2b_transfer/master
  • cmsis_driver_examples/lpuart/edma_transfer
  • cmsis_driver_examples/lpuart/interrupt_transfer
  • demo_apps/hello_world
  • driver_examples/edma/scatter_gather
  • driver_examples/edma/memory_to_memory
  • driver_examples/intmux
  • driver_examples/lpi2c/edma_b2b_transfer/slave
  • driver_examples/lpi2c/edma_b2b_transfer/master
  • driver_examples/lpi2c/interrupt_b2b_transfer/slave
  • driver_examples/lpi2c/interrupt_b2b_transfer/master
  • driver_examples/lpi2c/polling_b2b_transfer/slave
  • driver_examples/lpi2c/polling_b2b_transfer/master
  • driver_examples/lpi2c/read_accel_value_transfer
  • driver_examples/lpit
  • driver_examples/lpuart/edma_transfer
  • driver_examples/lpuart/interrupt_rb_transfer
  • driver_examples/lpuart/polling
  • driver_examples/lpuart/interrupt_transfer
  • driver_examples/rgpio/led_output
  • driver_examples/sema42/uboot
  • driver_examples/tpm/input_capture
  • driver_examples/tpm/dual_edge_capture
  • driver_examples/tpm/timer
  • driver_examples/tpm/simple_pwm
  • driver_examples/tpm/output_compare
  • driver_examples/tstmr
  • driver_examples/wdog32
  • mmcau_examples/mmcau_api
  • multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
  • multicore_examples/rpmsg_lite_str_echo_rtos
  • rtos_examples/freertos_hello
  • rtos_examples/freertos_queue
  • rtos_examples/freertos_sem
  • rtos_examples/freertos_generic
  • rtos_examples/freertos_tickless
  • rtos_examples/freertos_mutex
  • rtos_examples/freertos_event
  • rtos_examples/freertos_swtimer

Additional demos are available as reference code, but require HW/SW customization.

NXP Memory types

The SDK allow linking using 2 different memory types: DDR, TCM.

Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.

memory type M4 memory area A35 memory area memory lentgh linker file
DDR 0x88000000-0x881FFFFF (code)
0x88200000-0x883FFFFF (data)
0x88400000-0x8FFFFFFF (data2)
0x88000000-0x881FFFFF (code)
0x88200000-0x883FFFFF (data)
0x88400000-0x8FFFFFFF (data2)
128MB (DDR) MIMX8QX6xxxFZ_cm4_ddr_ram.ld
TCM 0x1FFE0000-0x1FFFFFFF (code)
0x20000000-0x2001FFFF (data)
0x88000000-0x8FFFFFFF (data2)
0x34FE0000-0x34FFFFFF (code)
0x35000000-0x3501FFFF (data)
0x88000000-0x8FFFFFFF (data2)
256kB (TCM) + 128MB (DDR) MIMX8QX6xxxFZ_cm4_ram.ld

All linker files are locate in the armgcc folder of each demo.

After launching the build_all.sh command the following folder will be created in the armgcc folder

  • ddr_debug: containing DDR binaries compiled in debug mode (not stripped: symbols available)
  • ddr_release: containing DDR binaries compiled in release mode (stripped: no symbols available)
  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)

Further details about memory mapping are available in the following i.MX 8DualX/8DualXPlus/8QuadXPlus Applications Processor Reference Manual paragraphs:

  • 2.2 System Memory Map
  • 2.2.9 Cortex-M4 Memory Map

JTAG

The VAR-SOM-MX8X exposes JTAG interface via an optional 10-pin header

Here is the pinout:

pin signal description pin signal (ball) description
1 JTAG_VREF JTAG reference voltage (3.3V) 2 JTAG_TMS (AG35) JTAG Mode Select
3 GND Digital Ground 4 JTAG_TCK (AE31) JTAG Clock
5 GND Digital Ground 6 JTAG_TDO (AF32) JTAG Data Out
7 RTCK JTAG Return clock 8 JTAG_TDI (AH34) JTAG Data In
9 JTAG_TRST_B_CONN JTAG TAP reset 10 JTAG_SRST_B JTAG System reset

Please refer to SOM datasheet for further details.


Releases

mcuxpresso-2.5.2-mx8qx-v1.0

       *HARDWARE_NAME = VAR-SOM-MX8X

mcuxpresso-2.8.0-mx8qx-v1.0

     *HARDWARE_NAME = VAR-SOM-MX8X
  • SOC_HAS_SCU = true
  • RELEASE_NAME = mcuxpresso-2.8.0-mx8qx-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.8.0_V1.0_VAR-SOM-MX8X
  • YOCTO_RELEASE_LINK = RELEASE_SUMO_V1.2_VAR-SOM-MX8X
  • MCUXPRESSO_VERSION = 2.8.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.8.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/som_mx8qx
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8X_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8X_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8X_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION
  • JTAG_SECTION = VAR-SOM-MX8X_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for MEK-MIMX8QX.pdf
  • NXP_REFERENCE_KIT = IMX8QXP-MEK
  • SCFW_SOC = = mx8qx_b0
  • SCFW_PATCH_URL = = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX8X/Software/SCFW
  • SCFW_M4_PATCH = = 0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff
  • IMX_MKIMAGE_SOC = = iMX8QX
  • SDK_GIT_TAG = som-mx8qx_mcuxpresso-2.8.0_v10
  • RELEASE_DATE = 02/18/2021
  • SUPPORTED_REV_SOM = v1.1 and higher
  • SUPPORTED_REV_CARRIER = v1.1 and higher
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8x-v1.0

mcuxpresso-2.9.0-mx8qx-v1.0

     *HARDWARE_NAME = VAR-SOM-MX8X
  • SOC_HAS_SCU = true
  • RELEASE_NAME = mcuxpresso-2.9.0-mx8qx-v1.0
  • RELEASE_LINK = MCUXPRESSO_2.9.0_V1.0_VAR-SOM-MX8X
  • YOCTO_RELEASE_LINK = RELEASE_SUMO_V1.2_VAR-SOM-MX8X
  • MCUXPRESSO_VERSION = 2.9.0
  • SDK_PATH = ~/var-mcuxpresso
  • SDK_GIT_URL = https://github.com/varigit/freertos-variscite
  • SDK_GIT_BRANCH = mcuxpresso_sdk_2.9.x-var01
  • TOOLCHAIN_URL = https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_BZ2_NAME = gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2
  • TOOLCHAIN_FOLDER = gcc-arm-none-eabi-9-2020-q2-update
  • BOARD_FOLDER = boards/som_mx8qx
  • DOCS_FOLDER = docs
  • PINS_SECTION = VAR-SOM-MX8X_PINS_SECTION
  • DEMOS_SECTION = VAR-SOM-MX8X_DEMOS_SECTION
  • DTBS_SECTION = VAR-SOM-MX8X_DTBS_SECTION
  • MEMORY_TYPES_SECTION = VAR-SOM-MX8X_MEMORY-TYPES_NXP_SECTION
  • JTAG_SECTION = VAR-SOM-MX8X_JTAG_SECTION
  • NXP_USER_GUIDE = Getting Started with MCUXpresso SDK for MEK-MIMX8QX.pdf
  • NXP_REFERENCE_KIT = IMX8QXP-MEK
  • SCFW_SOC = = mx8qx_b0
  • SCFW_PATCH_URL = = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX8X/Software/SCFW
  • SCFW_M4_PATCH = = 0002-mx8qxp-var-som_scfw-1.2.2_sample-M4-customization.diff
  • IMX_MKIMAGE_SOC = = iMX8QX
  • SDK_GIT_TAG = som-mx8qx_mcuxpresso-2.9.0_v10
  • RELEASE_DATE = 03/04/2021
  • SUPPORTED_REV_SOM = v1.1 and higher
  • SUPPORTED_REV_CARRIER = v1.1 and higher
  • YOCTO_RELEASE_TAG = dunfell-fslc-5.4-2.1.x-mx8x-v1.0

VAR-SOM-MX8

Sections

Available dtbs

To allow Cortex M4 accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, containing m4 label in the name, using the fdt_file environment variable in U-Boot.

This device tree disables some of the base device tree nodes in order to avoid conflicts between the main processor and Cortex M4.

File Name
Description
imx8qm-var-som-symphony-dp-m4.dtb DTB file for VAR-SOM-MX8 with DP display and Cortex-M4 on Symphony Board for kernel >= 5.10.72 (Yocto Hardknott)
imx8qm-var-som-symphony-hdmi-m4.dtb DTB file for VAR-SOM-MX8 with HDMI display and Cortex-M4 on Symphony Board for kernel >= 5.10.72 (Yocto Hardknott)
imx8qm-var-som-symphony-lvds-m4.dtb DTB file for VAR-SOM-MX8 with LVDS display and Cortex-M4 on Symphony Board for kernel >= 5.10.72 (Yocto Hardknott)
imx8qm-var-spear-sp8customboard-dp-m4.dtb DTB file for SPEAR-MX8 with DP display and Cortex-M4 on SP8CustomBoard for kernel >= 5.10.72 (Yocto Hardknott)
imx8qm-var-spear-sp8customboard-hdmi-m4.dtb DTB file for SPEAR-MX8 with HDMI display and Cortex-M4 on SP8CustomBoard for kernel >= 5.10.72 (Yocto Hardknott)
imx8qm-var-spear-sp8customboard-lvds.m4.dtb DTB file for SPEAR-MX8 with LVDS display and Cortex-M4 on SP8CustomBoard for kernel >= 5.10.72 (Yocto Hardknott)
imx8qm-var-som-dp-m4.dtb DTB file for VAR-SOM-MX8 with DP display and Cortex-M4 on Symphony Board for kernel = 5.4.142 (Yocto Dunfell)
imx8qm-var-som-hdmi-m4.dtb DTB file for VAR-SOM-MX8 with HDMI display and Cortex-M4 on Symphony Board for kernel = 5.4.142 (Yocto Dunfell)
imx8qm-var-som-lvds-m4.dtb DTB file for VAR-SOM-MX8 with LVDS display and Cortex-M4 on Symphony Board for kernel = 5.4.142 (Yocto Dunfell)
imx8qm-var-spear-dp-m4.dtb DTB file for SPEAR-MX8 with DP display and Cortex-M4 on SP8CustomBoard for kernel = 5.4.142 (Yocto Dunfell)
imx8qm-var-spear-hdmi-m4.dtb DTB file for SPEAR-MX8 with HDMI display and Cortex-M4 on SP8CustomBoard for kernel = 5.4.142 (Yocto Dunfell)
imx8qm-var-spear-lvds-m4.dtb DTB file for SPEAR-MX8 with LVDS display and Cortex-M4 on SP8CustomBoard for kernel = 5.4.142 (Yocto Dunfell)


Default M4 pins

Default M4 pins used by the demos are:

Function SoC balls VAR-SOM-MX8 pins Symphony pins SPEAR-MX8 pins SP8CustomBoard pins Notes
M40_UART0 RX / TX AM44 / AU51 N/A N/A J3.32 / J3.38 J40 SP8CustomBoard requires SW8 ON, SW9 OFF
DMA_UART2 RX / TX BE35 / BE37 J1.175 / J1.124 J18.5 / J18.3 J1.80 / J1.82 J26.19 /J26.17
DMA_UART4 RX / TX AR47 / AU53 J1.115 / J1.171 J18.9 / J18.7 J3.34 / J3.29 J20.2 / J20.4 SPEAR-MX8 demos do not refer it
FLEXCAN0 RX/TX C5 / H6 J1.46 / J1.44 J16.18 / J16.20 J4.79 / J4.80 J26.1 / J26.3
M41_I2C0 SCL/SDA AR45 / AU49 N/A N/A J1.9 / J3.36 J20.18 / J20.20
DMA_I2C0 SCL/SDA BN9 / BN7 J1.174 / J1.176 J16.10 / J16.12 J2.88 / J1.90 J26.2 / J26.4
DMA_SPI0 CS0 / SCK / SDI / SDO BC1 / BB4 / BA5 / AY6 J1.79 / J1.75 / J1.77 / J1.70 J17.10 / J17.6 / J17.8 / J17.4 J2.78 / j2.74 / J2.72 / J2.76 J20.7 / J20.1 / J20.5 / J20.3
ADC_IN6 AL9 J1.39 J16.4 J4.62 J29.16 VAR-SOM-MX8 requires enabling a buffer (refer to the datasheet)
M40_TPM0 0 / 1 AR47 / AU53 J1.115 / J1.171 J18.9 / J18.7 J3.34 / J3.29 J20.2 / J20.4 pins are share with with DMA_UART4
GPIO3_IO06 BA3 J1.40 J17.2 J2.80 J20.9

Available Demos

  • cmsis_driver_examples/lpi2c/int_b2b_transfer/master
  • cmsis_driver_examples/lpi2c/int_b2b_transfer/slave
  • cmsis_driver_examples/lpi2c/edma_b2b_transfer/master
  • cmsis_driver_examples/lpi2c/edma_b2b_transfer/slave
  • cmsis_driver_examples/lpuart/edma_transfer
  • cmsis_driver_examples/lpuart/interrupt_transfer
  • cmsis_driver_examples/lpspi/edma_b2b_transfer/master
  • cmsis_driver_examples/lpspi/edma_b2b_transfer/slave
  • cmsis_driver_examples/lpspi/int_b2b_transfer/master
  • cmsis_driver_examples/lpspi/int_b2b_transfer/slave
  • demo_apps/hello_world
  • driver_examples/canfd/loopback_transfer
  • driver_examples/canfd/loopback
  • driver_examples/canfd/interrupt_transfer
  • driver_examples/edma/scatter_gather
  • driver_examples/edma/memory_to_memory
  • driver_examples/flexcan/loopback_edma_transfer
  • driver_examples/flexcan/loopback_transfer
  • driver_examples/flexcan/loopback
  • driver_examples/flexcan/interrupt_transfer
  • driver_examples/intmux
  • driver_examples/lpadc/interrupt
  • driver_examples/lpadc/polling
  • driver_examples/lpi2c/edma_b2b_transfer/slave
  • driver_examples/lpi2c/edma_b2b_transfer/master
  • driver_examples/lpi2c/interrupt_b2b_transfer/slave
  • driver_examples/lpi2c/interrupt_b2b_transfer/master
  • driver_examples/lpi2c/polling_b2b_transfer/slave
  • driver_examples/lpi2c/polling_b2b_transfer/master
  • driver_examples/lpi2c/read_accel_value_transfer
  • driver_examples/lpspi/edma_b2b_transfer/master
  • driver_examples/lpspi/edma_b2b_transfer/slave
  • driver_examples/lpspi/interrupt_b2b/master
  • driver_examples/lpspi/interrupt_b2b/slave
  • driver_examples/lpspi/interrupt_b2b_transfer/master
  • driver_examples/lpspi/interrupt_b2b_transfer/slave
  • driver_examples/lpspi/polling_b2b_transfer/master
  • driver_examples/lpspi/polling_b2b_transfer/slave
  • driver_examples/lpspi/polling_b2b_transfer/master
  • driver_examples/lpspi/polling_b2b_transfer/slave
  • driver_examples/lpit
  • driver_examples/lpuart/edma_transfer
  • driver_examples/lpuart/interrupt_rb_transfer
  • driver_examples/lpuart/polling
  • driver_examples/lpuart/interrupt_transfer
  • driver_examples/lpuart/interrupt
  • driver_examples/gpio/led_output
  • driver_examples/rgpio/led_output
  • driver_examples/sema42/uboot
  • driver_examples/sema42/dual_core
  • driver_examples/tpm/timer
  • driver_examples/tpm/simple_pwm
  • driver_examples/tpm/pwm_twochannel
  • driver_examples/tpm/output_compare
  • driver_examples/tpm/input_capture
  • driver_examples/tpm/dual_edge_capture
  • driver_examples/tpm/combine_pwm
  • driver_examples/tstmr
  • driver_examples/wdog32
  • mmcau_examples/mmcau_api
  • multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote
  • multicore_examples/rpmsg_lite_str_echo_rtos
  • multicore_examples/rpmsg_lite_pingpong_rtos/sdk_remote
  • multicore_examples/rpmsg_lite_pingpong_rtos/sdk_master
  • rtos_examples/freertos_hello
  • rtos_examples/freertos_queue
  • rtos_examples/freertos_sem
  • rtos_examples/freertos_generic
  • rtos_examples/freertos_tickless
  • rtos_examples/freertos_mutex
  • rtos_examples/freertos_lpuart
  • rtos_examples/freertos_event
  • rtos_examples/freertos_swtimer
  • rtos_examples/freertos_lpi2c
  • rtos_examples/freertos_lpspi_b2b/master
  • rtos_examples/freertos_lpspi_b2b/slave
  • rtos_examples/freertos_lpspi

Additional demos are available as reference code, but require HW/SW customization.


NXP Memory types

The SDK allow linking using 2 different memory types: DDR, TCM.

Here is available a short summary of memory areas used by Cortex-M4 as described in related linker file.

memory type M4 if M4 memory area memory lentgh linker file
DDR 0 0x88000000-0x881FFFFF (code)
0x88200000-0x883FFFFF (data)
0x88400000-0x887FFFFF (data2)
8MB (DDR) MIMX8QM6xxxFF_cm4_core0_ddr_ram.ld
DDR 1 0x88800000-0x88BFFFFF (code)
0x88C00000-0x88FFFFFF (data)
0x89000000-0x8FFFFFFF (data2)
120MB (DDR) MIMX8QM6xxxFF_cm4_core1_ddr_ram.ld
TCM 0 0x1FFE0000-0x1FFFFFFF (code)
0x20000000-0x2001FFFF (data)
0x88000000-0x887FFFFF (data2)
256kB (TCM) + 8MB (DDR) MIMX8QM6xxxFF_cm4_core0_ram.ld
TCM 1 0x1FFE0000-0x1FFFFFFF (code)
0x20000000-0x2001FFFF (data)
0x88800000-0x8FFFFFFF (data2)
256kB (TCM) + 120MB (DDR) MIMX8QM6xxxFF_cm4_core1_ram.ld

All linker files are locate in the armgcc folder of each demo.

After launching the build_all.sh command the following folder will be created in the armgcc folder

  • ddr_debug: containing DDR binaries compiled in debug mode (not stripped: symbols available)
  • ddr_release: containing DDR binaries compiled in release mode (stripped: no symbols available)
  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)


JTAG

The VAR-SOM-MX8 and SPEAR-MX8 exposes JTAG interface via an optional 10-pin header

Here is the pinout:

pin signal description pin signal (ball) description
1 JTAG_VREF JTAG reference voltage (3.3V) 2 JTAG_TMS (AG35) JTAG Mode Select
3 GND Digital Ground 4 JTAG_TCK (AE31) JTAG Clock
5 GND Digital Ground 6 JTAG_TDO (AF32) JTAG Data Out
7 RTCK JTAG Return clock 8 JTAG_TDI (AH34) JTAG Data In
9 JTAG_TRST_B_CONN JTAG TAP reset 10 JTAG_SRST_B JTAG System reset

Please refer to SOM datasheet for further details.

Releases

mcuxpresso-2.5.2-mx8qm-v1.0

      *HARDWARE_NAME = VAR-SOM-MX8

mcuxpresso-2.8.0-mx8qm-v1.0

    *HARDWARE_NAME = VAR-SOM-MX8

mcuxpresso-2.9.0-mx8qm-v1.0

    *HARDWARE_NAME = VAR-SOM-MX8


~/var-mcuxpresso/freertos-variscite/devices/MIMX8QM6


VAR-SOM-MX93

Sections

Available dtbs

To allow the Cortex-M33 to access shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded, by selecting the right version with the symbolic link in the /boot folder of the booting media.
These device trees contain m33 label in their name.


The below table lists an example dtb blob file name for VAR-SOM-MX93 (on the Symphony Board) with support for the M33 for each kernel version / Yocto release:

File Name
Description
imx93-var-som-symphony-m33.dtb VAR-SOM-MX93 (Rev 2.x+) device tree blob for kernel = 6.1.1 (Yocto Langdale) on Symphony-Board 1.4a and above.
imx93-var-som-1.x-symphony-m33.dtb VAR-SOM-MX93 (Rev 1.x) device tree blob for kernel = 6.1.1 (Yocto Langdale) on Symphony-Board 1.4a and above.

This device tree disables some of the base device tree nodes in order to avoid conflicts between the Cortex-A55 processors and Cortex-M33.

For the full list of device tree blob files, refer to the "Build Results" section in the appropriate wiki page for the specific Yocto/Debian release you are using.

Default M33 pins

Default M33 pins used by the demos are:

Function SoC balls VAR-SOM-MX8 Pins Symphony Pins Notes
UART7 RX/TX M21 / M20 J1.175 / J1.124 J18.5 / J18.3
TPM6-CH3 - PWM Output or Input Capture W21 J1.69 J18.2
CAN1 RX/TX J17 / G17 J1.46 / J1.44 J16.18 / J16.20, CANL / CANH levels (CAN transceiver mounted!) If enabled, CAN devices will no longer visible from Linux
LPSPI6 CS0/SCK/SDI/SDO J21 / K21 / J20 / K20 J1.39 / J1.43 / J1.41 / J1.45 J16.4 / J16.2 / J16.6 / J16.8 If enabled, SPI6 devices will no longer be visible from Linux
LPI2C7 SCL/SDA L21 / L20 J1.174 / J1.176 J16.10 / J16.12 If enabled, I2C7 devices will no longer be visible from Linux
GPIO GPIO4.28 U4 J1.75 J17.6 GPIO pin is 1.8V IO level!

Available Demos

  • demo_apps/ethosu_apps_rpmsg/ethosu_apps_rpmsg
  • demo_apps/hello_world/hello_world
  • driver_examples/canfd/efifo_interrupt_transfer/canfd_efifo_interrupt_transfer
  • driver_examples/canfd/interrupt_transfer/canfd_interrupt_transfer
  • driver_examples/canfd/loopback_transfer/canfd_loopback_transfer
  • driver_examples/canfd/loopback/canfd_loopback
  • driver_examples/canfd/ping_pong_buffer_transfer/canfd_ping_pong_buffer_transfer
  • driver_examples/edma4/channel_link/edma4_channel_link
  • driver_examples/edma4/interleave_transfer/edma4_interleave_transfer
  • driver_examples/edma4/memory_to_memory/edma4_memory_to_memory
  • driver_examples/edma4/memory_to_memory_transfer/edma4_memory_to_memory_transfer
  • driver_examples/edma4/memset/edma4_memset
  • driver_examples/edma4/ping_pong_transfer/edma4_ping_pong_transfer
  • driver_examples/edma4/scatter_gather/edma4_scatter_gather
  • driver_examples/edma4/wrap_transfer/edma4_wrap_transfer
  • driver_examples/flexcan/efifo_interrupt_transfer/flexcan_efifo_interrupt_transfer
  • driver_examples/flexcan/interrupt_transfer/flexcan_interrupt_transfer
  • driver_examples/flexcan/loopback_edma_transfer/flexcan_loopback_edma_transfer
  • driver_examples/flexcan/loopback_transfer/flexcan_loopback_transfer
  • driver_examples/flexcan/loopback/flexcan_loopback
  • driver_examples/flexcan/ping_pong_buffer_transfer/flexcan_ping_pong_buffer_transfer
  • driver_examples/lpi2c/interrupt_b2b_transfer/master/lpi2c_interrupt_b2b_transfer_master
  • driver_examples/lpi2c/interrupt_b2b_transfer/slave/lpi2c_interrupt_b2b_transfer_slave
  • driver_examples/lpi2c/polling_b2b/master/lpi2c_polling_b2b_master
  • driver_examples/lpi2c/polling_b2b/slave/lpi2c_polling_b2b_slave
  • driver_examples/lpit/chained_channel/lpit_chained_channel
  • driver_examples/lpit/single_channel/lpit_single_channel
  • driver_examples/lpspi/interrupt_b2b/master/lpspi_interrupt_b2b_master
  • driver_examples/lpspi/interrupt_b2b/slave/lpspi_interrupt_b2b_slave
  • driver_examples/lpspi/interrupt_b2b_transfer/master/lpspi_interrupt_b2b_transfer_master
  • driver_examples/lpspi/interrupt_b2b_transfer/slave/lpspi_interrupt_b2b_transfer_slave
  • driver_examples/lpspi/polling_b2b/master/lpspi_polling_b2b_master
  • driver_examples/lpspi/polling_b2b_transfer/slave/lpspi_polling_b2b_transfer_slave
  • driver_examples/edma/memory_to_memory/dma3_memory_to_memory
  • driver_examples/edma/scatter_gather/dma3_scatter_gather
  • driver_examples/flexcan/loopback_transfer/flexcan_loopback_transfer
  • driver_examples/flexcan/loopback/flexcan_loopback
  • driver_examples/flexcan/ping_pong_buffer_transfer/flexcan_ping_pong_buffer_transfer
  • driver_examples/flexcan/efifo_interrupt_transfer/flexcan_efifo_interrupt_transfer
  • driver_examples/flexcan/interrupt_transfer/flexcan_interrupt_transfer
  • driver_examples/rgpio/led_output/rgpio_led_output
  • driver_examples/lpi2c/polling_b2b/master/lpi2c_polling_b2b_master
  • driver_examples/lpi2c/polling_b2b/slave/lpi2c_polling_b2b_slave
  • driver_examples/lptmr/lptmr
  • driver_examples/lpuart/interrupt_rb_transfer/lpuart_interrupt_rb_transfer
  • driver_examples/lpuart/interrupt_transfer/lpuart_interrupt_transfer
  • driver_examples/lpuart/interrupt/lpuart_interrupt
  • driver_examples/lpuart/polling/lpuart_polling
  • driver_examples/tstmr/tstmr
  • multicore_examples/rpmsg_lite_pingpong_rtos/linux_remote/rpmsg_lite_pingpong_rtos_linux_remote
  • multicore_examples/rpmsg_lite_str_echo_rtos/rpmsg_lite_str_echo_rtos_imxcm33
  • rtos_examples/freertos_event/freertos_event
  • rtos_examples/freertos_generic/freertos_generic
  • rtos_examples/freertos_hello/freertos_hello
  • rtos_examples/freertos_lpi2c_b2b/master/freertos_lpi2c_b2b_master
  • rtos_examples/freertos_lpi2c_b2b/slave/freertos_lpi2c_b2b_slave
  • rtos_examples/freertos_lpspi_b2b/master/freertos_lpspi_b2b_master
  • rtos_examples/freertos_lpspi_b2b/slave/freertos_lpspi_b2b_slave
  • rtos_examples/freertos_mutex/freertos_mutex
  • rtos_examples/freertos_queue/freertos_queue
  • rtos_examples/freertos_sem/freertos_sem
  • rtos_examples/freertos_swtimer/freertos_swtimer


Additional demos may be provided on this platform in a future release.

The Wi-Fi/Bluetooth module interfaces have been disabled in the M33 device tree to not conflict with certain demos, however, if the module is present on your SoM, you should also disable the Wi-Fi service from running in Linux via "systemctl disable variscite-wifi"


Building Using Yocto

In Yocto Dunfell and newer, Variscite provides a Yocto recipe for building and installing firmware into the Yocto image. Note, the examples below apply to the original release of this recipe in Dunfell and thus some of the syntax (such as the overrides) may need to be updated for newer versions.

https://github.com/varigit/meta-variscite-fslc/tree/dunfell/recipes-bsp/freertos-variscite

This recipe installs the following firmware files: |- | /boot/cm_<demo name>.bin.debug || TCM || U-Boot |- | /lib/firmware/cm_<demo name>.elf.debug || TCM || Linux Remoteproc Framework

If you have modified freertos-variscite in your own Git repository and kept the same directory structure, you can easily build your custom firmware by creating a bbappend file:

$ mkdir -p <your-layer>/recipes-bsp/freertos-variscite
$ nano <your-layer>/recipes-bsp/freertos-variscite/freertos-variscite_2.13.x.bbappend

Append SRC_URI and SRCREV to use your freertos-variscite Git repository

SRC_URI_remove = "git://github.com/varigit/freertos-variscite.git;protocol=git;branch=${MCUXPRESSO_BRANCH};"
SRC_URI_append = " <your Git repository>"
SRCREV = "<your Git commit id>"

Append CM_DEMOS to build your firmware. For example, to build rtos_examples/freertos_hello:

CM_DEMOS_append = "rtos_examples/freertos_hello"

Rebuild fsl-image-gui:

$ bitbake -c cleansstate freertos-variscite && bitbake fsl-image-gui

The firmware binary files should now be installed to /boot/ and elf files to /lib/firmware/


Running a demo

Running a demo from U-Boot

To assist in loading M33 firmware from U-Boot prior to Linux boot, Variscite has created a dedicated set of U-Boot environment commands.


To allow Cortex-M accessing shared resources without experiencing Linux kernel conflicts, a dedicated device tree must be loaded.

To enable Cortex-M U-Boot auto-loading:

=> setenv use_m33 yes; saveenv

To disable Cortex-M U-Boot auto-loading:

=> setenv use_m33 no; saveenv

Note that the Cortex A55s and M33 have a different memory addressing "view" that is documented in the reference manual. Additionally, the bootaux command for the M33 uses secure aliases from the M33's point of view. Thus, two variables must be set properly in order to set the loading address (defaults used in the example below):

=> setenv m33_addr 0x201E0000
=> setenv m33_addr_auxview 0x1FFE0000
=> saveenv

To set the name of the Cortex-M binary

=> setenv m33_bin cm_hello_world.bin; saveenv


The .bin file is expected to exist in the directory /boot of the booting media.


After enabling as above, the U-Boot boot command will handle loading the Cortex-M firmware when the system begins the boot process. For testing, it is possible to invoke the Cortex-M33 boot process manually:

=> run loadm33bin && run runm33bin

After booting in Linux, the M33 will be listed as in the "attached" state by remoteproc:

# cat /sys/class/remoteproc/remoteproc0/state 
attached


Additional details and step by step procedure to run each of the demos is available online or in the following document:

~/var-mcuxpresso/freertos-variscite/docs/Getting Started with MCUXpresso SDK for MEK-MIMX8QM.pdf


This process can be simplified using /etc/remoteproc/variscite-rproc-u-boot in Linux
Please refer to the Yocto Scripts section below for more information

Running a demo from Linux

The Linux remoteproc framework can be used to load the Cortex-M33 firmware from Linux userspace.


The U-Boot M33 auto-loading must not be currently enabled in order to allow for remoteproc control and loading of the M33.

Increase kernel loglevel while debugging:

# sysctl kernel.printk=7;

If the state is 'running', stop the Cortex-M33

# echo stop > /sys/class/remoteproc/remoteproc0/state

Load new firmware

# echo cm_hello_world.elf > /sys/class/remoteproc/remoteproc0/firmware
The .elf file is expected to exist in the /lib/firmware directory

Run the new firmware

# echo start > /sys/class/remoteproc/remoteproc0/state


This process can be simplified using /etc/remoteproc/variscite-rproc-linux in Linux
Please refer to the Yocto Scripts section below for more information


By default, Linux disables unused clocks. Certain M33 examples may use peripherals which are not enabled in Linux. Depending on the clock source, Linux may disable the clock by default, resulting in the example/peripheral not functioning. Therefore, when running M33 examples, it is recommended to override this. The easiest way to achieve this is to append the bootarg "clk_ignore_unused."

Running a Demo using Yocto Scripts

In Yocto, Variscite provides scripts to simplify loading firmware via U-Boot or Linux:

Script Description
/etc/remoteproc/variscite-rproc-u-boot Configure U-Boot to load firmware on boot
/etc/remoteproc/variscite-rproc-linux Load and run firmware using Linux remoteproc framework

Examples

variscite-rproc-u-boot example on imx93-var-som:

root@imx93-var-som:~# /etc/remoteproc/variscite-rproc-u-boot -f /boot/cm_hello_world.bin.release 
Configuring for TCM memory
+ fw_setenv m33_addr 0x201E0000
Cannot read environment, using default
+ fw_setenv fdt_file imx93-var-som-symphony-m33.dtb
+ fw_setenv use_m33 yes
+ fw_setenv m33_bin cm_hello_world.bin.release
+ fw_setenv kernelargs ' clk_ignore_unused'
+ fw_setenv m33_addr_auxview 0x1FFE0000

Finished: Please reboot, the m33 firmware will run during U-Boot

variscite-rproc-linux example on imx93-var-som:

root@imx93-var-som:~# /etc/remoteproc/variscite-rproc-linux -f /lib/firmware/cm_hello_world.elf.release
Cortex-M: Loading cm_hello_world.elf.release
Cortex-M: Starting
[  974.434796] remoteproc remoteproc0: powering up imx-rproc
[  974.442420] remoteproc remoteproc0: Booting fw image cm_hello_world.elf.release, size 99776
[  974.451172] remoteproc remoteproc0: header-less resource table


NXP Memory types

The SDK currently allows linking only out of TCM.

Below is a short summary of memory areas used by Cortex-M33 as described in related linker file:

Memory Type M33 Memory Area A55 Memory Area Memory Length Linker File
TCM 0x0FFE0000 - 0x0FFFFFFF (code)
0x20000000 – 0x2001FFFF (data)
0x201E0000 – 0x201FFFFF (code)
0x20200000 – 0x2021FFFF (data)
128kB (Code TCM) + 128kB (System TCM) MIMX9352_cm33_ram.ld

All linker files are located in the armgcc folder of each demo. Please consult the linker file for the actual memory used by each demo.

After launching the build_all.sh command the following folder will be created in the armgcc folder

  • debug: containing TCM binaries compiled in debug mode (not stripped: symbols available)
  • release: containing TCM binaries compiled in release mode (stripped: no symbols available)


JTAG

The JTAG interface is not exposed directly on the VAR-SOM-MX93 but the associated signals are exposed via the J1 SOM connector.


Note: These signals are shared with the Wi-Fi module if present, so usage will require disabling this interface and making any appropriate pin muxing adjustments.

Please refer to SoM datasheet for further details.


Releases

mcuxpresso-2.13.1-mx93-v1.0


mcuxpresso-2.13.1-mx93-v1.1


mcuxpresso-2.15.0-mx93-v1.0


mcuxpresso-2.15.0-mx93-v1.1


Release Notes

RN_MCUXPRESSO_2.13.1_V1.0_VAR-SOM-MX93

|- | Release 1.0 || |- | Initial release || MCUXPRESSO 2.13.1 release for the Cortex-M33 core on the VAR-SOM-MX93 |- | Examples provided and tested on many peripherals: || - CAN
- EDMA
- LPUART
- TPM/PWM
- TSTMR

See developers guide for a full list of available demos. |-


RN_MCUXPRESSO_2.13.1_V1.1_VAR-SOM-MX93

|- | Release 1.1 || |- | Several additional examples provided for many peripherals: || - CAN (board to board examples)
- LPSPI
- LPI2C
- GPIO

See developers guide for a full list of available demos. |-


RN_MCUXPRESSO_2.15.0_V1.0_VAR-SOM-MX93

|- | Release 1.0 || |- | Initial release || MCUXPRESSO 2.15.0 release for the Cortex-M33 core on the VAR-SOM-MX93 |- style="vertical-align:top;" | Examples provided and tested on many peripherals: || - CAN (board to board examples)
- LPSPI
- EDMA
- LPI2C
- LPUART
- GPIO
- TPM/PWM
- TSTMR

See developers guide for a full list of available demos.
Click here for a full detailed change list. |-


RN_MCUXPRESSO_2.15.0_V1.1_VAR-SOM-MX93

|- | Release 1.1 || |- style="vertical-align:top;" | Add initial support for DART-MX93 || MCUXPRESSO 2.15.0 release for the Cortex-M33 core on the DART-MX93 - CAN (board to board examples)
- LPSPI
- EDMA
- LPI2C
- LPUART
- GPIO
- TPM/PWM
- TSTMR

See developers guide for a full list of available demos.
Click here for a full detailed change list. |- | Update macros and readme files for the VAR-SOM-MX93 release || See 8deddc3fc...78afa00fe |- | Known Issues || |- | driver_examples/rgpio/led_output demo does not work properly on U-boot on the DART-MX93 || When running on U-boot, it stops working right after Linux finishes booting |-