Entry Page
Product URL list
Board Support Packages
Third-Party Add-Ons
Starterkit
Hardware
Debug Connection
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.
Onboard I2C devices
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
Yocto BSP Version Matrix - Old Revisions
BSP Version Matrix - Old Revisions
Yocto Target Machines
U-Boot
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
Supported boot devices
Boot device | supported |
---|---|
eMMC | ✔ |
SD Card | ✔ |
QSPI NOR | ✔ |
Operating System
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 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Yocto Changelog
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
Yocto Images
Target Machine: tqma8qm-4gb-mba8x
Complete system image
Boot Device | Symlink | File |
---|---|---|
SD Card/eMMC | tq-image-weston-debug-tqma8qm-4gb-mba8x.wic | tq-image-weston-debug-tqma8qm-4gb-mba8x-<build_timestamp>.rootfs.wic |
Bootstream (Bootloader) Binary
Boot Device | File | Description |
---|---|---|
SD Card/eMMC | imx-boot-tqma8qm-4gb-mba8x-sd.bin-flash_spl | boot stream for SD / e-MMC |
SD Card/eMMC | imx-boot-tqma8qm-4gb-mba8x-sd.bin-flash_linux_m4 | boot stream for SD / e-MMC + M4 Demo |
QSPI | imx-boot-tqma8qm-4gb-mba8x-sd.bin-flash_spl_flexspi | boot stream for QSPI |
UUU | imx-boot-tqma8qm-4gb-mba8x-mfgtool.bin-flash_spl | boot 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.dtb | device 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.dtb | CortexM4 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.wic | tq-image-weston-debug-tqma8qm-8gb-mba8x-<build_timestamp>.rootfs.wic |
Bootstream (Bootloader) Binary
Boot Device | File | Description |
---|---|---|
SD Card/eMMC | imx-boot-tqma8qm-8gb-mba8x-sd.bin-flash_spl | boot stream for SD / e-MMC |
SD Card/eMMC | imx-boot-tqma8qm-8gb-mba8x-sd.bin-flash_linux_m4 | boot stream for SD / e-MMC + M4 Demo |
QSPI | imx-boot-tqma8qm-8gb-mba8x-sd.bin-flash_spl_flexspi | boot stream for QSPI |
UUU | imx-boot-tqma8qm-8gb-mba8x-mfgtool.bin-flash_spl | boot 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.dtb | device 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.dtb | CortexM4 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 |
Yocto Deployment
Device assignment
Device assignment:
mmcdev 0 = eMMC
mmcdev 1 = SD Card
Yocto specific command Update eMMC
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
uboot command to start netboot
=> run netboot