This is an old revision of the document!



Embedded module TQMa6x - PTXdist Linux BSP documentation



We suggest to read the following page before you proceed with this page
1. preparing Development Host

We suggest to build the BSP with the default configuration for the fist time.

1. The manual is your friend. See Downloads where to get it.
2. See the README in your BSP root folder

PTXdist 2016.04.0                Build System for Embedded Linux Systems

  ptxdist <action [args]> [options]

Setup and Project Actions:

  menu				enter main control menu

  setup				setup per-user preferences
  boardsetup			setup per-board preferences

  projects			show available projects
  clone <from> <to>		create a new project, cloned from <from>.

  nconfig
  menuconfig			configure the project's filesystem

  menuconfig kernel
  kernelconfig			configure the kernel

  menuconfig platform
  platformconfig		configure the platform

  menuconfig collection		configure the collection
...

To configure the system (e.g. add additional packages) you can start the PTXdist menu:

$ ptxdist menu

PTXdist menu

To add additional packages to your root filesystem simply use the ptxdist tool. The ncurses based UI is the same that is used by the linux kernel with “make menuconfig”. It can be used the following way:

  • use the up / down arrow keys to navigate in the menu
  • use the left / right arrow keys to navigate between buttons
  • select / deselect packages and options using the SPACE key
  • enter submenus or press buttons using the ENTER key

Dependencies between packages should be automagically resolved. Software is organized in sections.

First of all you need to choose for which platform you want to build and which userland configuration should be used.
The commands in the following sections have to be executed within the BSP root directory.

Third-Party Add-Ons

Board Support Packages

Product URL list

Starterkit

Important Notes

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

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

U-Boot

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

Kernel

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

FAQ

PTXdist

PTXdist BSP Version Matrix

Flat Devicetree

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>

PTXdist 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)

DevHost

Build BSP

PTXdist Platform

Configuration

The BSP provides helper scripts for automatic configuration according to the following table:

Platform Configuration Command
MBa6x linux/mainline ¦ systemd init ¦ Qt5 tools/config-mba6x
linux/mainline ¦ busybox init tools/config-mba6x.tiny

Example:

$ tools/config-mba6x

This will effectively do

  • check for the configured ptxdist version
  • create a symlink to the configured ptxdist version (./p/usr/local/bin/ptxdist-<version>)
  • call ./p platform configs/platform-tq-tqma6x[-fsl]/mba6x/platformconfig
  • call ./p select configs/<ptxconfig>

For manual configuration please refer to ./p –help and use the platformconfig and ptxconfig.* files listed in the table above.

Example:

$ ptxdist platform configs/platform-tq-tqma6x/mba6x/platformconfig
$ ptxdist select configs/platform-tq-tqma6x/ptxconfig.qt5
Build

Finally, to build the BSP and create the image files simply execute

$ ./p images

or (in case of a manual configuration)

$ ptxdist images
Older BSP Revisions

Instructions for older BSP revisons

Adapt BSP

Partition scheme

Changing the partition scheme may affect the boot loader update capability and / or the kernel command line parameters!

SD / eMMC images

SD / eMMC Image

BSP Revision ≥ 110

  • sector size 512 Byte
  • unpartitioned area: 4MiB (0x2000 sectors)
Sector Size Usage
0x00000 … 0x000000 0x0001 sector / 512 Byte MBR / Partition Table
0x00001 … 0x000001 0x0001 sector / 512 Byte reserved for ROM loader 1)
0x00002 … 0x0007FF 0x07FE sectors / 1023 KiB u-boot
0x00800 … 0x000FFF 0x0800 sectors / 1MiB environment 2)
0x01000 … 0x001FFF 0x1000 sectors / 2 MiB free
0x02000 … 0x00BFFF 0xA000 sectors / 20 MiB boot /firmware (Kernel,devicetrees)
0x0C000 … 0x08BFFF 0x80000 sectors / 256 MiB root
0x8C000 … 0x10BFFF 0x80000 sectors / 256 MiB spare, unformated

1) See CPU reference Manual. This sector can be used for Redundant Boot Support
2) Environment organisation:

  • configured environment size: 8kiB (16 Sectors)
  • environment type: redundand
  • primary environment (sectors): 0x0800 … 0x080f (0x100000 … 0x101fff)
  • redundand environment (sectors): 0x0810 … 0x081f (0x102000 … 0x103fff)

BSP Revision ≤ 109

Sector Size Usage
0x0000 … 0x0000 0x0001 sector / 512 Byte MBR / Partition Table
0x0001 … 0x0001 0x0001 sector / 512 Byte reserved for ROM loader 1)
0x0002 … 0x07ff 0x07fe sectors / 1023 KiB u-boot
0x0800 … 0x0fff 0x0800 sectors / 1MiB environment 2)
0x1000 … 0x17ff 0x0800 sectors / 1MiB device tree blob

1) See CPU reference Manual. This sector can be used for Redundant Boot Support
2) Environment organisation:

  • configured environment size: 8kiB (16 Sectors)
  • environment type: redundand
  • primary environment (sectors): 0x0800 … 0x080f (0x100000 … 0x101fff)
  • redundand environment (sectors): 0x0810 … 0x081f (0x102000 … 0x103fff)
  • partitioned area:
Partition Size Usage
1 4 MiB Kernel image
2 256 MiB root FS
3 256 MiB Spare, not formatted
4 —- —-

The partition scheme is defined using the config file <BSP_ROOT>config/platform-tq-mba6x/config/images/uboot-hd.config. The creation of the image is controlled using the PTXdist packages image-uboot-tqma6<q|s>-hd.make, these packages are located at <BSP_ROOT>/configs/platform-tq-mba6x/rules/.

To create the image the genimage host tool is used. This tool is automatically selected and built. You can find the build directory under <BSP_ROOT>/platform-MBa6x/build-host/genimage. There is also a README file documenting how to use this tool.

SPI NOR

SPI NOR

  • sector size 64 KiB
Sector Size Usage
0x0000 … 0x0007 0x0008 sectors / 512 KiB U-Boot *)
0x0008 … 0x0008 0x0001 sector / 64 KiB environment0
0x0009 … 0x0009 0x0001 sector / 64 KiB environment1
0x000b … 0x000f 0x0005 sectors / 320 KiB devicetree
0x0010 … 0x0070 0x0060 sectors / 6 MiB Kernel

PTXdist Deployment

Create SD Card with BSP Image

To install a new firmware use SD cards. To copy the built images on the host system to a connected card type:

$ cd <BSP project>/platform-<platform_name>/images
$ sudo dd if=u-boot_<mod_name>_hd.img of=/dev/sdf bs=1M conv=fsync #Assuming the SD card is assigned to /dev/sdf

You have to use the raw device of the SD card not a partition!

To find out what device file the SD card has, type “dmesg” after you connect the card to see the system messages. At the bottom you'll see some “Attached scsi …” messages along with something like:

[ 8197.588395]  sdf: sdf1

Updating existing firmware over ethernet


To update bootloader / kernel / devicetree in a running system you have to copy the images in your tftp directory and upload them to the eMMC or SD Card.

Please see How to setup TFTP Server

1. Boot from eMMC or SD and stop autoboot in U-Boot

Hit any key to stop autoboot:  0
=>


2. Set U-Boot variable mmcdev according to the drive you want to write to

=> setenv mmcdev <Nr.>

Device assignment:
mmcdev 0 = eMMC
mmcdev 1 = SD Card

3. Connect device via ethernet to a tftp server supplying the image
4. Provide the correct network configuration in U-Boot:

  • ⇒ setenv autoload no
  • ⇒ setenv serverip <serverip> (e.g.: setenv serverip 192.168.100.110)
  • ⇒ setenv ipaddr <ipaddr> (e.g.: setenv ipaddr 192.168.100.111)
  • ⇒ setenv netmask <netmask> (e.g.: setenv netmask 255.255.255.0)


5. Provide U-Boot the file name of the desired image on the tftp server:

  • For U-Boot update: ⇒ setenv uboot <filename>
  • For Device Tree update: ⇒ setenv fdt_file <filename>
  • For Kernel update: ⇒ setenv zimage <filename>


6. Perform Update:

  • U-Boot update: ⇒ run update_uboot
  • Device Tree update: ⇒ run update_fdt
  • Kernel update: ⇒ run update_kernel

The u-boot update scripts automatically implement the selection of the primary copy to boot.



Copy Firmware from SD card to eMMC using U-Boot
  • Write Image to SD card (use dd command under linux or Win32diskImager under Windows)
  • Set Starterkit to boot from SD, please see DIP Switch Settings
  • Interrupt the boot process to get to the U-Boot prompt
  • Use the following command to copy the SD card to eMMMC
Generic command
 
mmc dev 1 && mmc rescan && mmc read ${loadaddr} 0 (number of blocks)  && mmc dev 0 && mmc rescan && mmc write ${loadaddr} 0 (number of blocks)

You have to set the number of blocks according to the image size to read entire data that is stored on the SD card and write the same number of blocks to the eMMC.
Formula to calulate the number of blocks
Size of SD card image in bytes / 512. Convert the result to a hex value.
Since the data is stored in the SDRAM on the module the size of the image must not exeed the size of the SDRAM.

Example for precompiled SD card image included in BSP Rev.0109


Copy rootfs from SD card to eMMC

The rootfs is located in the second partition of the SD card/eMMC please see Partition Scheme

example for TQMa6Q

dd if=/dev/mmcblk0p2 of=/dev/mmcblk1p2 bs=1M

please keep in mind to resize the eMMC rootfs partition,
if the rootfs size was changed in BSP configuration

Using NFS boot
Prerequisites

To boot the TQMa6x from network you need a working bootloader in eMMC/SD-card or SPI-NOR (placement option on TQMa6x) which is able to get the kernel image over tftp and to provide the kernel with commandline settings for NFS.
The dtb-file and kernel image have to be provided via tftp and the rootfs via nfs.

Configuration of U-Boot Environment

The bootloader environment needs to be modified to work with your tftp-server and your nfs-server.

  • setenv autoload no
  • setenv serverip <serverip> (e.g.: setenv serverip 192.168.100.1)
  • setenv ipaddr <ipaddr> (e.g.: setenv ipaddr 192.168.0.10)
  • setenv netmask <netmask> (e.g.: setenv netmask 255.255.255.0)
  • setenv rootpath <rootpath> (NFS share has to set in /etc/exports on the Computer that runs the NFS server first)
  • setenv fdt_file <fdt_file> (name of devicetree file to be downloaded from the tftp server)
  • setenv zimage <zimage> (name of the Linux kernel image to be downloaded from the tftp server)


TQMa6x serial downloader

You have to set the Starterkit to boot-mode “serial downloader”, please see MBa6x DIP switch settings

We recommend to use Ubuntu 14.04 64bit for the imx-usb tool

Starting with TQMa6x-BSP-REV.0109 we deliver a Linux tool to upload U-Boot into the TQMa6X RAM from your development host and start it. After building the BSP the tool is located under
…/TQMa6x-BSP-REV.0109/platform-MBa6x/packages/h-imx_usb_loader-master

You have to apply the following steps before you can start to work with the tool:

  • Copy the content of folder …/TQMa6x-BSP-REV.0109/platform-MBa6x/packages/host-imx_usb_loader-master/usr/etc/ to /etc
  • Copy the content of folder …/TQMa6x-BSP-REV.0109/platform-MBa6x/packages/host-imx_usb_loader-master/usr/bin/ to /bin
Usage of serial downloader tool
  1. Set Starterkit to boot-mode “serial downloader”, please see MBa6x DIP switch settings
  2. Connect Starterkit connector X8 (Micro USB cable provided with the Starterkit) to your host
  3. Connect Starterkit connector X15 (RS232) to your host
  4. Power up Starterkit
  5. Please check that Linux recognized a new USB device, see output of command dmesg | grep -i usb. You should see something like the following :
    usb 1-1: Manufacturer: Freescale SemiConductor Inc 
    hid-generic 0003:15A2:0054.0002: hiddev0,hidraw1: USB HID v1.10 Device [Freescale SemiConductor Inc  SE Blank ARIK] on usb-0000:02:03.0-1/input0
  6. Open a serial terminal on your host e.g. TeraTerm
  7. Open a Linux terminal and naviagate to folder “images” in the BSP dirctory
    e.g. /home/embedded/TQMa6x-BSP-REV.0109/platform-MBa6x/images
  8. Start the serial downloader imx_usb as super user with the desired U-Boot as parameter

    Keep in mind to select a U-Boot that is corresponding to your module, please see deployment

    e.g.

    embedded@ubuntu:~/workspace/TQMa6x-BSP-REV.0109/platform-MBa6x/images$ sudo imx_usb u-boot-TQMa6Q_MBa6x.imx

    host console output after starting the serial downloader

    config file </etc/imx-loader.d/imx_usb.conf>
    vid=0x066f pid=0x3780 file_name=mx23_usb_work.conf
    vid=0x15a2 pid=0x004f file_name=mx28_usb_work.conf
    vid=0x15a2 pid=0x0052 file_name=mx50_usb_work.conf
    vid=0x15a2 pid=0x0054 file_name=mx6_usb_work.conf
    vid=0x15a2 pid=0x0061 file_name=mx6_usb_work.conf
    vid=0x15a2 pid=0x0063 file_name=mx6_usb_work.conf
    vid=0x15a2 pid=0x0041 file_name=mx51_usb_work.conf
    vid=0x15a2 pid=0x004e file_name=mx53_usb_work.conf
    vid=0x15a2 pid=0x006a file_name=vybrid_usb_work.conf
    vid=0x066f pid=0x37ff file_name=linux_gadget.conf
    config file </etc/imx-loader.d/mx6_usb_work.conf>
    parse /etc/imx-loader.d/mx6_usb_work.conf
    15a2:0054(mx6_qsb) bConfigurationValue =1
    Interface 0 claimed
    HAB security state: development mode (0x56787856)
    == work item
    filename u-boot-TQMa6Q_MBa6x.imx
    load_size 0 bytes
    load_addr 0x00000000
    dcd 1
    clear_dcd 0
    plug 1
    jump_mode 2
    jump_addr 0x00000000
    == end work item
    main dcd length 308
    sub dcd length 304
    
    loading binary file(u-boot-TQMa6Q_MBa6x.imx) to 4fbff400, skip=0, fsize=5cc00 type=aa
    
    <<<379904, 379904 bytes>>>
    succeeded (status 0x88888888)
    jumping to 0x4fbff400
  9. Now you can see the U-Boot messages in the serial terminal programm

Next steps are:

PTXdist Images

Finally, you will find the built images in platform-<platformname>/images.

All images are intended for the usage on a STKa6x.

platform-tq-mba6x

Complete system images

The complete system images are intended for:

  • development system initialisation
  • deployment
SD Card/eMMC
uboot_tqma6s_hd.img TQMa6S
uboot_tqma6dl_hd.img TQMa6U
uboot_tqma6q_hd.img TQMa6Q and TQMa6D
uboot_tqma6qp_hd.img TQMa6QP and TQMa6DP
Bootloader images
SD Card/eMMC
u-boot-mba6s-mmc.imx TQMa6S
u-boot-mba6dl-mmc.imx TQMa6U
u-boot-mba6q-mmc.imx TQMa6D and TQMa6Q
u-boot-mba6qp-mmc.imx TQMa6DP and TQMa6QP
SPI NOR Flash
u-boot-mba6s-spi.imx TQMa6S
u-boot-mba6dl-spi.imx TQMa6U
u-boot-mba6q-spi.imx TQMa6Q and TQMa6D
u-boot-mba6qp-spi.imx TQMa6DP and TQMa6QP
Linux kernel images
linuximage Kernel (zImage)
linuximage-rt Kernel (zImage) with realtime patches
Devicetree images
TQMa6DP and TQMa6QP on MBa6x
imx6qp-mba6b.dtb without display configuration
imx6qp-mba6b-dmb-ct21.dtb parallel/LCD display DMB S070WS12H-O-CT21/S070PWS19HP-FC21
imx6qp-mba6b-dmb-ct44.dtb parallel/LCD display DMB S070WV106H-CT44/S070SWV29HG-DC44
imx6qp-mba6b-glyn-etm0700g0dh6.dtb.dtb parallel/LCD display GLYN ETM0700G0DH6
imx6qp-mba6b-glyn-etm0700g0edh6.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6qp-mba6b-multi.dtb LVDS + HDMI display
imx6qp-mba6b-lvds.dtb LVDS display CHI MEI G104X1
imx6qp-mba6b-lvds-tm070jvhg33.dtb LVDS display Tianma TM070JVHG33
imx6qp-mba6b-hdmi.dtb HDMI interface activated
imx6qp-mba6b-otg.dtb USB OTG support
TQMa6D and TQMa6Q on MBa6x
imx6q-mba6a.dtb without display configuration
imx6q-mba6a-dmb-ct21.dtb parallel/LCD display DMB S070WS12H-O-CT21/S070PWS19HP-FC21
imx6q-mba6a-dmb-ct44.dtb parallel/LCD display DMB S070WV106H-CT44/S070SWV29HG-DC44
imx6q-mba6a-glyn-etm0700g0dh6.dtb parallel/LCD display GLYN ETM0700G0DH6
imx6q-mba6a-glyn-etm0700g0edh6.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6q-mba6a-multi.dtb LVDS + HDMI display
imx6q-mba6a-lvds.dtb LVDS display CHI MEI G104X1
imx6q-mba6a-lvds-tm070jvhg33.dtb LVDS display Tianma TM070JVHG33
imx6q-mba6a-hdmi.dtb HDMI interface activated
imx6q-mba6a-otg.dtb USB OTG support
imx6q-mba6b.dtb without display configuration
imx6q-mba6b-dmb-ct21.dtb parallel/LCD display DMB S070WS12H-O-CT21/S070PWS19HP-FC21
imx6q-mba6b-dmb-ct44.dtb parallel/LCD display DMB S070WV106H-CT44/S070SWV29HG-DC44
imx6q-mba6b-glyn-etm0700g0dh6.dtb parallel/LCD display GLYN ETM0700G0DH6
imx6q-mba6b-glyn-etm0700g0edh6.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6q-mba6b-multi.dtb LVDS + HDMI display
imx6q-mba6b-lvds.dtb LVDS display CHI MEI G104X1
imx6q-mba6b-lvds-tm070jvhg33.dtb
imx6q-mba6b-hdmi.dtb HDMI interface activated
imx6dl-mba6a-otg.dtb USB OTG support
TQMa6S and TQMa6U on MBa6x
imx6dl-mba6a.dtb without display configuration
imx6dl-mba6a-dmb-ct21.dtb parallel/LCD display DMB S070WS12H-O-CT21/S070PWS19HP-FC21
imx6dl-mba6a-dmb-ct44.dtb parallel/LCD display DMB S070WV106H-CT44/S070SWV29HG-DC44
imx6dl-mba6a-glyn-etm0700g0dh6.dtb parallel/LCD display GLYN ETM0700G0DH6
imx6dl-mba6a-glyn-etm0700g0edh6.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6dl-mba6a-multi.dtb LVDS + HDMI display
imx6dl-mba6a-lvds.dtb LVDS display CHI MEI G104X1
imx6dl-mba6a-lvds-tm070jvhg33.dtb
imx6dl-mba6a-hdmi.dtb HDMI interface activated
imx6dl-mba6a-otg.dtb USB OTG support
imx6dl-mba6b.dtb without display configuration
imx6dl-mba6b-dmb-ct21.dtb parallel/LCD display DMB S070WS12H-O-CT21/S070PWS19HP-FC21
imx6dl-mba6b-dmb-ct44.dtb parallel/LCD display DMB S070WV106H-CT44/S070SWV29HG-DC44
imx6dl-mba6b-glyn-etm0700g0dh6.dtb parallel/LCD display DMB S070WV106H-CT44/S070SWV29HG-DC44
imx6dl-mba6b-glyn-etm0700g0edh6.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6dl-mba6b-multi.dtb LVDS + HDMI display
imx6dl-mba6b-lvds.dtb LVDS display CHI MEI G104X1
imx6dl-mba6b-lvds-tm070jvhg33.dtb
imx6dl-mba6b-hdmi.dtb HDMI interface activated
imx6dl-mba6a-otg.dtb USB OTG support
Rootfs images
root.tgz Root file system archive (for NFS etc.)
root.ext2 Root file system partition image (for system update)
Firmware images
firmware.tgz firmware image contains all devicetree blobs and linux kernel image
firmware.img firmware image archive (for firmware image creation)

platform-tq-mba6x-fsl

Complete system images

The complete system images are intended for:

  • development system initialisation
  • deployment
SD Card/eMMC
uboot_tqma6s_hd.img TQMa6S
uboot_tqma6dl_hd.img TQMa6U
uboot_tqma6q_hd.img TQMa6Q and TQMa6D
uboot_tqma6qp_hd.img TQMa6QP and TQMa6DP
Bootloader image
SD Card/eMMC
u-boot-fsl-mba6s-mmc.imx TQMa6S
u-boot-fsl-mba6sdl-mmc.imx TQMa6U
u-boot-fsl-mba6q-mmc.imx TQMa6Q and TQMa6D
u-boot-fsl-mba6qp-mmc.imx TQMa6QP and TQMa6DP
SPI NOR Flash
u-boot-fsl-mba6s-spi.imx TQMa6S
u-boot-fsl-mba6dl-spi.imx TQMa6U
u-boot-fsl-mba6q-spi.imx TQMa6Q and TQMa6D

Linux kernel images:

linuximage Kernel (zImage)
Devicetree images
TQMa6D and TQMa6Q on MBa6x
imx6q-mba6a.dtb without display configuration
imx6q-mba6a-pd.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6q-mba6a-multi.dtb LVDS + HDMI display
imx6q-mba6a-lvds.dtb LVDS display CHI MEI G104X1
imx6q-mba6a-hdmi.dtb HDMI interface activated
imx6q-mba6b.dtb without display configuration
imx6q-mba6b-pd.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6q-mba6b-multi.dtb LVDS + HDMI display
imx6q-mba6b-lvds.dtb LVDS display CHI MEI G104X1
imx6q-mba6b-hdmi.dtb HDMI interface activated
TQMa6S and TQMa6U on MBa6x
imx6dl-mba6a.dtb without display configuration
imx6dl-mba6a-pd.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6dl-mba6a-multi.dtb LVDS + HDMI display
imx6dl-mba6a-lvds.dtb LVDS display CHI MEI G104X1
imx6dl-mba6a-hdmi.dtb HDMI interface activated
imx6dl-mba6b.dtb without display configuration
imx6dl-mba6b-pd.dtb parallel/LCD display GLYN ETM0700G0EDH6
imx6dl-mba6b-multi.dtb LVDS + HDMI display
imx6dl-mba6b-lvds.dtb LVDS display CHI MEI G104X1
imx6dl-mba6b-hdmi.dtb HDMI interface activated

Rootfs images:

root.tgz Root file system archive (for NFS etc.)
root.ext2 Root file system partition image (for system update)

Firmware images:

firmware.tgz firmware image contains all devicetree blobs and linux kernel image
firmware.img firmware image archive (for firmware image creation)

TQ Board Support Packages

The Board Support Packages (BSPs) usually provide source code as well as precompiled images for one or more platforms.
Please see the version matrix for details on each revision of the BSP.

TQMa6x BSP Rev.0120☚ current revision
MD5SUM:C995D29F59A5C57A5C7CD525ACD73CC5

Build System / Toolchains

Known Issues PTXdist

Yocto

Yocto BSP Version Matrix

Yocto Target Machines

TQMa6x.BSP Revision Target machine
≥0120 tqma6s-mba6x
tqma6dl-mba6x
tqma6q-mba6x
tqma6q-2gb-mba6x
tqma6qp-mba6x


BSP Version Matrix

BSP Revision ci-meta-tq release Yocto Project / Poky Release Target machine1) U-Boot Linux Kernel
0120 hardknott 3.3.3 Hardknott tqma6s-mba6x
tqma6dl-mba6x
tqma6q-mba6x
tqma6q-2gb-mba6x
tqma6qp-mba6x
rel_imx_4.1.15_2.0.0_ga linux-stable 5.15
linux-imx-fslc 5.10

Yocto Changelog

Known Issues Yocto

(Deployment)

U-Boot

Bootloader

Supported features


Supported boot devices

Operating System

Onboard I2C devices

Kernel

FAQ

Deployment

U-Boot

Kernel

FAQ

Deployment

PTXdist downloads some packages. If it reports some errors please

  • verify your internet connection or proxy settings.
  • make sure the package source is correct. Some package source pages will change from time to time.
    (You can always try to download the source package manually and copy it to your package pool (by default: <BSP project>\src))
  • some packages like bootloaders and kernels where you can select versions need to know about their hash sums. You have to calculate them using md5sum and enter the correct hash in the ptxdist configuration.
  • run
    $ ptxdist get

1)
i.e. value for MACHINE variable