Embedded module TQMa6x - PTXdist Linux BSP documentation



Important Notes

Technical Note TQMa6x

CVE-2015-7547 --- glibc getaddrinfo() stack-based buffer overflow

BSP Overview


With BSP Revision 0109 the Linux kernel version changed from 3.16.7 to 4.1 The devicetree source & blob files for kernel 3.16.7 are not compatible to kernel 4.1 and vice versa.

BSP Rev. ≤ 0105

Naming convention

Device Tree Blobs
Several device tree blobs (.dtb files) are built by default, the resulting files are named as follows:
imx6<q|dl>-mba6x-<hdmi|lvds|multi|pd>.dtb
When building an sd card image, the HDMI enabled device tree blob is used by default.

Module (CPU) type
imx6q TQMa6Q | TQMa6D
imx6dl TQMa6DL | TQMa6S
Module revision
mba6x TQMa6x Rev.02xx Variant B | TQMa6x Rev.01xx
Display interface
hdmi HDMI only
lvds LVDS only
pd parallel display only
multi HDMI + LVDS + parallel display


Dependency matrix
File Module Starterkit
Mainboard
i.MX6Q i.MX6D i.MX6DL i.MX6S Revision 010x Revision 020x Ethernet Patch
imx6qdl-tqma6x.dtsi
imx6q-tqma6x.dtsi
imx6dl-tqma6x.dtsi
imx6qdl-mba6x.dtsi included
imx6q-mba6x.dts included
imx6dl-mba6x.dts included


Dependency graph

<div style="text-align:center;background-color:#E66A08;width:250px;height: 30px;">
<span style=";color:white;font-size:150%;">CPU specific files</span>
</div>
 
<div style=";margin-top:2px;text-align: center;background-color:#1D8EC6;width:250px;height: 30px;">
<span style="color:white;font-size:150%;">Module specific files</span>
</div>
 
<div style="margin-top:2px;text-align: center;background-color:#8F8F8F;width:250px;height: 30px;
">
<span style="color:white;font-size:150%;">Baseboard specific files</span></div>


BSP Rev. ≥ 0109

Naming convention

Device Tree Blobs
Several device tree blobs (.dtb files) are built by default, the resulting files are named as follows:
imx6<q|dl>-mba6<a|b>-<hdmi|lvds|multi|pd>.dtb
When building an sd card image, the HDMI enabled device tree blob is used by default.

Flat Image Tree (FIT)
Additionaly a FIT image (*.itb) is generated, which contains all device trees in a single file.

To select an individual DTB from this FIT you have to set the U-Boot variables fdt_type and fitfdt_part accordingly.

Module (CPU) type
imx6q TQMa6Q | TQMa6D
imx6dl TQMa6DL | TQMa6S
Module revision & variant
mba6a TQMa6x Rev.02xx Variant A & C
mba6b TQMa6x Rev.02xx Variant B | TQMa6x Rev.01xx
Display interface
hdmi HDMI only
lvds LVDS only
pd parallel display only
multi HDMI + LVDS + parallel display


Dependency matrix
File Module Starterkit
Mainboard
i.MX6Q i.MX6D i.MX6DL i.MX6S Revision 010x Revision 020x Ethernet Patch
imx6qdl-tqma6.dtsi
imx6qdl-tqma6a.dtsi
imx6qdl-tqma6b.dtsi
imx6q-tqma6.dtsi
imx6q-tqma6a.dtsi
imx6q-tqma6b.dtsi
imx6dl-tqma6.dtsi
imx6dl-tqma6a.dtsi
imx6dl-tqma6b.dtsi
imx6qdl-mba6.dtsi included
imx6qdl-mba6a.dtsi included
imx6qdl-mba6b.dtsi included
imx6q-mba6.dtsi included
imx6q-mba6a.dts included
imx6q-mba6b.dts included
imx6dl-mba6.dtsi included
imx6dl-mba6a.dts included
imx6dl-mba6b.dts included


Dependency graph


<div style="text-align:center;background-color:#E66A08;width:250px;height: 30px;">
<span style=";color:white;font-size:150%;">CPU specific files</span>
</div>
 
<div style=";margin-top:2px;text-align: center;background-color:#1D8EC6;width:250px;height: 30px;">
<span style="color:white;font-size:150%;">Module specific files</span>
</div>
 
<div style="margin-top:2px;text-align: center;background-color:#8F8F8F;width:250px;height: 30px;
">
<span style="color:white;font-size:150%;">Baseboard specific files</span></div>


Bootloader


U-Boot

Supported Features
Buildsystem BSP Revision
PTXdist
Yocto
Feature BSP Revision Remarks
TQ Product Chip Interface Function 0105 0109 0110 0113 0114 0115 0118 0119 0120
TQMa6x i.MX6 Ethernet RGMII (10/100/1000 Mbit/s)
TQMa6x i.MX6 GPIO custom config on request
TQMa6x i.MX6 I²C EEPROM, Temperature Sensors
TQMa6x i.MX6 IIM / Fuse on request
TQMa6x i.MX6 SPI SPI NOR Flash
TQMa6x i.MX6 UART2 RS232 default console
TQMa6x i.MX6 uSDHC eMMC / SD-Card SD card / eMMC
TQMa6x i.MX6 Devicetree FIT image see How-To

Supported boot devices

Boot device supported
eMMC / SD boot
TFTP boot
SPI NOR boot


Operating System


Linux

Supported Features
Buildsystem BSP Revision
PTXdist
Yocto
Feature BSP Revision Remarks
TQ Product Chip Interface Function Pre-Release 0100 0101 0104 0105 0109 0110 0113 0114 0115 0118 0119 0120
TQMa6x i.MX6 AUD3 TLV320AIC3204 AudioCodec
i.MX6 EIM Bus access driver support / no device on MBa6x
i.MX6 ENET RGMII (10/100/1000 Mbit/s) MBa6x Rev. ≥ 0102 required
i.MX6 FLEXCAN1 CAN 2.0B BSP Rev. ≤ 0100:
bitrate is not set as correctly
i.MX6 FLEXCAN2 CAN 2.0B
i.MX6 GPIO BSP Rev. ≥ 0104: available via sysfs
i.MX6 GPIO1_IO21 Buzzer BSP Rev. ≤ 0101
BSP Rev. ≥ 0104
i.MX6 GPU2D Hardware Acceleration BSP Rev. ≥ 0105
or
kernel 3.10.17-fsl required

tested resolution 1366×768
For using GPU see How To
i.MX6 GPU3D Hardware Acceleration BSP Rev. ≥ 0105
or
kernel 3.10.17-fsl required

tested resolution 1366×768
For using GPU see How To
i.MX6 HDMI HDMI known limitations
For Freescale kernel see How To
i.MX6 I2C1 I2C devices see supported onboard I2C devices
i.MX6 I2C3 I2C devices see supported onboard I2C devices
i.MX6 IPU1 Parallel LCD displays supported
i.MX6 JTAG
i.MX6 LDB LVDS displays supported
i.MX6 PCIe Device Discovery BSP Rev. 0104 TQMa6D/Q support
i.MX6 PWM1 Backlight Dimming MBa6x Rev. ≥ 0200 required
i.MX6 SATA Serial ATA 3.0 TQMa6Q and TQMa6D only
i.MX6 SPDIF Digtal Audio availabe at X30.10/12 on MBa6x
i.MX6 SPI1 Bus access BSP Rev. ≥ 0104:
SS2 configured for spidev, SS3 prepared for usage (pin-multiplexing)
i.MX6 SPI1 NOR flash /dev/mtd0
i.MX6 SPI5 Bus access TQMa6Q only
BSP Rev. ≥ 0104:
SS1 configured for spidev
i.MX6 TEMPMON
i.MX6 UART1 not available on MBa6x
i.MX6 UART2 RS232 default console
i.MX6 UART3 TTL
i.MX6 UART4 RS485 RS485 mode for UART is only available in Linux kernel ≥ 4.1
i.MX6 UART5 TTL
i.MX6 USB_OTG Host
i.MX6 USB_OTG OTG
i.MX6 USB_UH1 USB2517
i.MX6 USB_UH2 not available on MBa6x
i.MX6 USB_UH3 not available on MBa6x
i.MX6 uSDHC SD(HC)-Card
sd2 SD card
sd3 eMMC
see issues for known limitations
i.MX6 VPU Hardware Acceleration For using VPU see How To
MBa6x TLV320AIC3204 Audio Codec Headphone Out / Line Out selectable using solder straps on MBa6x
Line In
Microphone In
LAN9500 ENET 10/100 Mbit/s BSP Rev. ≤ 0101
BSP Rev. ≥ 0104
GPIO GPIO Key configured as input device
LED LED LED MBa6x Rev. ≥ 0200 required
USB2517 USB1 LAN9500 MBa6x Rev. ≥ 0102 required
USB2517 USB2 Host
USB2517 USB3 Host
USB2517 USB4 Host
USB2517 USB5 Host
USB2517 USB6 Host
USB2517 USB7 tested with ilitek touchcontroller

Onboard I2C Devices

TQMa6x / MBa6X

TQMa6x Rev.01xx / TQMa6x Rev.02xx Variant B

I2C bus TQMa6x
I2C3 0x08
PMIC
0x48
LM75
0x50
EEPROM
I2C bus MBa6x
I2C1 0x18
Audiocodec
I2C3 0x49
LM75
0x57
EEPROM
0x68
RTC

TQMa6x Rev.02xx and 04xx Variant A / C

I2C bus TQMa6x MBa6x
I2C1 0x08
PMIC
0x48
LM75
0x50
EEPROM
I2C bus MBa6x
I2C1 0x18
Audiocodec
0x49
LM75
0x57
EEPROM
0x68
RTC
i.MX6 AUD3 I2S t.b.d
i.MX6 I2S AudioCodec t.b.d

Changelog


BSP Version History

REV.0120

Build tools

  • PTXdist 2020.01.0
  • OSELAS.Toolchain-2019.09.1

BSP

  • Update Copyright
  • Update README
  • Update to Linux kernel 5.15.27 and 5.15.27-rt35
  • Update asound.state for Linux kernel 5.15
  • Remove unused U_BOOT_FSL_*_URL

REV.0119

Build tools

  • PTXdist 2020.01.0
  • OSELAS.Toolchain-2019.09.1

BSP

  • Update asound.state for MBa6x
  • Remove patches and rules of unused versions
  • Remove now unneeded QSPI header recipes and configs
  • Update mainline kernel to v5.4.39
  • Add option to load tq mainline kernel[-rt]
  • Remove tqma6x-fsl config

U-Boot

  • Add support for 2GB variant
  • Enable memtest by default
  • Backport FAT patches from upstream this is needed, to prevent fat write errors.
    Seems the errors are showed up after update to newer gcc
  • Enable md5 hash and license command

REV.0114

Build tools

  • PTXdist 2019.01.0
  • OSELAS.Toolchain-2018.02.0

BSP

  • Fix udev in tiny config
  • Qt5: backport patch for webengine support
  • Resize rootfs to 512 MiB
  • Disable gst-plugins-ugly (license restrictions)
  • Disable netperf (license restrictions)
  • Fix reboot with NFS root under systemd
  • Drop support for ptx-canutils except canconfig
  • Enable iproute2
  • Preconfigure can interfaces
  • Configure SDMA support as kernel module to enable firmware from rootfs
  • Enable libcurl with http support
  • Remove support for kmsfb
  • Rewrite sys-config to use ip to configure can
  • enable ntpdate and ntptime
  • enable screen

U-Boot 2017.11 Mainline

  • fix using wrong mmc env dev in U-Boot

Linux4.14.78

  • Fix LVDS support
  • Remove Chimei 10“ LVDS display with EGTOUCH support (not longer available)
  • Add support for TIANMA TM070JVHG33
  • Fix missing CONFIG_VT for kernel
  • Enable DRM panel driver

REV.0113

Build tools

  • PTXdist 2018.05
  • OSELAS.Toolchain-2018.02.0

U-Boot 2017.11 Mainline

  • Support for TQMa6DP/QP

Linux4.14.69

  • Etnaviv open source GPU support
  • UART fixes (in case of problems backports from newer kernel may help)
  • CSI as staging driver (not tested)
  • ENET FEC fixes
  • improved VPU support
  • CAAM Crypto

Userland

  • upgrade mmc utils
  • u-boot fw_env SPI NOR locking fix
  • gstreamer upgrade
  • Qt 5.6.3 fixes
  • wayland support
  • systemd upgrade

REV.0110

U-Boot 2015.04 Mainline

  • add support for module revision 04xx except TQMa6DP and TQMa6QP
  • eMMC 5.1 support
  • changed eMMC / SD boot command for firmware partition
  • mmc commands for mlc to pseudo slc conversion
  • mmc command dsr value
  • spi nor 4k sector support disabled
  • automatic device tree selection if device tree is not configured in U-Boot environment
  • eMMC boot partition support

U-Boot-FSL 2016.03 (rel_imx_4.1.15_2.0.0_ga)

  • add support for module revision 04xx including TQMa6DP and TQMa6QP
  • eMMC 5.1 support
  • changed eMMC / SD boot command for firmware partition
  • mmc command dsr value
  • mmc commands for mlc to pseudo slc conversion
  • eMMC boot partition support
  • spi nor 4k sector support disabled
  • automatic device tree selection if device tree is not configured in U-Boot environment

Linux 3.16

  • add support for module revision 04xx except TQMa6DP and TQMa6QP
  • updated SDMA firmware for audio
  • SDMA driver update
  • backport bugfixes
  • optimized kernelconfig

Linux 4.1 Mainline

  • Support for module revision 04xx except TQMa6DP und TQMa6QP
  • Patches für sdma (devicetree for ssififo has to be selected in PTXdist platformconfig)
  • Backport bugfixes
  • Update Vivante GPU treiber to 5.0.11.p7 + patches
  • Optimized kernelconfig

Linux rel_imx_4.1.15_2.0.0_ga

  • 4.1.15 Module support 04xx including TQMa6xDP and TQMa6xQP

Userland

  • systemd 230
  • kmsfb for compatibility of the Vivante GPU Treiber with linux mainline kernel
  • Qt 5.6.2

Userland FSL

  • gstreamer-imx plugins
  • gstreamer imx 0.12.3

REV.0109

Build tools

  • Changed: PTXdist 2015.05

Userland

  • Fixed: Buildrules für Qt5
  • Added: gstreamer 1.6

U-Boot

  • Changed: U-Boot 2015.04
  • Added: Support for TQMa6x Rev. 020x and Rev.10x
  • Added: Support for on-die temperature sensor
  • Added: Support for Devicetree in FIT-Image

Linux kernel

  • Changed: Default kernel 4.1.6 (longterm)
  • Added: Extra kernel 4.1.5 w/ RT-Patches
  • Changed: Kernel 3.16.7 support for TQMa6x Rev.02xx
  • Added: VPU Support
  • Added: Support for IPU Scaler
  • Added: PowerOff driver

REV.0105

Buildenvironment

  • ptxdist-2014.11
  • OSELAS.Toolchain-2013.12.2

U-Boot 2014.04

  • TQMa6L support
  • SPI CS used for Touch IRQ line in case of parallel display will not be configured as GPIO out
  • Name of legacy fbdev configurable via env so support older kernels

Linux 3.16.7

  • Port to 3.16.7
  • Support for TQMa6L
  • Port GPU support from Freescale 3.10.17
  • PCIe Support for TQMa6S/L
  • Add Devicetree for dual LVDS with AUO panels

RootFS

  • Qt4.8 → Qt5.3.2
  • GPU binaries from Freescale
  • Updates for packages (ptxdist update)
  • GPU SDK and examples (usable for NFS root)
  • Qt5 examples (usable for NFS root)