This is an old revision of the document!


Entry Page

Third-Party Add-Ons

Board Support Packages

Hardware

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

I2C bus TQMa6x MBa6x
I2C1 0x18
Audiocodec
I2C3 0x08
PMIC
0x48
LM75
0x50
EEPROM
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
0x18
Audiocodec
0x49
LM75
0x57
EEPROM
0x68
RTC
I2C3 not available due to ethernet patch


i.MX6 AUD3 I2S t.b.d
i.MX6 I2S AudioCodec t.b.d

Hardware Issues

Linux BSP

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0105 0109 0110 0113
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


Boot device supported
eMMC / SD boot
TFTP boot
SPI NOR boot
Feature BSP Revision Remarks
TQ Product Chip Interface Function Pre-Release 0100 0101 0104 0105 0109 0110 0113
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 not tested


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

BSP Rev. ≥ 0109

2018/09/11 - REV.0113

2018/04/19 - REV 0110

2015/10/14 - REV 0109

2015/22/01 - REV 0105

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
MBa6x-FSL linux-imx/NXP ¦ systemd init ¦ Qt5 tools/config-mba6x-fsl
linux-imx/NXP ¦ busybox init tools/config-mba6x-fsl.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-fsl/mba6x/platformconfig
$ ptxdist select configs/platform-tq-tqma6x-fsl/ptxconfig.tiny

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

$ ./p images

or (in case of a manual configuration)

$ ptxdist images

Instructions for older BSP revisons

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

SD / eMMC images

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

eMMC/SD Card partition scheme was changed with BSP REV.0110

BSP Revision ≤ 109

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

  • 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

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_<label mod_name_code>MOD_NAME_CODE</label>_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


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.



  • 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


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

Prerequisites

To boot the MOD_NAME from network you need a working bootloader in eMMC/SD-card or SPI-NOR (placement option on MOD_NAME) 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)


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
  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:

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

platform-tq-mba6x

platform-tq-mba6x-fsl

Downloads

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.0109☚ current revision
MD5SUM:69FDC76EEDF567596694E53E11384CCA

TQMa6x BSP Rev.0109
MD5SUM: D8D523FF77359F3DAC1A72EDDECD4864

Hotfix TQMa6x BSP Rev.0109
MD5SUM:7CC115EF02301332EFBED4DA34C29FF2


TQMa6x BSP Rev.0105
MD5SUM: B81474B40D31C3DA7A2AE4f7049CB1E1

TQMa6x BSP Rev.0104
MD5SUM: 888178D7E797A75587BE0499C6AF28EC

Linux BSP Rev.0101 for TQMa6x
MD5SUM: FA1BBEF7727280B701C78FDC5D9713DF

Linux BSP Rev.0100 for TQMa6x (precompiled binaries)
MD5SUM: F2B7175E556A5FAE21371334C7725F76

Linux BSP Rev.0100 for TQMa6x (source)
MD5SUM: 251CBAB87B045F4F7ACCF4A7638DAD2A

Linux BSP Pre-Release for TQMa6x (precompiled binaries)
MD5SUM: 2C2BCDD347B4DC670D8BD5EBE5A19003

Linux BSP Pre-Release for TQMa6x (source)
MD5SUM: 67860895A209633D4A596912BFD7A052

Build System / Toolchains

PTXdist version XXXX.YY.0 is required to compile an OSELAS Toolchain XXXX.YY.Z.
The version of PTXdist and toolchain required to build a given BSP revision is shown in the version matrix.


Build System PTXdist 2015.05

Build System PTXdist 2014.11

Build System PTXdist 2013.12

Build System PTXdist 2013.03

Build System PTXdist 2012.12

OSELAS Toolchain 2013.12.2

OSELAS Toolchain 2013.12.1

OSELAS Toolchain 2012.12.1

PTXdist projects for compiling OSELAS toolchains

QNX BSP


VxWorks BSP

  • Last modified: 2022/08/04 15:04