Product URL list
Board Support Packages
Third-Party Add-Ons
Starterkit
Notes
Important Notes
Important Notes
CVE-2015-7547 --- glibc getaddrinfo() stack-based buffer overflow
Pengutronix has released new versions of their OSELAS Toolchains, which fix the CVE-2015-7547 --- glibc getaddrinfo() stack-based buffer overflow issue:
TQ strongly recommends to switch your PTXdist based BSP(s) to one of the above mentioned (or later) OSELAS toolchains.
For deployed systems with network connectivity, an update should be taken into consideration!
Step-by-step instructions to switch your BSP to a new toolchain
1. Build the new OSELAS toolchain
2. Reconfigure your BSP / platform
3. Rebuild your BSP
For a clean rebuild execute
ptxdist clean
ptxdist go --git
Obsolete Notes
Hardware
Onboard I2C devices
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
Hardware Issues
Linux BSP
U-Boot
Supported features
Feature BSP Revision Remarks
TQ Product Chip Interface Function 0105 0109 0110 0113 0114
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
Supported boot devices
Boot device supported
eMMC / SD boot •
TFTP boot •
SPI NOR boot •
Kernel
Operating System
Supported Features
Operating System Supported Features
Feature BSP Revision Remarks
TQ Product Chip Interface Function Pre-Release 0100 0101 0104 0105 0109 0110 0113 0114
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
default pin-multiplexing covers all GPIO pins available on X30
i.MX6 GPIO1_IO21 Buzzer • • • • • • • • BSP Rev. ≤ 0101
supported via sysfs gpio
BSP Rev. ≥ 0104
supported via beep
command
i.MX6 GPU2D Hardware Acceleration ○ • • • • • BSP Rev. ≥ 0105
or
kernel 3.10.17-fsl
◊ ptxdist platformconfig → extra kernel
◊ rootfs from Freescale reference BSP 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
◊ ptxdist platformconfig → extra kernel
◊ rootfs from Freescale reference BSP required
tested resolution 1366×768
For using GPU see How To
i.MX6 HDMI HDMI • • • • • • • known limitations
◊ requires monitor with correct HPD signal
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
BSP Rev. ≥ 0104:
EDT ET(M)0700G0DH6 (7“ WVGA) supported by imx6[q|dl]-mba6x-pd.dtb
i.MX6 JTAG
i.MX6 LDB LVDS • • • • • • • • • displays supported
BSP Rev. ≥ 0104:
ChiMei G104X (10.4” XGA) supported by imx6[q|dl]-mba6x-lvds.dtb
BSP Rev. ≥ 0114:
TIANMA TM070JVHG33 supported by imx6[q|dl]-mba6[a|b]-lvds-tm070jvhg33.dtb
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
MAC needs to be configured via U-Boot variable usbethaddr
BSP Rev. ≥ 0104
automatic MAC configuration with MBa6x Rev. ≥ 0200
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
on pinheader X27 Host • • • • • • • •
USB2517 USB5
on Mini-PCIe connector X23 Host
USB2517 USB6 Host • • • • • • • •
USB2517 USB7
on LVDS connector X19 • tested with ilitek touchcontroller
FAQ
PTXdist
PTXdist BSP Version Matrix
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
<graphviz dot>
digraph “FDT_dependencies” {
rankdir=BT
node [shape=box style=filled]
{
/* level graph */
node[shape=none, width=0, height=0, label=“” style=invis];
edge[dir=none style=invis];
1 → 2 → 3 → 4 → 5 → 6;
}
subgraph FSL {
node [fillcolor="#E66A08" fontcolor="#FFFFFF"]
"imx6q.dtsi";
"imx6dl.dtsi";
"imx6qdl.dtsi";
}
subgraph TQM {
node [fillcolor="#1D8EC6" fontcolor="#FFFFFF"]
"imx6qdl-tqma6x.dtsi";
"imx6q-tqma6q.dtsi";
"imx6dl-tqma6s.dtsi";
}
subgraph MB {
node [fillcolor="#8F8F8F" fontcolor="#FFFFFF"]
"imx6qdl-mba6x.dtsi";
"imx6q-mba6x.dts" [shape=oval color="#FF0000"];
"imx6dl-mba6x.dts" [shape=oval color="#FF0000"];
}
{rank=same; 6; "imx6q.dtsi"; "imx6dl.dtsi"}
{rank=same; 5; "imx6qdl-tqma6x.dtsi"}
{rank=same; 4; "imx6q-tqma6q.dtsi"; "imx6dl-tqma6s.dtsi"}
{rank=same; 3; "imx6qdl-mba6x.dtsi"}
{rank=same; 2; "imx6q-mba6x.dts"; "imx6dl-mba6x.dts"}
{rank=same; 1; "imx6q-mba6x-hdmi.dts"; "imx6dl-mba6x-hdmi.dts" }
{"imx6q.dtsi" "imx6dl.dtsi"} -> "imx6qdl.dtsi";
"imx6q-tqma6q.dtsi" -> {"imx6qdl-tqma6x.dtsi" "imx6q.dtsi"};
"imx6dl-tqma6s.dtsi" -> {"imx6qdl-tqma6x.dtsi" "imx6dl.dtsi"};
"imx6q-mba6x.dts" -> {"imx6qdl-mba6x.dtsi" "imx6q-tqma6q.dtsi"};
"imx6dl-mba6x.dts" -> {"imx6qdl-mba6x.dtsi" "imx6dl-tqma6s.dtsi"};
"imx6q-mba6x-hdmi.dts" -> "imx6q-mba6x.dts";
"imx6dl-mba6x-hdmi.dts" -> "imx6dl-mba6x.dts";
}
</graphviz>
<HTML >
</HTML >
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
<graphviz dot>
digraph “FDT_dependencies” {
rankdir=BT
node [shape=box style=filled]
{
/* level graph */
node[shape=none, width=0, height=0, label=“” style=invis];
edge[dir=none style=invis];
1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9;
}
subgraph FSL {
node [fillcolor="#E66A08" fontcolor="#FFFFFF"]
"imx6q.dtsi";
"imx6dl.dtsi";
"imx6qdl.dtsi";
}
subgraph TQM {
node [fillcolor="#1D8EC6" fontcolor="#FFFFFF"]
"imx6qdl-tqma6.dtsi";
"imx6q-tqma6<a|b>.dtsi";
"imx6dl-tqma6<a|b>.dtsi";
"imx6qdl-tqma6<a|b>.dtsi";
}
subgraph MB {
node [fillcolor="#8F8F8F" fontcolor="#FFFFFF"]
ordering=out;
"imx6qdl-mba6.dtsi";
subgraph MBq {
rankdir=LR;
"imx6q-mba6.dtsi";
"imx6q-mba6<a|b>.dts" [shape=oval color="#FF0000"];
}
"imx6qdl-mba6<a|b>.dtsi";
subgraph MBdl {
"imx6dl-mba6<a|b>.dts" [shape=oval color="#FF0000"];
"imx6dl-mba6.dtsi";
}
}
{rank=same; 8; "imx6q.dtsi"; "imx6dl.dtsi"}
{rank=same; 7; "imx6qdl-tqma6.dtsi"}
{rank=same; 6; "imx6q-tqma6<a|b>.dtsi"; "imx6dl-tqma6<a|b>.dtsi"}
{rank=same; 5; "imx6qdl-tqma6<a|b>.dtsi"}
{rank=same; 4; "imx6qdl-mba6.dtsi"}
{rank=same; 3; "imx6q-mba6.dtsi"; "imx6q-mba6<a|b>.dts"; "imx6dl-mba6<a|b>.dts"; "imx6dl-mba6.dtsi"}
{rank=same; 2; "imx6qdl-mba6<a|b>.dtsi" }
{"imx6q.dtsi" "imx6dl.dtsi"} -> "imx6qdl.dtsi";
"imx6q-tqma6<a|b>.dtsi" -> {"imx6qdl-tqma6.dtsi" "imx6qdl-tqma6<a|b>.dtsi" "imx6q.dtsi"};
"imx6dl-tqma6<a|b>.dtsi" -> {"imx6qdl-tqma6.dtsi" "imx6qdl-tqma6<a|b>.dtsi" "imx6dl.dtsi"};
"imx6q-mba6<a|b>.dts" -> {"imx6q-tqma6<a|b>.dtsi" "imx6qdl-mba6<a|b>.dtsi" "imx6qdl-mba6.dtsi" "imx6q-mba6.dtsi"};
"imx6dl-mba6<a|b>.dts" -> {"imx6dl-tqma6<a|b>.dtsi" "imx6qdl-mba6<a|b>.dtsi" "imx6qdl-mba6.dtsi" "imx6dl-mba6.dtsi"};
}
</graphviz>
<HTML >
</HTML >
PTXdist Changelog
Changelog
2019/09/09 - REV.0114
Build tools
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
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
2018/09/11 - REV.0113
Build tools
U-Boot 2017.11 Mainline
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
2018/04/19 - 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
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
Userland
Userland FSL
gstreamer-imx plugins
gstreamer imx 0.12.3
2015/10/14 - REV 0109
Build tools
Userland
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
2015/22/01 - REV 0105
Buildenvironment
U-Boot 2014.04
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
Compilation
Configuration
The BSP provides helper scripts for automatic configuration according to the following table:
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
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
BSP Rev.0105 (and later)
$ tools/ config.sh --config ptxconfig.qt5 --platform mba6x
this will effectivly:
check for configured ptxdist version
create symlink to configured ptxdist version (./p
→ /usr/local/bin/ptxdist-<version>
)
call ./p platform configs/platform-tq-mba6x/platformconfig
call ./p select configs/ptxconfig.qt5
Finally you can build the BSP by executing
$ ./ p images --git
BSP Rev.0104 (and earlier)
$ ptxdist platform configs/ platform-tq-mba6x/ platformconfig
$ ptxdist select configs/ ptxconfig
$ ptxdist go --git
$ ptxdist images
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
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
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)
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 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
Deployment PTXdist
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_code@ _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)
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
Size of uboot_tqma6q_hd.img in byte = 276.824.064
276.824.064 / 512 = 540.672
540.672 converted to hex value = h840000
mmc dev 1 && mmc rescan && mmc read ${loadaddr} 0 0x84000 && mmc dev 0 && mmc rescan && mmc write ${loadaddr} 0 0x84000
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 @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)
TQMa6x serial downloader
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
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:
Images PTXdist
Finally, you will find the built images in platform-<platformname>/images .
platform-tq-mba6x
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:
Bootloader image:
u-boot-mba6s-mmc.imx : u-boot bootloader for TQMa6S on MBa6x (usage on SD Card and eMMC)
u-boot-mba6sdl-mmc.imx : u-boot bootloader for TQMa6U on MBa6x (usage on SD Card and eMMC)
u-boot-mba6q-mmc.imx : u-boot bootloader for TQMa6Q on MBa6x (usage on SD Card and eMMC)
u-boot-mba6s-spi.imx : u-boot bootloader for TQMa6S on MBa6x (usage on SPI NOR Flash)
u-boot-mba6dl-spi.imx : u-boot bootloader for TQMa6U on MBa6x (usage on SPI NOR Flash)
u-boot-mba6q-spi.imx : u-boot bootloader for TQMa6Q and TQMa6D on MBa6x (usage on SPI NOR Flash)
Linux kernel images:
Devicetree images:
imx6q-mba6a.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x
imx6q-mba6a-pd.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x parallel display interface activated
imx6q-mba6a-multi.dtb :
imx6q-mba6a-lvds.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x LVDS interface activated
imx6q-mba6a-hdmi.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x HDMI interface activated
imx6q-mba6b.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x
imx6q-mba6b-pd.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x parallel display interface activated
imx6q-mba6b-multi.dtb
imx6q-mba6b-lvds.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x LVDS interface activated
imx6q-mba6b-hdmi.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x HDMI interface activated
imx6dl-mba6a.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6a-pd.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x parallel display interface activated
imx6dl-mba6a-multi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6a-lvds.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x LVDS interface activated
imx6dl-mba6a-hdmi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x HDMI interface activated
imx6dl-mba6b.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6b-pd.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x parallel display interface activated
imx6dl-mba6b-multi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6b-lvds.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x LVDS interface activated
imx6dl-mba6b-hdmi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x HDMI interface activated
Rootfs images:
Firmware images:
platform-tq-mba6x-fsl
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)
uboot_tqma6qp_hd.img : bootable image for TQMa6QP and TQMa6DP on MBa6x (usage on SD Card and eMMC)
The complete system images are intended for:
Bootloader image:
u-boot-fsl-mba6s-mmc.imx : u-boot bootloader for TQMa6S on MBa6x (usage on SD Card and eMMC)
u-boot-fsl-mba6sdl-mmc.imx : u-boot bootloader for TQMa6U on MBa6x (usage on SD Card and eMMC)
u-boot-fsl-mba6q-mmc.imx : u-boot bootloader for TQMa6Q and TQMa6D on MBa6x (usage on SD Card and eMMC)
u-boot-fsl-mba6qp-mmc.imx : u-boot bootloader for TQMa6QP and TQMa6DP on MBa6x (usage on SD Card and eMMC)
u-boot-fsl-mba6s-spi.imx : u-boot bootloader for TQMa6S on MBa6x (usage on SPI NOR Flash)
u-boot-fsl-mba6dl-spi.imx : u-boot bootloader for TQMa6U on MBa6x (usage on SPI NOR Flash)
u-boot-fsl-mba6q-spi.imx : u-boot bootloader for TQMa6Q and TQMa6D on MBa6x (usage on SPI NOR Flash)
Linux kernel images:
Devicetree images:
imx6q-mba6a.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x
imx6q-mba6a-pd.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x parallel display interface activated
imx6q-mba6a-multi.dtb :
imx6q-mba6a-lvds.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x LVDS interface activated
imx6q-mba6a-hdmi.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x HDMI interface activated
imx6q-mba6b.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x
imx6q-mba6b-pd.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x parallel display interface activated
imx6q-mba6b-multi.dtb
imx6q-mba6b-lvds.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x LVDS interface activated
imx6q-mba6b-hdmi.dtb : device tree blob for TQMa6D and TQMa6Q on MBa6x HDMI interface activated
imx6dl-mba6a.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6a-pd.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x parallel display interface activated
imx6dl-mba6a-multi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6a-lvds.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x LVDS interface activated
imx6dl-mba6a-hdmi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x HDMI interface activated
imx6dl-mba6b.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6b-pd.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x parallel display interface activated
imx6dl-mba6b-multi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x
imx6dl-mba6b-lvds.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x LVDS interface activated
imx6dl-mba6b-hdmi.dtb : device tree blob for TQMa6S and TQMa6U on MBa6x HDMI interface activated
Rootfs images:
Firmware images:
Downloads
Known Issues PTXdist
Yocto
Yocto BSP Version Matrix
× Please visit our
Github for the latest updates and BSP releases.
DevHost
Build BSP
Adapt BSP
Deployment
Known Issues Yocto
(Deployment)
QNX BSP
U-Boot
Bootloader
Supported features
Supported boot devices
Operating System
Onboard I2C devices
Kernel
FAQ
Deployment
VxWorks BSP
U-Boot
Kernel
FAQ
Deployment