Table of Contents

TQMa8x - YOCTO Linux BSP documentation


Overview

The TQMa8x provides a robust embedded module platform powered by NXP's i.MX 8 processor family. The BSP is based on the Yocto Project using TQ’s meta-tq hardware support layer, with build host setup instructions and BSP sources provided via GitHub.

Please see the meta-tq repository on GitHub for further instructions. A list of supported Yocto images and example configurations is available in the BSP repository GitHub.

For each Board Support Package (BSP), the corresponding modules are versioned under the matching Git tag in our GitHub repository. Simply check out the tag that matches your BSP release, then open the module’s README file in the “doc” folder to find detailed information.

Documentation and Downloads

Documentation and Downloads

TQ Systems provides comprehensive documentation on its embedded mini-module products to facilitate the evaluation and design phase with our products.

Publicly Available User Manuals & Datasheets

The following documents can be downloaded directly from our Website (no login required) for the desired product:

User Manual (Baseboard)
Detailed hardware descriptions, installation steps, jumper settings, connector layouts and troubleshooting tips.
User Manual (Module)
Electrical specifications, interface overviews, software setup guides and reference tables.
Datasheets
Absolute maximum ratings, timing diagrams and ordering information.

Customer Info Archive (Starter Kit Customers)

The Customer Info Archive is provided upon purchase of a Starter Kit and is released on request by TQ Support. To obtain it, please open a Support Ticket with your order details.

The archive includes:

  • Mainboard schematic & placement diagram
  • Module CAD files (native format)
  • Module mechanical dimensions (2D/3D drawings)
  • Pinmuxing configuration (recommended device tree fragments)
  • Pinout reference (signal assignments, voltage domains)
  • Design checklist (layout guidelines, EMI/ESD considerations)
  • Processing instructions (LGA Modules)

BSP Tagging and Revisioning

BSP Git Tagging and Revisioning

TQ manages all Board Support Package (BSP) releases in the meta-tq GitHub repository using annotated Git tags. This ensures each release is traceable to an exact source snapshot and clearly documents which Yocto branch, platform (module) and software revision it covers.

Tag Format:
<YoctoBranch>.<ModuleIdentifier>.TQ.ARM.BSP.<RevisionNumber>

Component Description
YoctoBranch Name of the Yocto Project release (e.g. kirkstone, scarthgap)
ModuleIdentifier Target module name when present; omitted entirely for “scarthgap” tags
TQ.ARM.BSP Literal marker for “Board Support Package – Software”
RevisionNumber Four-digit, zero-padded incrementing counter (e.g. 0001, 0002, …)

Examples:
kirkstone.TQMa64xxL.BSP.SW.0008
scarthgap.BSP.SW.0001 – here no module identifier is used

Supported Platforms Reference:
To see exactly which platforms (machines/boards) each BSP tag covers, open the meta-tq folder in that tag and view its README.md:
/tq-systems/meta-tq/tree/<git-tag>/meta-tq
Click on README.md there to find the full list of Yocto machine names, board variants, RAM options and support status.

Get Notified

Enable Notifications:
In order to be automatically notified of new BSP releases by e-mail, you must activate notifications in the corresponding Github repository.

1. Go to the desired repository in Github (e.g. meta-tq)
2. Click on the notification button in the top right corner.
3. Log in or create a Github account if you have not already done so.
4. Select “All activity” so that you will be notified of every new release.

Software Versions:
For the exact versions of U-Boot, Linux kernel and other components used in a BSP tag, view doc/README.SoftwareVersions.md in that tag.
tq-systems/meta-tq/blob/<git-tag>/meta-tq/doc/README.SoftwareVersions.md

Current BSP Information

U-boot

U-Boot

Feature
RAM configs 4,8 GiB
CPU variants i.MX8QM B0
Fuses x
GPIO x
I2C x
QSPI
Read x
Write x
Boot x
eMMC / SD card
Read x
Write x
Boot x
USB
USB 2.0 Dual Role x
USB 3.0 (Hub on MBa8x) x
ENET (GigE via Phy on MBa8x)
ENET 0 x
ENET 1 x
Bootstreams
FlexSPI x
SD / eMMC x
uuu x

TODO or not tested / supported

  • more CPU variants
  • temperature grade
    • SCU limitation

Linux

Linux

Feature fslc-6.6
RAM configs 4,8 GiB
CPU variants i.MX8QM B0
Fuses / OCRAM x
speed grade x
UART
console on LPUART0 (X24) x
additional UARTS on pin heads x
GPIO
LED x
Button x
wakeup from GPIO button x
GPIO on pin heads x
I2C
Temperature Sensors (without cpu-temp) x
RTC x
EEPROMS x
ENET (GigE via Phy on MBa8x)
ENET 0 x
ENET 1 x
USB
USB 2.0 Dual Role x
USB 3.0 (Hub on MBa8x) x
QSPI NOR
Read with 1-1-4 SDR
Read with 1-4-4 SDR x
PP / Erase with 1-1-1 SDR
PP / Erase with 1-4-4 SDR x
Graphic
GPU x
VPU x
Display
LVDS0/LVDS1 x
Dual-Channel LVDS x
Display Port x
Audio
Line IN / Line Out (X16, X17) x
Display Port x
PCIe
mini-PCIe on MBa8x (SX-PCEAC2-HMC-SP) x
M.2 PCIe with WiFi Card (SX-PCEAC2-M2-SP) x
SATA
M.2 SATA x
CAN
CAN x
SPI
SPI user space device on all CS x
Mikrobus (Module RTC5)
ADC
ADC x
PWM
PWM in LVDS IP x
PWM in LSIO subsystem x
CPU/PMIC thermal sensors
via thermal zone x
Cortex M4
examples running from TCM x
use UART as debug console x

TODO or not tested with new BSP

  • MIKRO Bus
  • temperature grade
    • Due to SCU-API limitation temperature grading cannot be queried from SCU. Therfore thermal trip points are hardcoded in devicetree and must match the assembled CPU type. BSP default are trip points for industrial grading.
  • FTM
    • PWM (missing in CPU DT)
  • HDMI in

I2C Devices

Onboard I2C Devices

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

Changelog

Changelog BSPs

Scarthgap.TQ.ARM.BSP.0008

Added

  • linux-tq-6.12:
    • TQMa8MPxS: support for hardware REV.0300
    • TQMa93xx: support EDAC for inline ECC
  • imx-system-manager-tq:
    • prepare TQMa94xxLA / MBa94xxCA
  • imx-oei-tq:
    • prepare TQMa94xxLA / MBa94xxCA
  • linux-imx-tq-6.12:
    • TQMa95xxLA / TQMa95xxSA: support thermal zones for PMIC temperature sensors

Changed

  • u-boot-imx-tq-2024.04:

    • TQMa8MPxS: add support for hardware revision 030x
  • rcw: update TQMLS1028A PCIe configuration

    • The default RCW was renamed from "default" to "8_5_11_14", providing SGMII, QSGMII, PCIe Gen2 and SATA
    • A second RCW variant "8_5_11_11" was added, providing SGMII, QSGMII, PCIe Gen3, but no SATA
  • linux-ti-tq-6.12: update to latest ti-linux-6.12.y

  • linux-rt-tq-6.12: update to v6.12.74-rt16

  • imx-system-manager-tq: update to NXP version lf-6.18.2_1.0.0

    This integrates all fixes and features from NXP release and port supported boards from TQ-Systems. Switch to use new branch TQM-lf-6.18.2

  • imx-oei-tq: update to NXP version lf-6.18.2_1.0.0

    This integrates all fixes and features from NXP release and port supported boards from TQ-Systems. Switch to use new branch TQM-lf-6.18.2

  • linux-imx-tq-6.12:

    • TQMa95xxLA / TQMa95xxSA: support thermal zones for PMIC temperature sensors
    • integrate fixes from NXP lf-6.12.49-2.2.0
  • linux-imx-tq-6.6:

    • enable CONFIG_PTP_1588_CLOCK
    • integrate fixes from FSLC 6.6-2.2.x-imx

    This includes fixes from linux-stable up to tag v6.6.129

  • imx-system-manager-tq: update to NXP version lf-6.12.49_2.2.0

    • prepare TQMa94xxLA / MBa94xxCA
    • TQMa95xxLA/TQMa95xxSA: improve debug UART support code
  • imx-oei-tq: update to NXP version lf-6.12.49_2.2.0

    • prepare TQMa94xxLA / MBa94xxCA
    • TQMa95xxLA/TQMa95xxSA: improve debug UART support code
  • linux-ti-tq-6.12: enable rpmsg_ctrl kernel module

  • u-boot-imx-tq-2025.04:

    • Enable U-Boot environment handling from rootfs

    • Update to NXP downstream version lf-6.12.49_2.2.0

      • prepare for TQMa94xxLA

      • TQMa95xxLA/TQMa95xxSA: simplify and implrove board support code

        Use board_phys_sdram_size generic implementation under arch/arm/mach-imx and handle CPU variants with features disabled by fuses

    • TQMa95xxLA: FlexSPI boot support

  • imx-boot-tq:

    • prepare building for i.MX94

    • i.MX9[4,5]: do not build FlexSPI boot images for Octal SPI with DTR and DQS by default

      Not all boards have Octal SPI assembled. Use generic but slower setup by default. If needed this can be configured per board using modified QSPI_HEADER environment.

    • update to use upstream version lf-6.12.49-2.2.0

  • linux-imx-tq-6.12:

    • enable CONFIG_PTP_1588_CLOCK
    • Prepare config fragments for TQMa94xxLA / MBa94xxCA support
    • TQMa95xxLA:
      • FlexSPI support
      • 10GiGE support
      • dual LVDS example
  • linux-tq-6.6:

    • enable CONFIG_PTP_1588_CLOCK
    • update to 6.6.129
  • linux-rt-tq-6.6-rt: update to v6.6.129-rt70

  • linux-tq-6.12:

    • TQMa8MPxS: enable Eqos / TSN multiple queue support
    • enable CONFIG_PTP_1588_CLOCK
    • update to v6.12.76

Fixed

  • linux-tq-6.12:

    • TQMa8MPxS: correct GPIO for RTC interrupt

    • TQMa8MPxS: fix ethernet phy IRQ

    • TQMa8MPxS: correct SD-Card supply

      When reinserting the card under Linux card detect was not functional

  • linux-ti-tq-6.12:

    • TQMa62xx/TQMa67xx: fix dual-channel LVDS example Device Tree
  • linux-imx-tq-6.12: TQMa95xxLA: fix RTS / CTS pad configuration for LPUART5 / LPUART7.

    UART did not work with activated hardware flow control.

  • imx-system-manager-tq:

    • TQMa95xxSA: fix DDR ranges.

      The ranges shall reflect the assembled RAM size, not the addressable range of the DDR controller

  • u-boot-imx-tq-2025.04:

    • TQMa95xxLA: correct FlexSPI pin muxing

      Muxing uses wrong pads. Thus FlexSPI could not be used.

Removed

  • linux-ti-tq-6.6: remove recipe after all boards are updated to 6.12
  • linux-tq_6.1: remove recipe after all boards are updated to 6.6 or 6.12
  • linux-rt-tq_6.1: remove recipe after all boards are updated to 6.6 or 6.12
  • linux-imx-tq_6.1: remove recipe after all boards are updated to 6.6

The information provided on this wiki page is subject to change due to circumstances beyond our control. While we strive to keep all details as accurate and up-to-date as possible, it is possible that certain updates or changes may go unnoticed for some time. As a result, some sections of this page may contain outdated information. If you notice any mistakes in the documentation, we kindly ask you to inform the TQ Support through our ticket system.