The TQMa6x modules are mainlined in barebox featuring device tree and SPL support.
Please note that TQ systems uses U-Boot for testing and verification. In case of differences in pin and clock configuration etc. please contact our technical support.
For details on using U-Boot see U-Boot Command Line Interface
The default environment is configured to try booting from SD / eMMC card and fall back to booting from net. You can set the environment variable bootcmd, to force either booting from net or from eMMC / SD card:
TQMa6Q[MBa6x] U-Boot > setenv bootcmd run netboot TQMa6Q[MBa6x] U-Boot > setenv bootcmd run mmcboot
In order to update existing firmware please have a look at our deployment section.
With BSP Rev.0109 fdt fit image was introduced, this image contains all devicetree blob files in one file.To select a specific configuration environment variable fitfdt_part By default u-boot is configured for single devicetree. When fdt fit image should be used then u-boot must be configured and updated as follows:
setenv fdt_type fit
setenv fdt_file mba6-image-dtb.itb
saveenv
setenv autoload no
setenv serverip xxx.xxx.xxx.xxx
run update_fdt
For using the fit image you simply need to modify the u-boot environment variable fitfdt_part.
The hardware is configured using Device Tree. The Device Tree files for TQMa6x / MBa6x are located in platform-MBa6x/build-target/linux-<version>/arch/arm/boot/dts/imx6….dts<i> after the prepare step of the kernel package.
Documentation of Device Tree for your kernel version can be found in the kernel tree under Documentation/devicetree
Attention: Changes in the build directory are not saved. You need to create a patch to make the changes permanent.
Attention: Changes of the Device Tree must be compiled. To do this enter the following commands:
$ ptxdist drop dtc extract $ ptxdist go $ ptxdist images
If you only want to update the kernel image you also need to transfer the resulting Device Tree blob to your device. It has to be copied to your tftp directory:
$ cp platform-MBa6x/images/imx6<variant>-mba6x.dtb <your tftp dir>
And can then be loaded to the device. After saving and resetting the new Device Tree will be used.
U-Boot
TQMa6S[MBa6x] > printenv fdt_file
Check name if settings and file name are correct
TQMa6S[MBa6x] > run update_fdt
With “fdt” command under U-Boot we can edit the Devicetree
1) Load the fdt from mmc in to RAM
mmc dev ${mmcdev}; mmc read ${fdt_addr} ${fdt_start} ${fdt_size};
2) Set your $fdt_addr as fdt address for the fdt command
fdt addr ${fdt_addr}
3) Resize the fdt to “+4k”
fdt resize
4) Identify your tree in the Device Tree
fdt print - recursive print of your path (e.g / -> Prints the whole Devicetree. /soc -> everything under "/soc") fdt list - Prints only the Top level of path (e.g / -> Lists only the "First" Level. /soc -> Prints the First level of all devices under "/soc"
5) Change values of properties
fdt set "your path" "your property" "your value" e.g: fdt set /display@0 status okay
6) Write the changed Device Tree from RAM to mmc
'mmc dev ${mmcdev}; mmc write ${fdt_addr} ${fdt_start} ${fdt_size};'
For testing purpose only. For bigger changes, please compile the Devicetree
The following applies to BSP Rev. ≥ 0105
During kernel boot the GPU requests 128 MiB of linear address space, which is why the CMA pool has to be increased for proper GPU support.
Simply set the cma_size
U-Boot variable as follows:
setenv cma_size 160M saveenv
root@MBa6x:cd /path/to /your/bsproot/\\ root@MBa6x:/path/to/your/bsproot ptxdist platformconfig\\
Enter architecture and select install gpu examples and demos. The demos will be installed under /opt/viv_samples
root@MBa6x:cd opt/viv_samples root@MBa6x:/opt/viv_samples ./es20/vv_launcher/vv_launcher
root@MBa6x:cd /path/to /your/bsproot/ root@MBa6x:/path/to/your/bsproot ptxdist platformconfig
Enter architecture and select install gpu SDK examples. The examples will be installed under /opt/gpu_sdk_v1.00
please keep in mind to increase the cma_size to use the Qt demos
root@MBa6x:cd /path/to /your/bsproot/ root@MBa6x:/path/to/your/bsproot ptxdist menuconfig
Enter Graphics and Multimedia in the following menu enter qt, select install Qt5 examples. The examples will be installed under /usr/bin/qt5-examples
root@Mba6x:mount -o remount,rw / root@MBa6x:cd /usr/bin/qt5-examples/quick/demos/clocks root@MBa6x:/usr/bin/qt5-examples/quick/demos/clocks/chmod a+x clocks root@MBa6x:/usr/bin/qt5-examples/quick/demos/clocks/./clocks
Please note that depending on configuration installing all options can exceed the configured size of the root file system.
Some GPU demos are not working with HDMI and FullHD
To do basic tests for Multitouch functionality please use commandline applications evtest or mtdev-test
Since BSP Revision 0109 the VPU of i.MX6 is supported.
For testing the VPU we have included a small sample video file in the BSP rootfilesystem:
/usr/share/media/video/TQ-in-20-Sekunden-720P_Rev002.mp4
To avoid allocation errors please increase the value of the variable cma_size
in u-boot to 256M.
To play the videofile on the starterkit with gstreamer you need to set up a gstreamer pipeline. For example:
root@MBa6x:~ gst-launch-1.0 filesrc location=/usr/share/media/video/TQ-in-20-Sekunden-720P_Rev002.mp4 ! qtdemux ! h264parse ! v4l2video1dec ! v4l2video2convert ! fbdevsink
The gstreamer components may differ from those shown in this example, to get a list of the available gstreamer components please run gst-inspect-1.0
.
Configuration of display type and display support depends on the kernel version used since the drivers are at least partly in staging.
When displays or display settings are altered the device tree has to be modified. See here how to change device tree.
Beginning with linux 3.16-rc5 (BSP REV.0104) a devicetree with special settings for HDMI is compiled.
Correct working of the HDMI driver depends on the function of the HPD signal of the Monitor.
U-Boot envenvironment must be reconfigured to enable HDMI on Freescale kernel
setenv addfb 'setenv bootargs ${bootargs} consoleblank=0 video=mxcfb0:dev=hdmi,1280x720M@60,if=RGB24 fbmem=32M'
under construction
Beginning with linux 3.16-rc5 (BSP REV.0104) a devicetree with special settings for parallel display is compiled. To change the display type, you need to change the default timing and - in case timing is not supplied yet - the correct display timing has to be entered in device tree.
To use LVDS display with frame buffer support, make sure to disable other displays in the device tree (set the status property of the node to “disabled”).
To enable the LVDS output you have to
Timing examples:
With BSP REV.0110 the kmsfb wrapper was introduced for the compability between linux mainline kernel and the Vivante GPU driver. The kmsfb wrapper emulates a framebuffer device from the kernel mode settings and requires a proper configuration file /etc/kmsfb-manage.conf.
To show the current drm information please execute kmsfb-manage -s
in the linux shell. Please see the example output below after executing kmsfb-manage -s
on a Starterkit with HDMI display connected:
root@MBa6x:/usr/lib/qt5/examples/webview/minibrowser kmsfb-manage -s ------------------------ Current Layout ------------------------ CRTCs: id: 18 fb id: 0 x: 0 y: 0 id: 22 fb id: 0 x: 0 y: 0 Connectors: id 25 current encoder: 24 type: HDMI-A mode0: 1680x1050@60 mode1: 1280x1024@75 mode2: 1280x1024@60 mode3: 1152x864@75 mode4: 1024x768@75 mode5: 1024x768@60 mode6: 800x600@75 mode7: 800x600@60 mode8: 800x600@56 mode9: 848x480@60 mode10: 640x480@75 mode11: 640x480@60 mode12: 640x480@60 mode13: 720x400@70 Property: EDID id : 1 flags : 20 count_values : 0 count_enums : 0 blob is 128 length, FFFFFF00 Property: DPMS id : 2 flags : 8 count_values : 4 values : 0 1 2 3 count_enums : 4 0 = On 1 = Standby 2 = Suspend 3 = Off con_value : On Encoders: 1 id: 24 crtc id: 0 possible crtcs: 0x00000003 possible clones: 0x00000000 Framebuffers: 0 Planes: 1 id: 20
The following values are required to create the kmsfb configuration file:
After determining the appropriate values the file /etc/kmsfb-manage.conf can be edited. Please see the example configuration for a HDMI display below:
-f bpp=32,xres=1680,yres=1050,fill=1,3d=1,vsync=0 -w fbid=0,connector=25,encoder=24,crtc=0
After editing the kmsfb-manage.conf file please reboot the Starterkit to activate the display configuration.
To compile the kernel/bootloader outside of the BSP, please have a look at the corresponding tutorial.
1) Set environment variable usbethaddr No longer necessary for BSP Rev. ≥0109
setenv usbethaddr <MAC address>
2) Start to detect USB device
usb start
3) To use Ethernet device “sms0” under U-Boot you have to change the active Ethernet device
setenv ethact sms0
Available Ethernet devices are “sms0”(X12) and “FEC”(X11)
If no link activity shown in U-Boot see Known Issues
The following documents are required to fully comprehend the following contents:
The term “wireless” does not imply that the WEIM is literally an interface without wires. It simply means that this module was originally designed for wireless and mobile applications that use low-power technology.
The actual devices are instantiated from the child nodes of a WEIM node.
To supply the TQMa6x RTC from CR2032 on MBa6x, please set a jumper bridge between X31_3 and X31_2.
In order to use serial downloader please have a look at our deployment section.
export TSLIB_TSDEVICE=/dev/input/event2