Entry Page

Hardware

The TQMa8x debug UART is connected via a FTDI USB-to-Serial converter to X28 (micro-USB) on the MBa8x. A micro-USB/USB-A cable is part of the STKa8x accessory set. Depending on the host operating system, a driver may need to be installed.

TQMa8x / MBa8x

I2C bus TQMa8x
I2C1 0x1B
Tempsensor
0x33
EEPROM Protection Command
0x51
RTC (Optional)
0x53
EEPROM
0x57
EEPROM
PMIC_I2C 0x08
PMIC#1
0x09
PMIC#2
I2C bus MBa8x
I2C1 0x18
Audio Codec
0x34
EEPROM Protection Command
0x1C
Tempsensor
0x54
EEPROM
0x68
PCIe Clock generator

Linux BSP

BSP Version Matrix - Old Revisions

BSP Revision meta-tq release Yocto Project / Poky Release Target machine1) U-Boot Linux Kernel
0081 hardknott 3.3.3 - Hardknott tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2020.04_imx_5.4.47_2.2.0 fslc-5.10-2.1.x-imx
0056 zeus-tqma8 3.0.3 - Zeus tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2020.04_imx_5.4.47_2.2.0 lf-5.4.y-1.0.0
0037 zeus-tqma8 3.0.3 - Zeus tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2020.04_imx_5.4.47_2.2.0 lf-5.4.y-1.0.0
0036 zeus-tqma8 3.0.3 - Zeus tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2020.04_imx_5.4.47_2.2.0 lf-5.4.y-1.0.0
0035 zeus-tqma8 3.0.3 - Zeus tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2020.04_imx_5.4.47_2.2.0 lf-5.4.y-1.0.0
0033 zeus-tqma8 3.0.3 - Zeus tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0
0031 zeus-tqma8 3.0.3 - Zeus tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0
0017 sumo-tqma8x 2.5.2 - Sumo tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2018.03-rel_imx_4.14.98_2.2.0_ga rel_imx_4.14.98_2.2.0
0016 sumo-tqma8x 2.5.2 - Sumo tqma8qm-4gb-mba8x.conf
tqma8qm-8gb-mba8x.conf
v2018.03-rel_imx_4.14.98_2.2.0_ga rel_imx_4.14.98_2.2.0
0012 sumo-tqma8x 2.5.2 - Sumo tqma8qm-mba8x.conf v2018.03-rel_imx_4.14.98_2.2.0_ga rel_imx_4.14.98_2.2.0

Tip: Get notified on new BSP release

Yocto Target Machines

TQMa8.BSP Revision Target machine
≥0031 tqma8qm-4gb-mba8x
tqma8qm-8gb-mba8x
0012 tqma8qm-mba8x


U-Boot

Feature TQMa8.BSP Revision Remarks
TQ Product Chip Interface Function 0081 - 0091
TQMa8x i.MX8 ENET0 GbE
TQMa8x i.MX8 ENET1 GbE
TQMa8x i.MX8 FlexSPI QSPI NOR Flash
TQMa8X i.MX8 GPIO
TQMa8x i.MX8 I²C Bus Access
TQMa8x i.MX8 UART Debug Console default console
TQMa8x i.MX8 uSDHC eMMC / SD-Card SD card / eMMC
TQMa8x i.MX8 USB2 Host
TQMa8x i.MX8 USB3 Host
TQMa8x i.MX8 Fuse

U-Boot - Old Revisions

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0012 0016 0017 0031 0033 0035 0036 0037 0056
TQMa8x i.MX8 ENET0 GbE
TQMa8x i.MX8 ENET1 GbE
TQMa8x i.MX8 FlexSPI QSPI NOR Flash
TQMa8X i.MX8 GPIO
TQMa8x i.MX8 I²C Bus Access
TQMa8x i.MX8 UART Debug Console default console
TQMa8x i.MX8 uSDHC eMMC / SD-Card SD card / eMMC
TQMa8x i.MX8 USB2 Host
TQMa8x i.MX8 USB3 Host
TQMa8x i.MX8 Fuse

Supported boot devices

Boot device supported
eMMC
SD Card
QSPI NOR

Linux

Feature TQMa8.BSP Revision Remarks
TQ Product Chip Interface Function 0081 - 0091
TQMa8x i.MX8 ADC
i.MX8 ENET0 GbE
i.MX8 ENET1 GbE
i.MX8 FLEXCAN0 CAN
i.MX8 FLEXCAN1 CAN
i.MX8 FlexSPI QSPI NOR Flash
i.MX8 FTM PWM
i.MX8 GPIO
i.MX8 GPU Hardware Acceleration
i.MX8 HDMI TX Display Port
i.MX8 LDB LVDS0 Tested with Tianma TM070JVHG33 display
LVDS1 Tested with Tianma TM070JVHG33 display
i.MX8 LPI2C I2C1 See onboard I2C devices
i.MX8 LPSPI0 SPI
i.MX8 LPSPI1 SPI
i.MX8 LPSPI2 SPI
i.MX8 LPUART0 Debug UART MBa8x connector X28
i.MX8 LPUART1 TTL
i.MX8 LPUART2 TTL
i.MX8 PCIe Host
PCIe0 (Mini-PCIe) MBa8x connector X45
PCIe1 (PCIe M.2) MBa8x connector X47
i.MX8 SAI TLV320AIC3204
i.MX8 SATA Serial ATA 3.0 MBa8x connector X48
i.MX8 USB2 USB_OTG1 (HOST) connected to USB hub on MBa8x
USB_OTG2 (OTG) Bundled with USB3
i.MX8 USB3 MBa8x connector X29
i.MX8 VPU Hardware Acceleration
MBa8x TLV320AIC3204 Audio Codec Line Out/
Headphone Out
Line In
Microphone In
USB2517 USB H1 USB Connector
USB H2 USB Connector
USB H3 MIPI_DSI0
USB H4 MIPI_DSI1
USB H5 LVDS0
USB H6 LVDS1
USB H7 Mini-PCIe

Linux - Old Revisions

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0012 0016 0017 0031 0033 0035 0036 0037 0056
TQMa8x i.MX8 ADC
i.MX8 ENET0 GbE
i.MX8 ENET1 GbE
i.MX8 FLEXCAN0 CAN
i.MX8 FLEXCAN1 CAN
i.MX8 FlexSPI QSPI NOR Flash
i.MX8 FTM PWM
i.MX8 GPIO
i.MX8 GPU Hardware Acceleration
i.MX8 HDMI TX Display Port
i.MX8 LDB LVDS0 Tested with Tianma TM070JVHG33 display
LVDS1 Tested with Tianma TM070JVHG33 display
i.MX8 LPI2C I2C1 See onboard I2C devices
i.MX8 LPSPI0 SPI
i.MX8 LPSPI1 SPI
i.MX8 LPSPI2 SPI
i.MX8 LPUART0 Debug UART MBa8x connector X28
i.MX8 LPUART1 TTL
i.MX8 LPUART2 TTL
i.MX8 PCIe Host
PCIe0 (Mini-PCIe) MBa8x connector X45
PCIe1 (PCIe M.2) MBa8x connector X47
i.MX8 SAI TLV320AIC3204
i.MX8 SATA Serial ATA 3.0 MBa8x connector X48
i.MX8 USB2 USB_OTG1 (HOST) connected to USB hub on MBa8x
USB_OTG2 (OTG) Bundled with USB3
i.MX8 USB3 MBa8x connector X29
i.MX8 VPU Hardware Acceleration
MBa8x TLV320AIC3204 Audio Codec Line Out/
Headphone Out
Line In
Microphone In
USB2517 USB H1 USB Connector
USB H2 USB Connector
USB H3 MIPI_DSI0
USB H4 MIPI_DSI1
USB H5 LVDS0
USB H6 LVDS1
USB H7 Mini-PCIe

BSP Version History

Rev.0087

BSP

  • Update to Yocto Kirkstone
  • Update imx-seco
  • Update imx seco-libs
  • Update imx-sc-firmware
  • Fix argument check for scu_rm command

Linux

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

Rev.0081

BSP

  • Update to Yocto Hardknott

Linux

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

Rev.0056

BSP:

  • Enable building multiple u-boot configs
  • Add bootstreams with cortexM4 demos
  • Add Demos for tqma8qm
  • Update SCFW Version for basic CortexM4 support for TQMa8QM
  • Fix CortexM4 documentation for TQMa8x

U-Boot:

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

Linux:

  • Backport FEC phy resume fixes
  • Sanititze dtb nodes / remove trailing 0 in address part of node names
  • Fix cpu dtb for CortexM4 subsystems:
    • Disable M4 remotes by default
    • Include CM40 subsystem

Rev.0037

BSP:

  • imx-sc-firmware fix IOCTL output for TQMa8QM 8GB RAM info

Linux

  • Port fixes for Codec on STK to prevent race condition that could cause driver load failure

Rev.0036

BSP

  • config/machines: sanitize variable assignments to improve reusability
    • 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 ?=

U-Boot

  • v2020.04 fix FEC Ethernet PHY init
    • Fix phy_config using devicetree
    • Forward error from phy_config

Rev.0035

U-Boot

  • Fix env script loadhdp

Rev.0033

U-Boot

  • Enable SD regulator on MBa8x REV.0200 and SD UHS modes
  • allow DSR for Macronix SPI NOR on all supported TQ-Systems SOM

Linux

  • Allow DSR for Macronix SPI NOR on all supported TQ-Systems SOM
  • Enable SD regulator on MBa8x REV.0200 and SD UHS modes
  • Lower drive strength for some pins
  • Adjust thermal trip points
  • Fix DP audio support
  • Make PCIe voltage alway on, fixes USB port usablity at PCIe slot
  • Enable ADC support
  • Enable VPU support
  • Device Tree example for MicroBus (clock module RTC5)

Rev.0031

BSP

  • Update to Yocto Zeus
  • Add recipes for kernel / u-boot based on NXP 5.4.y_1.0.0 reference BSP

U-Boot

  • Initial support for current kernel with MBa8x REV.020x

Linux

  • Initial support for current kernel with MBa8x REV.020x

Rev.0017

BSP

  • update SCU firmware to version 1.2.10
  • SCU add support for PMIC info

U-Boot

  • load display port firmware during boot
  • added support for SCU PMIC info

Linux

  • added displayport audio support
  • added audio support
  • added FTM PWM support
  • added ADC support
  • added SATA support
  • added GPIO button support incl. wakeup capabilities
  • added LED support
  • added Display Port support
  • added LVDS support on both channels
  • enable wakeup from GPIO button
  • added GPIO LED and button support

Rev.0016

BSP

  • added TQMa8QM 8GB variant
  • systemd-machine-units: added tqma8qm support
  • systemd-machine-units: reduce default can bitrate
  • SCU Firmware added PCIe external clock

U-Boot

  • added PCIe GPIO sideband pins
  • added GPIO LED and button
  • added USB support
  • fix for flexspi write SR
  • enable QSPI Boot

Linux

  • added CAN support
  • added PCIe support
  • added USB support
  • added SPI support
  • added QSPI support (not completely functional)
  • added LVDS support

Rev.0012

  • initial BSP Release

Target Machine: tqma8qm-4gb-mba8x

Complete system image

Boot Device Symlink File
SD Card/eMMC tq-image-weston-debug-tqma8qm-4gb-mba8x.wictq-image-weston-debug-tqma8qm-4gb-mba8x-<build_timestamp>.rootfs.wic

Bootstream (Bootloader) Binary

Boot Device File Description
SD Card/eMMCimx-boot-tqma8qm-4gb-mba8x-sd.bin-flash_splboot stream for SD / e-MMC
SD Card/eMMCimx-boot-tqma8qm-4gb-mba8x-sd.bin-flash_linux_m4boot stream for SD / e-MMC + M4 Demo
QSPIimx-boot-tqma8qm-4gb-mba8x-sd.bin-flash_spl_flexspiboot stream for QSPI
UUUimx-boot-tqma8qm-4gb-mba8x-mfgtool.bin-flash_splboot stream for UUU

Linux Kernel Binary

Symlink File
Image Image–5.15.60+git0+89a67700a0-r0-tqma8qm-4gb-mba8x-<build_timestamp>.bin

Devicetree Binarys

Symlink Description
imx8qm-tqma8qm-mba8x.dtb default device tree blob for TQMa8X on MBa8X
imx8qm-tqma8qm-mba8x-dp.dtbdevice tree with activated Display Port
imx8qm-tqma8qm-mba8x-lvds0-tm070jvhg33.dtb device tree with activated LVDS0 channel and TM070JVHG33 display timing
imx8qm-tqma8qm-mba8x-lvds1-tm070jvhg33.dtb device tree with activated LVDS1 channel and TM070JVHG33 display timing
imx8qm-tqma8qm-mba8x-rpmsg.dtbCortexM4 demo for device 0

RootFS Images

Symlink File
tq-image-weston-debug-tqma8qm-4gb-mba8x.ext4 tq-image-weston-debug-tqma8qm-4gb-mba8x-<build_timestamp>.rootfs.ext4
tq-image-weston-debug-tqma8qm-4gb-mba8x.tar.gz tq-image-weston-debug-tqma8qm-4gb-mba8x-<build_timestamp>.rootfs.tar.gz

Target Machine: tqma8qm-8gb-mba8x

Complete system image

Boot Device Symlink File
SD Card/eMMC tq-image-weston-debug-tqma8qm-8gb-mba8x.wictq-image-weston-debug-tqma8qm-8gb-mba8x-<build_timestamp>.rootfs.wic

Bootstream (Bootloader) Binary

Boot Device File Description
SD Card/eMMCimx-boot-tqma8qm-8gb-mba8x-sd.bin-flash_splboot stream for SD / e-MMC
SD Card/eMMCimx-boot-tqma8qm-8gb-mba8x-sd.bin-flash_linux_m4boot stream for SD / e-MMC + M4 Demo
QSPIimx-boot-tqma8qm-8gb-mba8x-sd.bin-flash_spl_flexspiboot stream for QSPI
UUUimx-boot-tqma8qm-8gb-mba8x-mfgtool.bin-flash_splboot stream for UUU

Linux Kernel Binary

Symlink File
Image Image–5.15.60+git0+89a67700a0-r0-tqma8qm-8gb-mba8x-<build_timestamp>.bin

Devicetree Binarys

Symlink Description
imx8qm-tqma8qm-mba8x.dtb default device tree blob for TQMa8X on MBa8X
imx8qm-tqma8qm-mba8x-dp.dtbdevice tree with activated Display Port
imx8qm-tqma8qm-mba8x-lvds0-tm070jvhg33.dtb device tree with activated LVDS0 channel and TM070JVHG33 display timing
imx8qm-tqma8qm-mba8x-lvds1-tm070jvhg33.dtb device tree with activated LVDS1 channel and TM070JVHG33 display timing
imx8qm-tqma8qm-mba8x-rpmsg.dtbCortexM4 demo for device 0

RootFS Images

Symlink File
tq-image-weston-debug-tqma8qm-8gb-mba8x.ext4 tq-image-weston-debug-tqma8qm-8gb-mba8x-<build_timestamp>.rootfs.ext4
tq-image-weston-debug-tqma8qm-8gb-mba8x.tar.gz tq-image-weston-debug-tqma8qm-8gb-mba8x-<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 U-Boot... && mmc dev 1 && mmc read $loadaddr 40 1FC0 && mmc dev 0 && mmc write $loadaddr 40 1FC0 && 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 environment variable rootblks16 and set the value accordingly to the size of the RootFS in this case 601 MB.

To calculate the value of rootblks16 devide the size of the image in byte by 512 and convert the result into a hex value.

601 * 1024 * 1024 = 630194176
630194176 / 512 = 1230848
4239360 = 12C800HEX

setenv rootblks16 0x12C800
=> run netboot



1)
i.e. value for MACHINE variable
  • Last modified: 2023/08/30 12:29