Overview
BSP Version Information
BSP Version Matrix
BSP revision | 0100 | 0101 | 0104 | 0105 | 0109 |
---|---|---|---|---|---|
PTXdist | 2013.03 | 2013.12 | 2013.12 | 2014.11 | 2015.05 |
OSELAS Toolchain | 2012.12.1 | 2013.12.1 | 2013.12.2 | 2013.12.2 | 2013.12.2 |
Platform | MBa6x | MBa6x | MBa6x | MBa6x | MBa6x |
U-Boot | 2013.04 | 2013.04 | 2013.04 | 2013.04 | 2015.04 |
Linux Kernel | 3.10 | 3.13 | 3.16-rc5 | 3.16.7 | 4.1 |
Qt Version | 4.8.4 | 4.8.5 | 4.8.6 | 5.3.2 | 5.3.2 |
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.
Bootloader
Supported features
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 |
Supported boot devices
Boot device | supported |
---|---|
eMMC / SD boot | ✔ |
TFTP boot | ✔ |
SPI NOR boot | ✔ |
Operating System
Supported Features
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 |
Onboard I2C devices
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
Partition scheme
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
PTXdist images
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
Device assignment:
mmcdev 0 = eMMC
mmcdev 1 = SD Card
update commands uboot
- U-Boot update: ⇒ run update_uboot
- Device Tree update: ⇒ run update_fdt
- Kernel update: ⇒ run update_kernel
serial downloader
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
Usage of serial downloader tool
- Set Starterkit to boot-mode “serial downloader”, please see MBa6x DIP switch settings
- Connect Starterkit connector X8 (Micro USB cable provided with the Starterkit) to your host
- Connect Starterkit connector X15 (RS232) to your host
- Power up Starterkit
- 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
- Open a serial terminal on your host e.g. TeraTerm
- Open a Linux terminal and naviagate to folder “images” in the BSP dirctory
e.g. /home/embedded/TQMa6x-BSP-REV.0109/platform-MBa6x/images
- 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
- Now you can see the U-Boot messages in the serial terminal programm
Next steps are:
- write U-Boot using tftp to eMMC, see Updating existing firmware over ethernet
- write kernel image using tftp to eMMC, see Updating existing firmware over ethernet