NXP MIMXRT1060-EVK

Overview

This is a set of Bridle’s extension to the original Zephyr upstream board MIMXRT1060-EVK with some adaptions and improvement on Kconfig and Devicetree level.

List of extensions

Kconfig

  • activate self powered USB explicitly and set the maximum of electrical current consumption to 0㎃:

    NXP MIMXRT1060-EVK, MIMXRT1060-EVKB and MIMXRT1060-EVKC

    Kconfig.defconfig
    config CDC_ACM_SERIAL_SELF_POWERED
    	default y
    	depends on USB_DEVICE_STACK_NEXT && USBD_CDC_ACM_CLASS
    
    config CDC_ACM_SERIAL_MAX_POWER
    	default 0 if BOARD_MIMXRT1060_EVK	# 0mA (self powered)
    	depends on USB_DEVICE_STACK_NEXT && USBD_CDC_ACM_CLASS
    
  • change log level only in case of use the native USB device port nxp,ehci with CDC-ACM UART zephyr,cdc-acm-uart as Zephyr console:

    NXP MIMXRT1060-EVK, MIMXRT1060-EVKB and MIMXRT1060-EVKC

    Kconfig.defconfig
    # Workaround for not being able to have commas in macro arguments
    DT_CHOSEN_Z_CONSOLE := zephyr,console
    DT_COMPAT_Z_CDC_ACM_UART := zephyr,cdc-acm-uart
    DT_COMPAT_NXP_USB := nxp,ehci
    
    # Macros to shorten Kconfig expressions
    DT_CHOSEN_CONSOLE_NODE := $(dt_chosen_path,$(DT_CHOSEN_Z_CONSOLE))
    DT_CHOSEN_CONSOLE_PARENT := $(dt_node_parent,$(DT_CHOSEN_CONSOLE_NODE))
    
    if BOARD_MIMXRT1060_EVK && \
    	$(dt_chosen_enabled,$(DT_CHOSEN_Z_CONSOLE)) && \
    	$(dt_compat_on_bus,$(DT_COMPAT_Z_CDC_ACM_UART),usb) && \
    	$(dt_node_has_compat,$(DT_CHOSEN_CONSOLE_PARENT),$(DT_COMPAT_NXP_USB))
    
    # Logger cannot use itself to log
    choice USBD_CDC_ACM_LOG_LEVEL_CHOICE
    	default USBD_CDC_ACM_LOG_LEVEL_OFF
    	depends on LOG && USB_DEVICE_STACK_NEXT && USBD_CDC_ACM_CLASS
    endchoice
    
    # Set USB log level to error only
    choice USBD_LOG_LEVEL_CHOICE
    	default USBD_LOG_LEVEL_ERR
    	depends on LOG && USB_DEVICE_STACK_NEXT && USBD_CDC_ACM_CLASS
    endchoice
    
    # Set UDC driver log level to error only
    choice UDC_DRIVER_LOG_LEVEL_CHOICE
    	default UDC_DRIVER_LOG_LEVEL_ERR
    	depends on LOG && USB_DEVICE_STACK_NEXT && USBD_CDC_ACM_CLASS
    endchoice
    
    endif # zephyr,cdc-acm-uart
    

Devicetree

  • set default entries for model and compatible of the boards:

    NXP MIMXRT1060-EVK, MIMXRT1060-EVKB and MIMXRT1060-EVKC

    mimxrt1060_evk.dtsi
    / {
    	model = "NXP MIMXRT1060-EVK board @ UART Concole";
    	compatible = "nxp,mimxrt1062", "nxp,mimxrt1062-uartcons";
    };
    
  • FlexPWM not routed to the green user LED LED1 on the EVK B and C revision, thus why board DTS disables &flexpwm2_pwm3 but neither related &pwmleds node nor alias:

    NXP MIMXRT1060-EVKB and MIMXRT1060-EVKC

    mimxrt1060_evk_mimxrt1062_qspi_B.overlay
    / {
    	aliases {
    		/delete-property/ pwm-led0;
    	};
    
    	/delete-node/ pwmleds;
    };
    
    mimxrt1060_evk_mimxrt1062_qspi_C.overlay
    / {
    	aliases {
    		/delete-property/ pwm-led0;
    	};
    
    	/delete-node/ pwmleds;
    };
    
  • add a zephyr,flash-disk node linked to the partition = <&storage_partition>; with the hard defined mass storage disk name disk-name = "NAND";:

    NXP MIMXRT1060-EVK, MIMXRT1060-EVKB and MIMXRT1060-EVKC

    mimxrt1060_evk.dtsi
    / {
    	msc_disk0 {
    		compatible = "zephyr,flash-disk";
    		partition = <&storage_partition>;
    		disk-name = "NAND";
    		cache-size = <4096>;
    	};
    };