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

BSP Rev. ≥ 0109

Feature BSP Revision Remarks
TQ Product Chip Interface Function 0105 0109
TQMa6x i.MX6 Ethernet RGMII (10/100/1000 Mbit/s)
TQMa6x i.MX6 uSDHC eMMC / SD-Card SD card / eMMC
TQMa6x i.MX6 UART2 RS232 default console
TQMa6x i.MX6 USB Host
TQMa6x i.MX6 I²C EEPROM, Temperature Sensors
TQMa6x i.MX6 GPIO custom config on request
TQMa6x i.MX6 SPI SPI NOR Flash
TQMa6x i.MX6 IIM / Fuse on request
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
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
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 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



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

Adapting BSP

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

  • 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
0x000a … 0x000a 0x0001 sector / 64 KiB environment1
0x000b … 0x000f 0x0005 sectors / 320 KiB devicetree
0x0010 … 0x0070 0x0060 sectors / 6 MiB Kernel

Deployment

Complete system images:

  • uboot_tqma6s_hd.img : bootable image for TQMa6S on MBa6x (usage on SD Card and eMMC)
  • uboot_tqma6dl_hd.img : bootable image for TQMa6U on MBa6x (usage on SD Card and eMMC)
  • uboot_tqma6q_hd.img : bootable image for TQMa6Q and TQMa6D on MBa6x (usage on SD Card and eMMC)

The complete system images are intended for:

  • development system initialisation
  • deployment

Bootloader images:
Not to be confused with the u-boot*.bin images, these are just intermediate images and will not be booted by the i.MX6.

  • u-boot-TQMa6S_MBa6x.imx : u-boot bootloader for TQMa6S on MBa6x (usage on SD Card and eMMC)
  • u-boot-TQMa6S_MBa6x_SPI.imx : u-boot bootloader for TQMa6S on MBa6x (usage on SPI NOR Flash)
  • u-boot-TQMa6DL_MBa6x.imx : u-boot bootloader for TQMa6U on MBa6x (usage on SD Card and eMMC)
  • u-boot-TQMa6DL_MBa6x_SPI.imx : u-boot bootloader for TQMa6U on MBa6x (usage on SPI NOR Flash)
  • u-boot-TQMa6Q_MBa6x.imx : u-boot bootloader for TQMa6Q and TQMa6D on MBa6x (usage on SD Card and eMMC)
  • u-boot-TQMa6Q_MBa6x_SPI.imx : u-boot bootloader for TQMa6Q and TQMa6D on MBa6x (usage on SPI NOR Flash)

Linux images:

  • linuximage : Kernel (zImage)
  • imx6dl-mba6x.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
  • imx6q-mba6x.dtb : device tree blob for TQMa6Q and TQMa6D on MBa6x

Rootfs images:

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

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

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

The Starterkit has to be set 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:

  • Last modified: 2023/07/10 14:34