Entry Page

Hardware

The TQMa8MxML debug UART is connected via a Silicon Labs USB-to-Serial converter to X16 (micro-USB) on the MBa8Mx. A micro-USB/USB-A cable is part of the STKa8MxML accessory set. Depending on the host operating system, driver may need to be installed.

TQMa8MxML Rev.01xx / MBa8Mx Rev.03xx

I2C bus TQMa8MxML
I2C1 0x1B
Temp Sensor
0x25
PMIC
0x33
Temp Sensor
EEPROM
Protection Command
0x48
Plug & Trust Secure element
(optional)
0x51
RTC
(optional)
0x53
Temp Sensor EEPROM
0x57
EEPROM
I2C bus MBa8Mx
I2C1 0x11
System Controller
0x24
Port Expander
0x27
Port Expander
I2C2 0x18
Audio Codec
0x37
Temp Sensor
EEPROM
Protection Command
0x44
USB Hub
0x57
Temp Sensor
EEPROM
0x68
PCIe Clock Generator
0x1F
Temp Sensor
I2C3 0x5A
MIPI-DSI / LVDS Bridge
also available at
Mini PCIe (X28), Mikro Bus (X20 / X21), PCIe (X36), MIPI-CSI (31)

Hardware Issues

Linux BSP

U-Boot

Feature TQMa8.BSP Revision Remarks
TQ Product Chip Interface Function 0081 - 0091
TQMa8MxML i.MX8M Mini ENET0 GbE
i.MX8M Mini Fuse OTP
i.MX8M Mini GPIO
i.MX8M Mini I²C1 Bus Access
i.MX8M Mini I²C2 Bus Access
i.MX8M Mini I²C3 Bus Access
i.MX8M Mini UART Debug console Default console
i.MX8M Mini USB Host
i.MX8M Mini uSDHC eMMC / SD-Card SD card / eMMC

U-Boot - Old Revisions

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0026 0027 0030 0034 0035 0052 0054 0056 0057 0080
TQMa8MxML i.MX8M Mini ENET0 GbE
i.MX8M Mini Fuse OTP
i.MX8M Mini GPIO
i.MX8M Mini I²C1 Bus Access
i.MX8M Mini I²C2 Bus Access
i.MX8M Mini I²C3 Bus Access
i.MX8M Mini UART Debug console Default console
i.MX8M Mini USB Host
i.MX8M Mini uSDHC eMMC / SD-Card SD card / eMMC

Supported boot devices

Boot device supported
eMMC
SD Card

Linux

Feature TQMa8.BSP Revision Remarks
TQ Product Chip Interface Function 0081 - 0091
TQMa8MxML i.MX8M Mini ENET0 GbE
i.MX8M Mini FlexSPI QSPI
i.MX8M Mini GPIO
i.MX8M Mini GPU Hardware Accelaration
i.MX8M Mini I²C1 Bus Access See onboard I2C devices
i.MX8M Mini I²C2 Bus Access See onboard I2C devices
i.MX8M Mini I²C3 Bus Access See onboard I2C devices
i.MX8M Mini LPUART1 Debug Console
i.MX8M Mini MIPI DSI SN65DSI84 DSI-to-LVDS Bridge
i.MX8M Mini PCIe PCIe Gen2
i.MX8M Mini PWM
i.MX8M Mini SAI3 TLV320AIC3204
(Audio Codec)
i.MX8M Mini USB1 TUSB8041I
(USB Hub)
i.MX8M Mini USB2 Host
i.MX8M Mini OTG
MBa8Mx TLV320AIC3204 Audio Codec Headphone Out / Line Out
Line In
Microphone In
TUSB8041I USB1 Host 1
TUSB8041I USB2 Host 2
TUSB8041I USB3 Host 3
TUSB8041I USB4 Host 4
SN65DSI84 DSI-to_LVDS Bridge LVDS

Linux - Old Revisions

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0026 0027 0030 0034 0035 0052 0056 0057 0080
TQMa8MxML i.MX8M Mini ENET0 GbE
i.MX8M Mini FlexSPI QSPI
i.MX8M Mini GPIO
i.MX8M Mini GPU Hardware Accelaration
i.MX8M Mini I²C1 Bus Access See onboard I2C devices
i.MX8M Mini I²C2 Bus Access See onboard I2C devices
i.MX8M Mini I²C3 Bus Access See onboard I2C devices
i.MX8M Mini LPUART1 Debug Console
i.MX8M Mini MIPI DSI SN65DSI84 DSI-to-LVDS Bridge
i.MX8M Mini PCIe PCIe Gen2
i.MX8M Mini PWM
i.MX8M Mini SAI3 TLV320AIC3204
(Audio Codec)
i.MX8M Mini USB1 TUSB8041I
(USB Hub)
i.MX8M Mini USB2 Host
i.MX8M Mini OTG
MBa8Mx TLV320AIC3204 Audio Codec Headphone Out / Line Out
Line In
Microphone In
TUSB8041I USB1 Host 1
TUSB8041I USB2 Host 2
TUSB8041I USB3 Host 3
TUSB8041I USB4 Host 4
SN65DSI84 DSI-to_LVDS Bridge LVDS

BSP Version Matrix - Old Revisions

BSP Revision ci-meta-tq release Yocto Project / Poky Release Target machine1) U-Boot Linux Kernel
0080 hardknott 3.3.3 - Hardknott tqma8mxml-1gb-mba8mx
tqma8mxml-2gb-mba8mx
v2020.04_imx_5.4.47_2.2.0 fslc-5.10-2.1.x-imx
0057 zeus-tqma8 3.0.3 - Zeus tqma8mxml-1gb-mba8mx
tqma8mxml-2gb-mba8mx
v2020.04_imx_5.4.47_2.2.0 rel_imx_5.4.70_2.3.0
0056 zeus-tqma8 3.0.3 - Zeus tqma8mxml-2gb-mba8mx v2020.04_imx_5.4.47_2.2.0 rel_imx_5.4.70_2.3.0
0052 zeus-tqma8 3.0.3 - Zeus tqma8mxml-2gb-mba8mx v2020.04_imx_5.4.47_2.2.0 rel_imx_5.4.70_2.3.0
0035 zeus-tqma8 3.0.3 - Zeus tqma8mxml-2gb-mba8mx v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0
0034 zeus-tqma8 3.0.3 - Zeus tqma8mxml-2gb-mba8mx v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0
0030 zeus-tqma8 3.0.3 - Zeus tqma8mxml-1gb-mba8mx v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0
0027 zeus-tqma8 3.0.3 - Zeus tqma8mxml-1gb-mba8mx v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0
0026 zeus-tqma8 3.0.3 - Zeus tqma8mxml-512m-mba8mx v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0

Yocto Target Machines

TQMa8.BSP Revision Target machine
≥0057 tqma8mxml-1gb-mba8mx
tqma8mxml-2gb-mba8mx
≥0034 tqma8mxml-2gb-mba8mx
≥0027 tqma8mxml-1gb-mba8mx
0026 tqma8mxml-512m-mba8mx


BSP Version History

Rev.0087

BSP

  • Update to Yocto Kirkstone

U-Boot

  • Backport MMU table fixxes from upstream
  • Backport U-Boot relocation and RAM size fixes from upstream

Linux

  • Linux 5.15 support based on linux-fslc 5.15 + imx

Rev.0080

BSP

  • Rework systemd-machine-units bbappend (add simplification from branch zeus-tqma8, adapt to newer systemd version with CAN FD support)
  • Update sub modules to support hardknott
  • Port TQMa8 boards from branch zeus-tqma8 (equal to release zeus.TQMa8.BSP.SW.0056 of mentioned branch)
  • Weak assignments in machine files wherever possible to allow overwriting for custom mainboards or project specific tailoring

U-Boot

Linux

  • Linux 5.10 support based on linux-fslc 5.10 + imx
    • experimental usb support for ath10k
    • adjusted kernel config settings

Rev.0057

BSP

  • Add machine config for TQMa8MxML with 1GiB RAM on MBa8Mx

U-Boot

  • Add support for SOM variant with 1GiB RAM

Rev.0056

BSP

  • Enable building multiple u-boot configs

U-Boot

  • Support multiple u-boot configs. Build all bootstream variants for all enabled u-boot configs

Rev.0052

BSP

  • Sanitize variable assignments to improve reusability in config/machines:
    • Replace IMAGE_INSTALL_append with more approbiate MACHINE_EXTRA_RRECOMMENDS_append
    • Remove all dirty magic for DISTRO_FEATURES_remove
    • Replace hard assignments to IMAGE_BOOT_FILES with ?=
  • Remove remaining docs for incompatible MBa8Mx REV.020x
  • Drop support for U-Boot v2019.04, since no user left
  • Remove local recipe firmware-imx
  • Support for NXP BSP rel_imx_5.4.70_2.3.1
    • u-boot: migrate all imx8 machines with U-Boot v2020.04 support to NXP BSP version
    • linux: migrate all machines to NXP BSP version
    • imx-atf: add fork based on NXP BSP version
    • Optimize codec preconfig in alsa-state. PCM input and LineOut amp factors were configured suboptimal.
  • Update to new CortexM demo package in machine config
  • rewrite recipe for CortexM demos:
    • Based on NXP SDK v2.9.0
    • Rename and sanitize recipe
    • Use versioned archive name
  • Disable packages only relevant for NXP STK in machine config:
    • nxp8987 WiFi
    • imx-m[4,7]-demos

U-Boot

  • Fix RAM Timing
  • Fix phy_config using devicetree
  • Forward error from phy_config
  • Prevent nasty voltage switch error warning for e-MMC
  • Use mmc rescan in env scripts to prevent errors when exchanging SD Card
  • I2C recovery gpio
  • Support SD UHS modes and optimized pad config
  • Backport lmb fixes from upstream, needed for newer DTB with lots of reserved mem regions
  • Fix flow for EVCR access
  • Optimize RAM-config
  • Use verified pad config
  • Optimize PMIC config in SPL
    • Lower voltage for LDO2 / V_SNVS_0V8
    • Improved configs for BUCK1/3 (recommendations from hardware development guide and app note for using same board for i.MX8MN / i.MX8MM)
    • DSR support for Micron SPI NOR

Linux

  • Fix DT for mPCIe USB cards
  • Port fixes for Codec on STK to prevent race condition that could cause driver load failure
  • Enable wifi support in kernelconfig
  • I2C recovery gpio
  • Support SD UHS modes and optimized pad config
  • Fix SAI interface sychronous play / record
  • Use verified pad config
  • Label sys EEPROM as read only
  • Backport upstream PMIC driver for PCA9450
    • adjust device tree
    • Limit voltage rails
  • DSR support for Micron SPI NOR

Rev.0035

U-Boot

  • Fixes for REV.0200

Rev.0034

U-Boot

  • Add support HW REV.0200
  • Removed support for HW REV.0100
  • e-MMC is now on USDHC3
  • Some GPIO signals changed
  • remove muxing and usage of USER_LED_3 signal as already done in kernel dtb

Linux

  • Add support HW REV.0200
  • Removed support for HW REV.0100
  • e-MMC is now on USDHC3
  • Some GPIO signals changed
  • Add recovery GPIO for I2C1

Rev.0030

BSP

  • Integrate CortexM examples for TQMa8Mx[M,N]L
  • Include RPMSG examle device tree
  • Build FlexSPI bootstream by default

U-Boot

  • Add flexspi boot support
  • Add env support for bootstream update on flexspi
  • Add env support for CortexM core boot and update
  • Fix compatible and model names in devicetree
  • fix spelling errors in multiple places

Linux

  • Add devicetree for RPMSG support
  • Fix compatible and model names in devicetree
  • remove USER_LED_3
  • switch to gpio CS for SPI

Rev.0027

BSP

  • machines: rename some machines to unify naming and reflect real mem size

U-Boot

  • Rename defconfigs to unify naming
  • Optimized pad settings for SD-Cardadd
  • Support for RTC load capacity configuration
  • QSPI Support
  • USB host support (Hub on MBa8Mx)
  • simplify USB OTG (use ID from USB)
  • Fix RAM Timing for 1GiB
  • Fix Kconfig for default device tree
  • Fix not working USB download in SPL
  • USB power domain handling

Linux

  • Optimized CMA size for 1 GiB RAM
  • Optimized pad settings for SD-Card
  • Simplify USB OTG (use ID from USB)
  • Added audio support
  • USB host support
  • Enable QSPI flash
  • Enable SD104 for SD-Card
  • Remove pull config from pad settings

Rev.0026

  • Initial support for TQMa8MxML

Target Machine: tqma8mxml-2gb-mba8mx

System Image

Boot Device Symlink File
SD Card/eMMC tq-image-weston-tqma8mxml-2gb-mba8mx.wic tq-image-weston-tqma8mxml-2gb-mba8mx-<build_timestamp>.rootfs.wic

Bootstream (Bootloader) Binary

Boot Device Symlink File
SD Card/eMMC imx-boot imx-boot-tqma8mxml-2gb-mba8mx-sd.bin-flash_spl_uboot
QSPI imx-boot-tqma8mxml-2gb-mba8mx-fspi.bin-flash_evk_flexspi

Linux Kernel Binary

Symlink File
Image Image–<kernel_version>-tqma8mxml-2gb-mba8mx-<build_timestamp>.bin

Devicetree Blobs

Symlink Description
imx8mm-tqma8mqml-mba8mx.dtb Default
imx8mm-tqma8mqml-mba8mx-lcdif-lvds-tm070jvhg33.dtb Default with LVDS interface activated
imx8mm-tqma8mqml-mba8mx-lcdif-lvds-tm070jvhg33-imx327.dtb Default with CSI color Camera and LVDS activated
imx8mm-tqma8mqml-mba8mx-lcdif-lvds-tm070jvhg33-ov9281.dtb Default with CSI monocrome Camera and LVDS activated
imx8mm-mba8mx-rpmsg.dtb Default with RPMSG support

RootFS Images

Symlink File
tq-image-weston-tqma8mxml-2gb-mba8mx.ext4 tq-image-weston-tqma8mxml-2gb-mba8mx-<build_timestamp>.rootfs.ext4
tq-image-weston-tqma8mxml-2gb-mba8mx.tar.gz tq-image-weston-tqma8mxml-2gb-mba8mx-<build_timestamp>.rootfs.tar.gz

Target Machine: tqma8mxml-1gb-mba8mx

System Image

Boot Device Symlink File
SD Card/eMMC tq-image-weston-tqma8mxml-1gb-mba8mx.wic tq-image-weston-tqma8mxml-1gb-mba8mx-<build_timestamp>.rootfs.wic

Bootstream (Bootloader) Binary

Boot Device Symlink File
SD Card/eMMC imx-boot imx-boot-tqma8mxml-1gb-mba8mx-sd.bin-flash_spl_uboot
QSPI imx-boot-tqma8mxml-1gb-mba8mx-fspi.bin-flash_spl_uboot

Linux Kernel Binary

Symlink File
Image Image–<kernel_version>-tqma8mxml-1gb-mba8mx-<build_timestamp>.bin

Devicetree Blobs

Symlink Description
imx8mm-mba8mx.dtb Default
imx8mm-mba8mx-lcdif-lvds-tm070jvhg33.dtb Default with LVDS interface activated
imx8mm-mba8mx-lcdif-lvds-tm070jvhg33-imx327.dtb Default with CSI color Camera and LVDS activated
imx8mm-mba8mx-lcdif-lvds-tm070jvhg33-ov9281.dtb Default with CSI monocrome Camera and LVDS activated
imx8mm-mba8mx-rpmsg.dtb Default with RPMSG support

RootFS Images

Symlink File
tq-image-weston-tqma8mxml-1gb-mba8mx.ext4 tq-image-weston-tqma8mxml-1gb-mba8mx-<build_timestamp>.rootfs.ext4
tq-image-weston-tqma8mxml-1gb-mba8mx.tar.gz tq-image-weston-tqma8mxml-1gb-mba8mx-<build_timestamp>.rootfs.tar.gz

Device assignment:
mmcdev 0 = eMMC
mmcdev 1 = SD Card

1. Run the following commands in the Uboot shell to create update script:

 
setenv root_loop 'setenv start 24000 && setenv r1 $rootblks16 && while itest $r1 -gt 0; do if itest $r1 -gt 0x100000; then setenv count 0x100000; else setenv count $r1; fi && mmc dev 1 && mmc read $loadaddr $start $count && mmc dev 0 && mmc write $loadaddr $start $count && setexpr start $start + $count && setexpr r1 $r1 - $count; done; setenv r1; setenv start; setenv count'
 
setenv  install_firmware 'echo MBR... && mmc dev 1 && mmc read $loadaddr 0 1 && mmc dev 0 && mmc write $loadaddr 0 1 && echo Bootstream... && mmc dev 1 && mmc read $loadaddr 41 1FBE && mmc dev 0 && mmc write $loadaddr 41 1FBE && echo U-Boot environment... && mmc dev 1 && mmc read $loadaddr 2000 2000 && mmc dev 0 && mmc write $loadaddr 2000 2000 && echo Firmware Partition... && mmc dev 1 && mmc read $loadaddr 4000 20000 && mmc dev 0 && mmc write $loadaddr 4000 20000  && echo Root FS... && run root_loop'
  • Create the variable rootblks16 to hold the size of the root filesystem as a hex number representing the size as the amount of 512 byte blocks:
setenv rootblks16 <number of 512 byte blocks as hex number>
Example for RootFS size of 2070MB:
2070 * 1024 * 1024 = 2170552320
2170552320 / 512 = 4239360
4239360 = 40B000HEX
setenv rootblks16 0x40B000
=> run netboot

1)
i.e. value for MACHINE variable
  • Last modified: 2023/10/17 13:54