TQMa93xxLA - YOCTO Linux BSP documentation
Overview
The TQMa93xxLA provides a powerful embedded module platform based on NXP’s i.MX 9 CPU series. 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.
Documentation and Downloads
Documentation and Downloads
All TQ Systems products come with comprehensive documentation to help you get started and integrate our hardware into your designs.
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 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
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

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 | MBa93xxCA REV.020x | MBa93xxLA REV.020x |
---|---|---|
RAM configs | 1 / 1.5 / 2 GiB | 1 / 1.5 / 2 GiB |
CPU variants | i.MX93 | i.MX93 |
Fuses / OCRAM | x | x |
speed grade / temperature grade detection | x | x |
UART (console on UART1) | x | x |
GPIO | ||
LED | x | x |
Button | x | x |
I2C | ||
system EEPROM parsing | x | x |
PMIC | x | x |
e-MMC / SD | ||
Read | x | x |
Write | x | x |
Ethernet | ||
GigE / FEC via Phy on MBa93xxCA | x | x |
GigE / EQOS via Phy on MBa93xxCA | x | x |
Bootdevices | ||
SD-Card on USDHC2 | x | x |
e-MMC on USDHC1 | x | x |
QSPI-NOR on FlexSPI | x | x |
Serial Downloader | x | |
USB | ||
USB 2.0 Host / Hub | x | x |
USB DRD (USB 2.0 Cable Detect, VBUS) | x | x |
(configured as device to be usable with UUU ) | ||
QSPI NOR | ||
Read with 1-1-4 SDR | x | x |
PP / Erase with 1-1-4 SDR | x | x |
Cortex M33 | ||
env settings for starting from TCM | ||
examples with UART3 as debug console |
TODO or not tested / supported
- CPU variants with single core and without NPU
Linux
Linux
Support matrix for MBa93xxCA
REV.020x and MBa93xxLA
REV.010x
Feature | linux-imx-tq_6.1 | linux-imx-tq_6.6 | linux-tq_6.12 |
---|---|---|---|
RAM configs | 1 / 1.5 / 2 GiB | 1 / 1.5 / 2 GiB | 1 / 1.5 / 2 GiB |
CPU variants | i.MX93 | i.MX93 | i.MX93 |
Fuses / OCRAM | x | x | x |
speed grade / temperature grade detection | x | x | |
Frequency scaling | x | ||
UART | |||
console on UART1 (via USB / UART converter) | x | x | x |
UART2/3/4 | x | x | x |
GPIO | |||
LED | x | x | x |
Button | x | x | x |
I2C | |||
EEPROMs | x | x | x |
PMIC | x | x | x |
RTC | x | x | x |
Temperature Sensors | x | x | x |
IMU / Gyroscope | x | x | x |
Port expander | x | x | x |
ENET | |||
GigE / FEC via Phy on MBa93xxCA | x | x | x |
GigE / EQOS via Phy on MBa93xxCA | x | x | x |
USB | |||
USB 2.0 Host / Hub | x | x | x |
USB DRD (USB 2.0 Cable Detect, VBUS) | x | x | x |
QSPI NOR | |||
Read with 1-1-4 SDR | x | ||
Read with 1-4-4 SDR | x | x | |
PP / Erase with 1-1-4 SDR | x | ||
PP / Erase with 1-4-4 SDR | x | x | |
Display | |||
LVDS | x | x | |
CAN-FD | |||
CAN-FD | x | x | x |
SPI | |||
spidev at all CS | x | x | |
internal ADC | |||
ADC | x | x | x |
Cortex M33 | |||
examples running from TCM | see notes | see notes | |
use UART3 as debug console (see issues) | x | x | |
LPB boot | |||
NPU | |||
Firmware for CORTEX M33 | see issues | ||
Demo | |||
MIPI CSI (see Issues section) | |||
Gray with Vision Components GmbH camera (Sensor OV9281) | |||
Raw Bayer with Vision Components GmbH camera (Sensor IMX327) |
I2C Devices
Onboard I2C Devices
I2C Bus - TQMa93xxLA | ||||||||
---|---|---|---|---|---|---|---|---|
I2C1 | 0x1B Tempsensor in EEPROM | 0x33 EEPROM SW Protect | 0x25 PMIC | 0x48 Plug & Trust Secure Element (optional) | 0x51 RTC | 0x53 EEPROM | 0x5F EEPROM (Identification Page) | 0x6A Gyroscope (optional) |
I2C Bus - MBa93xxLA | |||||||
---|---|---|---|---|---|---|---|
I2C3 | 0x0F USB-C Power Delivery Controller | 0x1C Tempsensor | 0x34 EEPROM SW Protect | 0x54 EEPROM | 0x70 I2C Port expander | 0x71 I2C Port expander | 0x72 I2C Port expander |
I2C5 | 0x0F Displayport bridge |
Changelog
Changelog BSPs
Scarthgap.TQ.ARM.BSP.0004
Added
-
Verified Boot with signed U-Boot, signed FIT image and dm-verity rootfs for
- TQMa8x
- TQMa8Xx
- TQMa8XxS
- TQMa91xx/TQMa93xx
-
TQMa91xx/TQMa93xx: Add new WKS template with two root partitions and a separate data partition for A/B boot with RAUC updates
The new partitioning will be selected automatically when "rauc" is enabled in
DISTRO_FEATURES
. TheWIC_ROOTPART_SIZE
and `WIC_DATAPART_SIZE
variables default to "1G" and "100M", respectively, and can be adjusted as needed. -
machines:
- restore support for TQMa6ULxL on MBa6ULxL SBC
- add new machine for TQMa8MPxL on MBa8MP-RAS314 starter kit
- add new machine for TQMa91xxCA/LA on MBa91xxCA starter kit
-
u-boot-imx-tq_2024.03: new recipe with support for TQMa91xx and TQMa93xx
-
imx-tq-atf_2.10: support for TQMa91xxCA/LA
-
linux-rt-tq-6.12: add recipe to support PREEMPT_RT with the same branch as used for linux-tq-6.12
-
linux-tq-6.12:
- support TQMa93xx[CA/LA] on MBa93xxCA / MBa93xxLA / MBa91xxCA
- support TQMa335x[L] on MBa335x
-
u-boot-tq-2023-04:
- TQMa6UL: decrease bootdelay for mfg / uuu defconfigs to 1 sec
- TQMa6UL: bootcmd is adjusted to start only fastboot gadget for mfg / uuu defconfigs.
-
linux-rt-tq-6.1:
- backport upstream fixes for TMPDIR leakage
- integrate changes from linux stable-rt up to tag v6.1.132-rt50
- rewrite recipe to keep shared settings in include file
-
u-boot-ti-tq-2023.04: allow boot without signed kernel
-
meta-ti does not set
UBOOT_SIGN_ENABLE
by default anymore, breaking boot with our U-Boot branch. Disable enforcement of signature checks.This only has an effect on U-Boot build that do not embed a public key to check a signature against (which is the default now). If
UBOOT_SIGN_ENABLE
is set, a key will be built into U-Boot and signatures will be verified.
-
-
linux-imx-tq-6.6:
- TQMa91/TQMa93:
- improve DVFS support
- revert Open Drain for MDIO pads to prevent signal spec violation
- integrate changes from linux fslc up to commit 237948c6e22c "Merge pull request #719 from Gerbach/6.6-2.2.x-imx" including stable tag v6.6.84
- TQMa91/TQMa93:
-
u-boot-imx-tq-2024.04:
- TQMa93xx/TQMa91xx:
- revert Open Drain for MDIO pads to prevent signal spec violation
- enable KASLR support
- integrate changes from NXP BSP release
lf-6.6.52-2.2.0
- TQMa93xx/TQMa91xx:
-
machines
- tq-distroboot.inc: add
tq-extlinux
toMACHINE_ESSENTIAL_EXTRA_RRECOMMENDS
since this is needed for booting system if using U-Boot distroboot - tq-machine.inc: new config include that adds
kernel-devicetree
andkernel-image
toMACHINE_ESSENTIAL_EXTRA_RDEPENDS
since they are needed for booting system when expecting them in/boot
.linux-modules
are added toMACHINE_EXTRA_RRECOMMENDS
. This file is included at board level to simplify machine configs.
- tq-distroboot.inc: add
-
u-boot-tq-2019.04:
- TQMa335x:
- Update MMC indices to use mmc0 for eMMC and mmc1 for SD card
- Clean up default environment
- Various code cleanups
- TQMa335x:
-
linux-tq-6.12:
- TQMa93: revert Open Drain for MDIO pads to prevent signal spec violation
- enable BACKLIGHT_CLASS_DEVICE and SPI_SPIDEV as module
- integrate changes from linux-stable up to tag v6.12.18
- Compile UBI/UBIFS support into kernel to support boot from QSPI
-
linux-tq-6.6:
- enable SPI_SPIDEV as module
- rewrite recipe to reuse settings shared with
linux-rt-tq-6.6
- backport upstream fix for TMPDIR leakage
- integrate changes from linux-stable up to tag v6.6.80
-
linux-rt-tq-6.6: integrate changes from linux-stable up to tag v6.6.80 via TQ Systems branch TQM-linux-v6.6.y and changes from stable-rt up to tag v6.6.78-rt51
-
linux-tq-6.1:
- rewrite recipe to keep shared settings in include file
- backport upstream fixes for TMPDIR leakage
- integrate changes from linux-stable up to tag v6.1.132
-
imx-tq-atf_2.10: integrate changes from NXP BSP release
lf-6.6.52-2.2.0
-
linux-imx-tq-6.6:
- integrate fixes from linux-fslc up to 5ff4cf4d61e1 ("Merge pull request #713 from angolini/fix_imx93")
- Add TCP SYN cookie support (expected by default sysctl.conf)
- integrate changes from NXP BSP release
lf-6.6.52-2.2.0
via the matching branch of linux-fslc repo. Integrates linux-stable fixes up to v6.6.74 - Enable kernel options required for RAUC updates:
- DMVerity
- Squashfs
- Loop block device
-
u-boot-tq-2023-04:
- MBa6ULxL: fix SPL bootflow for serial downloader mode
- TQMa6x: SMSC9500 USB-ethernetbridge did not work after update to new U-Boot version
- TQMa6x/6ULx[L]/6ULLx[L]/TQMa7x:
save env
does not work afterusb start
-
linux-tq-6.6 / 6.1:
- Change USB_ONBOARD_HUB from module to builtin to prevent USB bus reenumeration when loading as module. Follow the recommendation from Linux Kconfig
-
linux-imx-tq-6.6: fix flexspi driver error caused by update to new fslc branch: commit 791210cc944a ("meta-tq: linux-imx-tq_6.6: update to new branch TQMa-fslc-6.6-2.2.x-imx")
-
imx-boot-tq: do not overwrite settings for IMX_EXTRA_FIRMWARE.
- libimxvpuapi2:
- Remove custom patches
- Requires meta-freescale >= commit 1699cb16 ("libimxvpuapi2: Upgrade to version 2.3.1")
- linux-ti-tq-5.4:
- Removed recipe
- Support for Basler cameras on TQMa8MPxL
Scarthgap.TQ.ARM.BSP.0003
Added
-
linux-tq-6.12: new kernel based on linux-stable kernel
- support TQMa8MPxL on MBa8MPxL incl. DisplayPort
-
Secure Boot support for TQMa8x and TQMa8Xx
-
TQMa62xx/TQMa64xxL: Add new WKS template with two root partitions and a separate data partition for A/B boot with RAUC updates
The new partitioning will be selected automatically when "rauc" is enabled in
DISTRO_FEATURES
. TheWIC_ROOTPART_SIZE
and `WIC_DATAPART_SIZE
variables default to "1G" and "100M", respectively, and can be adjusted as needed. -
u-boot-*-env: Provide separate
fw_env.config
variants for different boot media on TQMa62xx/TQMa64xxL (u-boot-ti-tq-2023.04) -
tq-bootscripts: Provide new
boot-blockdev-rauc
boot script for A/B boot with RAUC updates On platforms with Distroboot support (TQMa62xx/TQMa64xxL) the new script will be installed automatically instead ofboot-blockdev
when "rauc" is enabled inDISTRO_FEATURES
. -
u-boot-tq-2023.04: new default bootloader based on upstream U-Boot. With the update the default environment was completely reworked to use canonical variable names compatible with distro boot etc. Kernel and devicetree are expected in rootfs. This adds also support for U-Boot environment access from Linux OS. Additionally, SDP support is added.
- support for TQMa6ULx
- support for TQMa6ULxL
- support for TQMa6ULLx
- support for TQMa6ULLxL
- support for TQMa7x
-
linux-tq-6.6: new default kernel based on mainline-linux-kernel
- support for TQMa6ULx
- support for TQMa6ULxL
- support for TQMa6ULLx
- support for TQMa6ULLxL
- support for TQMa7x
- support for TQMa8Mx
- support for TQMa8MxML
- support for TQMa8MxNL
- support for TQMa8MPxL
-
linux-rt-tq-6.6: new realtime kernel based on linux-tq-6.6
- support for TQMa6ULx
- support for TQMa6ULxL
- support for TQMa6ULLx
- support for TQMa6ULLxL
- support for TQMa7x
- support for TQMa8Mx
- support for TQMa8MxML
- support for TQMa8MxNL
- support for TQMa8MPxL
-
linux[-ti,-imx,-lsdk,-rt,]-tq recipes: improve local version generation. Upstream poky kernel classes change usage of
.scmversion
files and start usingKERNEL_LOCALVERSION
. To keep reproducible version stringCONFIG_LOCALVERSION_AUTO
will be forcibly disabled. -
example keys and certificates for AHAB are changed to prepare Secure Boot for TQMa8x and TQMa8Xx
-
u-boot-imx-tq-[2020.04,2023.04]: use generic overrides for secure boot The recipe for imx-boot-tq uses
nxp-hab4
andnxp-ahab
. These are added by machine config. Use them for consistency. -
imx-boot-tq: adjust to i.MX9 target split in imx-mkimage lf-6.6.36_2.1.0
-
imx-mkimage-tq: update to use NXP lf-6.6.36_2.1.0 code base
-
linux-ti-tq-6.6: Enable DMVerity kernel module
Used for integrity checking of RAUC bundles in verity format.
-
tq-bootscripts: Do not add temporary variables to the U-Boot environment
-
u-boot-*-env: Do not leave any enabled configurations in the default/fallback
fw_env.config
If no hardware-specific configuration exists, accessing the environment is not supported out-of-the-box. Avoid shipping an incorrect configuration that might write to the wrong MTD partition on
fw_setenv
. -
imx-atf-tq-2.10: prepare support for TQMa91xx
-
tqma62xx / tqma64xx: require arch-armv8a.inc to allow more specific tuning.
-
tqmls10xxa.inc: require arch-armv8a.inc to allow more specific tuning.
-
u-boot-tq_2023.04: fix a warning in MTD partition parsing when the last partition uses remaining size but free space is left before this partition.
-
u-boot-imx-tq_2020.04 / u-boot-imx-tq_2023.04 / u-boot-tq_2023.04: provide configurations for U-Boot env tools based on rootfs. Multiconfiguration config file does not work in on device in the configuration is not present.
-
TQMa8M: fix U-Boot compatibility to generated signed images.
Please note that images generated with imx-mkimage version before
lf-6.1.55_2.2.0
are not compatible with newer images and vice versa. Image generation and U-Boot has to be updated in lock step.
- u-boot-imx-tq_2016.03: recipe is removed since no SoM uses it anymore.