Entry Page

Hardware

The TQMa8XxS debug UART is connected via a RS232 Tranceiver to X39 (Molex Connector) on the MB-SMARC-2. A Molex/Sub-D cable is part of the STKa8xxS accessory set.

Onboard I2C devices

TQMa8XxS Rev.03xx / MB-SMARC-2 Rev.01xx

I2C bus TQMa8XxS
I2C1 0x1B
Temperature sensor
0x33
EEPROM
(Protection Command)
0x48
Trust Secure Element (optional)
0x50
EEPROM
0x51
RTC (optional)
0x53
EEPROM
0x6A
PCIe clock generator
PMIC_I2C 0x08
PMIC
DSI0_I2C 0x0F
eDP Bridge
Only placed on TQMa8XxS with Display Port support
I2C bus MB-SMARC-2
I2C1 0x30
Audio-Codec
0xA0
EEPROM
0xAE
EEPROM

TQMa8XxS Rev.02xx / MB-SMARC-2 Rev.01xx

I2C bus TQMa8XxS
I2C1 0x1B
Temperature sensor
0x33
EEPROM
(Protection Command)
0x48
Trust Secure Element (optional)
0x50
EEPROM
0x51
RTC (optional)
0x53
EEPROM
0x6A
PCIe clock generator
PMIC_I2C 0x08
PMIC
DSI0_I2C 0x2C
eDP Bridge
Only placed on TQMa8XxS with Display Port support
I2C bus MB-SMARC-2
I2C1 0x30
Audio-Codec
0xA0
EEPROM
0xAE
EEPROM

TQMa8XxS Rev.01xx / MB-SMARC-2 Rev.01xx

I2C bus TQMa8XxS
I2C1 0x19
Temperature sensor
0x2C
eDP Bridge
Only placed on TQMa8XxS with Display Port support
0x31
EEPROM
0x50
EEPROM
0x51
EEPROM
0x68
RTC (optional)
PMIC_I2C 0x08
PMIC
I2C bus MB-SMARC-2
I2C1 0x30
Audio-Codec
0xA0
EEPROM
0xAE
EEPROM

Hardware Issues

Linux BSP

U-Boot

Feature TQMa8.BSP Revision Remarks
TQ Product Chip Interface Function 0081 - 0091
TQMa8XxS i.MX8X ENET0 GbE
TQMa8XxS i.MX8X ENET1 GbE
TQMa8XxS i.MX8X GPIO
TQMa8XxS i.MX8X I²C EEPROM, Temperature Sensors
TQMa8XxS i.MX8X UART0 Debug Console default console
TQMa8XxS i.MX8X USB Host
TQMa8XxS i.MX8X USB OTG
TQMa8XxS i.MX8X uSDHC eMMC / SD-Card SD card / eMMC
TQMa8XxS i.MX8X QSPI QSPI NOR
TQMa8XxS i.MX8X Fuses OTP Fuses

U-Boot - Old Revision

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0001 0002 0005 0006 0007 0016 0017 0028 0033 0035 0036 0038 0055
TQMa8XxS i.MX8X ENET0 GbE
TQMa8XxS i.MX8X ENET1 GbE
TQMa8XxS i.MX8X GPIO
TQMa8XxS i.MX8X I²C EEPROM, Temperature Sensors
TQMa8XxS i.MX8X UART0 Debug Console default console
TQMa8XxS i.MX8X USB Host
TQMa8XxS i.MX8X USB OTG
TQMa8XxS i.MX8X uSDHC eMMC / SD-Card SD card / eMMC
TQMa8XxS i.MX8X QSPI QSPI NOR
TQMa8XxS i.MX8X Fuses OTP Fuses

Supported boot devices

Boot device supported
eMMC
SD Card
QSPI NOR

Operating System

Feature TQMa8.BSP Revision Remarks
TQ Product Chip Interface Function 0081 - 0091
TQMa8XxS i.MX8X Cortex M4 Microcontroller
i.MX8X ENET0 GbE
i.MX8X ENET1 GbE
i.MX8X FLEXCAN0 CAN CAN FD not supported
i.MX8X FLEXCAN1 CAN CAN FD not supported
i.MX8X GPU Hardware Acceleration
i.MX8X I²C1 Bus Access See onboard I2C devices
i.MX8X MIPI DSI LVDS Only available on TQMa8XQPS-AA
i.MX8X UART0 Serial console
i.MX8X uSDHC uSDHC0 eMMC
i.MX8X uSDHC1 SD Card
i.MX8X USB 3.0 TUSB8041I
i.MX8X VPU Hardware Acceleration
TUSB8041I USB1 Host(USB 2.0)
TUSB8041I USB2 Host(USB 3.0)
TUSB8041I USB3 Host(USB 3.0)
TUSB8041I USB4 Host(USB 2.0)
i.MX8X QSPI NOR Flash
i.MX8X PCIe Host

Operating System - Old Revisions

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0001 0002 0005 0006 0007 0016 0017 0028 0033 0035 0036 0038 0055
TQMa8XxS i.MX8X Cortex M4 Microcontroller
i.MX8X ENET0 GbE
i.MX8X ENET1 GbE
i.MX8X FLEXCAN0 CAN CAN FD not supported
i.MX8X FLEXCAN1 CAN CAN FD not supported
i.MX8X GPU Hardware Acceleration
i.MX8X I²C1 Bus Access See onboard I2C devices
i.MX8X MIPI DSI LVDS Only available on TQMa8XQPS-AA
i.MX8X UART0 Serial console
i.MX8X uSDHC uSDHC0 eMMC
i.MX8X uSDHC1 SD Card
i.MX8X USB 3.0 TUSB8041I
i.MX8X VPU Hardware Acceleration
TUSB8041I USB1 Host(USB 2.0)
TUSB8041I USB2 Host(USB 3.0)
TUSB8041I USB3 Host(USB 3.0)
TUSB8041I USB4 Host(USB 2.0)
i.MX8X QSPI NOR Flash
i.MX8X PCIe Host

BSP Version Matrix - Old Revisions

BSP Revision meta-tq release Yocto Project / Poky Release Target machine1) U-Boot Linux Kernel
0055 3.0 - Zeus zeus-tqma8 tqma8xqps-mb-smarc-2
tqma8xqps-mb-smarc-2-r0200
tqma8xdps-mb-smarc-2
v2020.04-imx-5.4.47-2.2.0 lf-5.4.y-1.0.0
0038 3.0 - Zeus zeus-tqma8 tqma8xqps-mb-smarc-2
tqma8xqps-mb-smarc-2-r0200
tqma8xdps-mb-smarc-2
v2020.04-imx-5.4.47-2.2.0 lf-5.4.y-1.0.0
0036 3.0 - Zeus zeus-tqma8 tqma8xqps-mb-smarc-2
tqma8xqps-mb-smarc-2-r0200
v2020.04-imx-5.4.47-2.2.0 lf-5.4.y-1.0.0
0035 3.0 - Zeus zeus-tqma8 tqma8xqps-mb-smarc-2
tqma8xqps-mb-smarc-2-r0200
v2020.04-imx-5.4.47-2.2.0 lf-5.4.y-1.0.0
0033 3.0 - Zeus zeus-tqma8 tqma8xqps-mb-smarc-2
tqma8xqps-mb-smarc-2-r0200
v2020.04-imx-5.4.47-2.2.0 lf-5.4.y-1.0.0
0028 3.0 - Zeus zeus-tqma8 tqma8xqps-mb-smarc-2 v2019.04-lf-5.4.y-1.0.0 lf-5.4.y-1.0.0
0017 2.5.2 - Sumo sumo-tqma8x tqma8xps-mb-smarc-2
tqma8xds-mb-smarc-2
v2018.03-rel_imx_4.14.98_2.2.0_ga rel_imx_4.14.98_2.2.0_ga
0016 2.5.2 - Sumo sumo-tqma8x tqma8xps-mb-smarc-2
tqma8xds-mb-smarc-2
v2018.03-rel_imx_4.14.98_2.2.0_ga rel_imx_4.14.98_2.2.0_ga
0007 2.5.2 - Sumo sumo-tqma8x tqma8xps-mb-smarc-2
tqma8xds-mb-smarc-2
v2018.03 rel_imx_4.14.78_1.0.0_ga rel_imx_4.14.78_1.0.0_ga
0006 2.5.2 - Sumo sumo-tqma8x tqma8xps-mb-smarc-2 v2018.03 rel_imx_4.14.78_1.0.0_ga rel_imx_4.14.78_1.0.0_ga
0005 2.5.2 - Sumo sumo-tqma8x tqma8qxps-mb-smarc-2 v2018.03 rel_imx_4.14.78_1.0.0_ga rel_imx_4.14.78_1.0.0_ga
0002 2.5.2 - Sumo sumo-tqma8x tqma8qxs-mb-smarc-2 v2018.03 rel_imx_4.14.78_1.0.0_ga rel_imx_4.14.78_1.0.0_ga
0001 2.4.4 - Rocko rocko-tqma8x tqma8qxs-mb-smarc-2 v2017.03 rel_4.9.88_imx_imx8qxp_beta2 rel_imx_4.9.88_imx8qxp_beta2

BSP / Hardware compatibility

TQMa8XxS
Rev.01xx Rev.02xx Rev.03xx
BSP Rev < 0028
BSP REV = 0028
BSP REV ≥ 0033

Tip: Get notified on new BSP release

Yocto Target Machines

TQMa8.BSP Revision Target machine
≥0038 tqma8xqps-mb-smarc-2
tqma8xqps-mb-smarc-2-r0200
tqma8xdps-mb-smarc-2
≥0033 tqma8xqps-mb-smarc-2
tqma8xqps-mb-smarc-2-r0200
0028 tqma8xqps-mb-smarc-2
≥0007 tqma8xps-mb-smarc-2
tqma8xds-mb-smarc-2
0006 tqma8xps-mb-smarc-2
0005 tqma8qxps-mb-smarc-2
≥0001 tqma8qxs-mb-smarc-2


BSP Version History

Rev.0087

BSP

  • Update to Yocto Kirkstone

U-Boot

  • Update imx-seco
  • Update imx seco-libs
  • Update imx-sc-firmware

Linux

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

Rev.0082

BSP

  • Update to Yocto Hardknott

Linux

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

Rev.0055

BSP

  • Support for Cortex M4 enabled bootstream
  • Update SCFW version: basic CortexM4 support for TQMa8Xx[S]
  • Allow building bootstream with Cortex M4 demo for TQ Systems SOM
  • Disable packages only relevant for NXP STK:
    • nxp8987 WiFi
    • imx-m[4,7]-demos

U-Boot

  • Add reserved memory nodes in DT to prevent U-Boot accessing M4 reserved memory
  • Fix location U-Boot config node in DT
  • Prevent voltage switch error message for e-MMC. This is not a real error but ugly behaviour which was fixed for other SOM before
  • Add GPIO_OPEN_DRAIN to I2C GPIO to prevent warnings (sync with kernel)
  • Fixed TQMa8XDPS board name handling
  • DSR support for Micron SPI NOR
  • I2C recovery gpio

Linux

  • Device trees for Cortex M4 demos
  • Add GPIO_OPEN_DRAIN to I2C GPIO to prevent warnings
  • Improve kernel config:
    • Remove ACPI
    • Remove unused audio stuff
    • Remove unused net devices
    • Enable Vision Components GmbH MIPI CSI cameras
  • DSR support for Micron SPI NOR
  • I2C recovery gpio

Rev.0038

BSP

  • Add support for new machine TQMa8XDPS

U-Boot

  • fix tqma8xxs_get_boardname for TQMa8DXPS again

Linux

  • Add support for TQMa8XDPS
  • I2C recovery gpio for TQMa8XxS
  • 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

BSP

  • Support for tqma8xdp[4]-mba8xx

U-Boot

  • Fix board name for TQMa8XDP[4]

Linux

  • Support for tqma8xdp[4]-mba8xx

Rev.0033

BSP

  • Initial production release for TQMa8XQPS
  • Prepare REV.0300 Support, support for REV.0200 moved to separate config (tqma8xqps-mb-smarc-2-r0200)
  • Drop support for imx-scu firmware v1.3.1
  • Drop support for imx-seco firmware v2.5.6

U-Boot

  • Fix not working update scripts when exchanging an SD card just before start updating
  • Allow DSR for Macronix SPI NOR on all supported TQ-Systems SOM

Linux

  • Cleanup LVDS support device trees
  • Add missing I2C GPIO recovery
  • Fix earlycon bootarg
  • Add support for LVDS AUO G133HAN.01 full HD panel
  • Allow DSR for Macronix SPI NOR on all supported TQ-Systems SOM
  • Enable VPU support
  • Add SMARC-2 GPIO
  • Add SMARC-2 DSI0 I2C
  • Add SMARC-2 LVDS1 with example
  • Add support for second UART

Rev.0028

BSP

  • Update to Yocto Zeus
  • Update to SCU firmware 1.3.1
  • Update to U-Boot v2019.04-lf-5.4.y-1.0.0
  • Update to Linux kernel lf-5.4.y-1.0.0
  • Support bootstream for FlexSPI
  • Support bootstream for mfgtool config

U-Boot

  • Display CPU info
  • Add mfgtool config
  • Single config for SD / e-MMC / FlexSPI Boot device

Linux

  • Added USB support
  • Added PCIe support

Rev.0017

BSP

  • Update to SCU firmware 1.2.10
  • added support for PMIC info in SCU firmware

U-Boot

  • added support for SCU PMIC info
  • added initial USB support
  • added support for module EEPROM readout

Linux

  • added initial USB support
  • fix QSPI NOR access for tqma8xxs

Rev.0016

  • Added LVDS Support
  • Added CAN Support
  • Updated to U-Boot v2018.03-rel_imx_4.14.98_2.2.0_ga
  • Updated to Linux Kernel rel_imx_4.14.98_2.2.0_ga

Rev.0007

  • TQMa8XDS support
  • CAN / Ethernet preconfigured via systemd service
  • Ethernet PHY LED config fix
  • Better reserved memory config for TQMa8XDS

Rev.0006

  • Rename configs / DT to reflect module name
  • SCU firmware with internal PCIe clk

Rev.0005

  • test network support in linux - support net boot (GBE0)

Rev.0002

  • port to yocto sumo

Rev.0001

  • initial release

SD / eMMC Image Partitioning

  • sector size 512 Byte
  • unpartitioned area: 8MiB (0x4000 sectors)
Offset Size Usage
0x00000 0x00001 sectors / 512 Byte MBR / Partition Table
0x00001 0x00040 sectors / 32 KiB bootstream
0x00800 0x00800 sectors / 4 MiB env
0x20800 0x20000 sectors / 64 MiB /boot
0x24000 - sectors / - MiB /rootFS

Target Machine: tqma8xdps-mb-smarc-2

System Images

Boot Device Symlink File
SD Card/eMMC tq-image-weston-tqma8xdps-mb-smarc-2.wic tq-image-weston-tqma8xdps-mb-smarc-2-<build_timestamp>.rootfs.wic

Bootloader Binaries

Boot Device Symlink File
SD/eMMC imx-boot imx-boot-tqma8xdps-mb-smarc-2-sd.bin-flash_spl

Linux Kernel Image

Symlink File
Image Image–5.10.74+git0+a988e804a1-r0-tqma8xdps-mb-smarc-2-<build_timestamp>.bin

Devicetree Blobs

Symlink Description
imx8dxp-tqma8xdps-mb-smarc-2.dtb Default
imx8dxp-tqma8xdps-mb-smarc-2-lvds0-tm070jvhg33.dtb Default with LVDS0 interface activated
imx8dxp-tqma8xdps-mb-smarc-2-lvds1-tm070jvhg33.dtb Default with LVDS1 interface activated
imx8dxp-tqma8xdps-mb-smarc-2-rpmsg.dtb Default with RPMSG support

Rootfs images

Symlink File
tq-image-weston-tqma8xdps-mb-smarc-2.ext4 tq-image-weston-tqma8xdps-mb-smarc-2-<build_timestamp>.rootfs.ext4
tq-image-weston-tqma8xdps-mb-smarc-2.tar.gz tq-image-weston-tqma8xdps-mb-smarc-2-<build_timestamp>.rootfs.tar.gz

Target Machine: tqma8xqps-mb-smarc-2

System Images

Boot Device Symlink File
SD Card/eMMC tq-image-weston-tqma8xqps-mb-smarc-2.wic tq-image-weston-tqma8xqps-mb-smarc-2-<build_timestamp>.rootfs.wic

Bootloader Binaries

Boot Device Symlink File
SD/eMMC imx-boot imx-boot-tqma8xqps-mb-smarc-2-sd.bin-flash_spl

Linux Kernel Image

Symlink File
Image Image–5.10.74+git0+a988e804a1-r0-tqma8xqps-mb-smarc-2-<build_timestamp>.bin

Devicetree Blobs

Symlink Description
imx8qxp-tqma8xqps-mb-smarc-2.dtb Default
imx8qxp-tqma8xqps-mb-smarc-2-lvds0-tm070jvhg33.dtb Default with LVDS0 interface activated
imx8qxp-tqma8xqps-mb-smarc-2-lvds1-tm070jvhg33.dtb Default with LVDS1 interface activated
imx8qxp-tqma8xqps-mb-smarc-2-rpmsg.dtb Default with RPMSG support

Rootfs images

Symlink File
tq-image-weston-tqma8xqps-mb-smarc-2.ext4 tq-image-weston-tqma8xqps-mb-smarc-2-<build_timestamp>.rootfs.ext4
tq-image-weston-tqma8xqps-mb-smarc-2.tar.gz tq-image-weston-tqma8xqps-mb-smarc-2-<build_timestamp>.rootfs.tar.gz

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 3F 1FC0 && mmc dev 0 && mmc write $loadaddr 3F 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 2070MB.

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

2070 * 1024 * 1024 = 2170552320
2170552320 / 512 = 4239360
4239360 = 40B000HEX

setenv rootblks16 0x205800

uboot command to start netboot

=> run netboot

1)
i.e. value for MACHINE variable