Entry Page
Third-Party Add-Ons
Board Support Packages
Hardware
Onboard I2C devices
I2C bus | TQMLS102xA | MBLS102xA | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
I2C1 | 0x08 PMIC | 0x11 PMC | 0x4C Temp sensor | 0x51 RTC | 0x54 EEPROM | 0x18 Audiocodec | 0x20 I²C GPIO Expander | 0x21 I²C GPIO Expander | 0x22 I²C GPIO Expander | 0x3B HDMI | 0x60 PWM LED Dimmer | 0x68 RTC |
Hardware Issues
Linux BSP
U-Boot
Supported features
Feature | BSP Revision | Remarks | |||||||
---|---|---|---|---|---|---|---|---|---|
TQ Product | Chip | Interface | Function | 0102 | 0109 | 0110 | 0111 | 0112 | |
TQMLS102xA | LS102xA | eSDHC | eMMC / SD-Card | • | • | • | • | • | mutually exclusive (cf user's manual) |
TQMLS102xA | LS102xA | ETSEC | RGMII / SGMII | • | • | • | • | • | For SGMII MBLS102xA Rev. ≥ 0200 required |
TQMLS102xA | LS102xA | I2C1 | EEPROM / PMC (System Reset Request) | • | • | • | • | • | |
TQMLS102xA | LS102xA | QSPI | QSPI NOR Flash | • | • | • | • | • | up to 2 Devices |
TQMLS102xA | LS102xA | SATA | • | • | • | • | • | SSD/HDD | |
TQMLS102xA | LS102xA | UART1 | RS232 | • | • | • | • | • | default console |
TQMLS102xA | LS102xA | USB XHCI | USB 3.0/2.0 | • | • | • | • | • | USB Storage Device |
Supported boot devices
Boot device | BSP Revision | Remarks | ||||
---|---|---|---|---|---|---|
0102 | 0109 | 0110 | 0111 | 0112 | ||
eMMC / SD | • | • | • | • | • | mutually exclusive |
QSPI NOR-Flash | • | • | • | • |
Kernel
Operating System
Supported Features
Please note that BSP Rev. 0100 is intended to be used on a MBLS102xA Rev. 02xx and higher.
When using BSP Rev. 0100 on a MBLS102xA Rev.01xx, please see How to Use BSP Rev.0100 on MBLS102xA Rev.01xx.
Feature | BSP Revision | Remarks | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TQ Product | Chip | Interface | Function(s) | Prerelease 7a3ec3d | 0004 | 0005 | 0100 | 0102 | 0109 | 0110 | 0111 | 0112 | |
TQMLS102xA | LS102x | 2D-ACE | 24 Bit RGB | • | • | • | • | • | • | • | Pin header X17 on MBLS102xA | ||
LS102x | 2D-ACE | SiI9022A | • | • | • | • | • | • | • | HDMI | |||
LS102x | 2D-ACE | SN75LVDS83B | • | • | • | • | • | • | • | LVDS | |||
LS102x | CAN1 | CAN 2.0 B | • | • | • | • | • | • | |||||
LS102x | CAN2 | CAN 2.0 B | • | • | • | • | • | • | |||||
LS102x | eSDHC | eMMC | • | • | • | • | • | • | • | • | • | mutually exclusive (cf user's manual) | |
LS102x | eSDHC | SD card | • | • | • | • | • | • | • | • | • | ||
LS102x | eTSEC0 | RGMII (10/100/1000 Mbit/s) | • | • | • | • | • | • | • | • | • | ||
LS102x | eTSEC1 | SGMII (10/100/1000 Mbit/s) | • | • | • | • | • | • | MBLS102xA Rev. ≥ 0200 required | ||||
LS102x | eTSEC2 | RGMII (10/100/1000 Mbit/s) | • | • | • | • | • | • | • | • | • | ||
LS102x | GPIO | Digital I/O | • | • | • | • | • | • | • | • | • | ||
LS102x | I2C1 | Bus access | • | • | • | • | • | • | • | ||||
LS102x | I2C1 | EEPROM (M24C64) | • | • | • | • | • | • | • | EEPROM | |||
LS102x | I2C1 | RTC (PCF85063) | • | • | • | • | • | • | • | RTC | |||
LS102x | I2C1 | TEMP-Sensor (SA56004X) | • | • | • | • | • | • | • | TEMP-Sensor | |||
LS102x | LPUART1 | TTL | • | • | • | ||||||||
LS102x | PCIe | PCI Express™ Base Specification, Revision 3.0 | • | • | • | • | • | • | PCIe slot (X35) on MBLS102xA Mini-PCIe slot (X24) on MBLS102xA |
||||
LS102x | QSPI | QSPI NOR Flash | • | • | • | • | • | • | • | ||||
LS102x | SATA | Serial ATA Revision 3.0 | • | • | • | • | • | • | |||||
LS102x | UART1 | TTL | • | • | • | • | • | • | • | • | • | ||
LS102x | USB1 | USB 3.0 OTG | • | • | • | • | • | • | • | • | • | ||
LS102x | USB2 | USB2517 on MBLS102xA | • | • | • | • | • | • | • | • | |||
MBLS102xA | MBED/OpenSDA | miniUSB | Console | • | • | • | • | • | • | • | • | • | Console available on X43 xor X5 (LPUART) |
TLV320AIC3204 | SAI1 | Audio Codec | • | • | U-Boot image with SAI muxing in RCW and SAI CPLD configuration required | ||||||||
SiI9022A | HDMI | Ext. Monitor | • | • | • | • | • | MBLS102xA REV.0202 and TQMLS102xA ≥ REV.0203 required |
|||||
SN75LVDS83B | LVDS | Ext. Display | • | • | • | • | • | • | • | X10 / X32 | |||
SP3222E | UART1 | RS232 | • | • | • | • | • | • | • | • | • | ||
SP491E | LPUART1 | RS485 | • | • | • | • | • | • | |||||
STMPE811 | I2C1 | Touch | |||||||||||
USB2517 | USB2_H4 | Host | • | • | • | • | • | • | • | ||||
USB2517 | USB2_H5 | Host | • | • | • | • | • | • | • | ||||
USB2517 | USB2_H6 | Host | • | • | • | • | • | • | • | assembly option: Safenet HL Chip Sentinel |
FAQ
PTXdist
BSP Version Matrix
Version Matrix
BSP revision | Prerelease 7a3ec3d | 0004 | 0005 | 0100 | 0102 | 0109 | 0110 | 0111 | 0112 |
---|---|---|---|---|---|---|---|---|---|
PTXdist | 2015.02 | 2015.05 | 2015.05 | 2015.05 | 2016.04 | 2016.04 | 2018.09 | 2019.01 | 2019.01 |
OSELAS Toolchain | 2013.12.2 | 2013.12.2 | 2013.12.2 | 2013.12.2 | 2013.12.2 | 2013.12.2 | 2018.02 | 2018.02 | 2018.12 |
Platform | MBLS102xA | MBLS102xA | MBLS102xA | MBLS102xA | MBLS102xA | MBLS102xA | MBLS102xA | MBLS102xA | MBLS102xA |
U-boot | 2015.04 | 2015.04 | 2015.04 | 2016.05 | 2016.05 | 2017.07 | 2017.11 | 2017.11 | 2017.11 |
Linux Kernel | 3.12 | 3.12 | 4.4 | 4.4 | 4.4 | 4.4 | 4.14 | 4.14 | 4.14 |
Changelog PTXdist
DevHost
Build BSP
Compilation
BSP Rev.0100 (and later)
Adapt BSP
we suggest to read the following pages before you proceed with this page
The BSP was developed for the starterkit TQMLS102xA. To use it in a product with special needs or a different basebord we suggest to define an own platform. To start with it make a copy of the platform definition and select the new platform definition
$ cd <BSPROOT> $ cp -r <BSPROOT>/configs/platform-tq-@mb_name_code@ to <BSPROOT>/configs/<your-cool-platform> $ ptxdist platform <BSPROOT>/configs/<your-cool-platform>/platformconfig
To start configuring your new platform type
$ ptxdist platformconfig
The first thing to change should be the platform name. Adapt things like kernel configuration, image creation etc. to your needs.
The new system will be built under <BSPROOT>/platform-<platformname_from_platformconfig>
Please read the build system documentation howto go further. Keep in mind that custom mainboards may need changes in bootloader and device tree. Give the new bootloader config and device tree a new name to cleanly distinguish them from the starterkit mainboard configuration.
If creating BSP for a new motherboard, make sure to create new configurations for bootloaders and device tree.
Changing packages
PTXdist uses release tar balls for software it loads from the net. You have to work with patches, if you need to make changes to the source code. Follow the instructions of the developers section in the PTXdist manual.
Changes that are made in the build directories will be deleted, when PTXdist needs to redo a buildstep.
Adding own packages
PTXdist needs a package for every bit you need in your root FS to guarantee reproducible builds. To add your software, files etc. you have to provide local packages. Follow the instructions of the developers section in the PTXdist manual. PTXdist provides templates as starting point for own packages. Type
$ ptxdist newpackage
to see what package templates exist.
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=@mod_name_code@_hd.img of=/dev/sdf bs=1M conv=fsync #Assuming the SD card is assigned to /dev/sdf
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 to a 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.>
mmcdev depends on the placement of eMMC on TQMLS102xA module
Device assignment:
mmcdev 0 = SD Card (if eMMC ist not placed)
mmcdev 0 = eMMC (if eMMC ist placed)
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 on eMMC/SD Card : ⇒ setenv uboot <filename>
- For U-Boot update on QSPI NOR : ⇒ setenv uboot-qspi <filename>
- For Device Tree update on eMMC/SD Card and QSPI NOR : ⇒ setenv fdt_file <filename>
- For Kernel update on eMMC/SD Card and QSPI NOR : ⇒ setenv zimage <filename>
6. Perform Update:
- U-Boot update on eMMC /SD Card : ⇒ run update_uboot
- U-Boot update on QSPI NOR : ⇒ run update_uboot-qspi
- Device Tree update on eMMC /SD Card : ⇒ run update_fdt
- Device Tree update on QSPI NOR : ⇒ run update_fdt-qspi
- Kernel update on eMMC /SD Card : ⇒ run update_kernel
- Kernel update on QSPI NOR : ⇒ run update_kernel-qspi
The u-boot update scripts automatically implement the selection of the primary copy to boot.
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)
Images PTXdist
Finally, you will find the built images in platform-<platformname>/images.
Complete system images:
- uboot-sd.img
The complete system images are intend for:
- development system initialisation
- deployment
Bootloader images:
- u-boot.bin
- u-boot-with-spl-pbl-mmcsd-2017.07.bin
- u-boot-with-spl-pbl-ecc-mmcsd-2017.07.bin
- u-boot-pbl.bin.bswap
- u-boot-pbl.bin.ecc.bswap
- u-boot-pbl.bin.ae.ecc.bswap
Linux images:
- linuximage : Kernel (zImage)
- linuximage-rt : Preempt-RT Kernel (zImage)
Device tree blobs:
* **ls1021a-mbls1021a.dtb** : default device tree without display * **ls1021a-mbls1021a-dmb-ct21.dtb** : with parallel display (DMB S070PWS19HP-FC21) * **ls1021a-mbls1021a-dmb-ct44.dtb** : with parallel display (DMB S070SWV29HG-DC44) * **ls1021a-mbls1021a-glyn-etm0700g0edh6.dtb** : with parallel display (Glyn ETM0700G0EDH6) * **ls1021a-mbls1021a-lvds-tm070jvhg33.dtb** : with LVDS display (Tianma TM070JVHG33) * **ls1021a-mbls1021a-hdmi.dtb** : with HDMI display
Rootfs images:
- root.tgz : Root file system archive (for NFS etc.)
- root.ext2 : Root file system partition image (for system update)
- root.ubi : ubi partition for QSPI NOR
- root.ubifs: ubifs image for QSPI NOR
Firmware images:
- firmware.tgz : firmware image contains all devicetree blobs and linux kernel image
- firmware.img : firmware image archive (for firmware image creation)
Downloads
TQ 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 of each BSP revision.
TQMLS102xA BSP Rev.0112☚ current revision
MD5SUM: 09B5CFAB263070F06C82C791812037FE
TQMLS102xA BSP Rev.0111
MD5SUM: 965464329762A1634C739678F36EB765
TQMLS102xA BSP Rev.0110
MD5SUM: 265CD64894ECF83DA600AC99BD5DECC6
TQMLS102xA BSP Rev.0109
MD5SUM: CFAFA4F29B4C427E82EA7544F90A7AD9
TQMLS102xA BSP Rev.0102
MD5SUM: 1F6BB7DC98E2E10AEB5C528382187971
Linux BSP Rev.0102 for TQMLS102xA - Hotfix QSPI Boot
MD5SUM: 699E8B791D9E25CA3C0CEC31A43200E6
TQMLS102xA BSP Rev.0100
MD5SUM: FA1BDF3A2E42725709DD6F6A61323D7F
TQMLS102xA BSP Prerelease Rev.0005
MD5SUM: 8F8D58F445107A031883ACB222C9875C
TQMLS102xA BSP Prerelease Rev.0004
MD5SUM: B8361BCA27933080939CFF98120EE204
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.
Documentation
PTXdist manual "How to become a PTXdist Guru" ☚ worthwhile reading
How-to PTXdist
BSP Rev.0106 add second QSPI NOR chip
In BSP Rev.0106 the second QSPI NOR chip has been removed from the default BSP configuration.
If a second device is placed on the TQMLS102xA module please apply the following changes in the
devicetree source file ls1021a-tqmls1021a.dtsi.
&qspi { + fsl,qspi-has-second-chip; status = "okay"; qflash0: mt25ql512@0 { @@ -139,12 +138,4 @@ }; }; }; + qflash1: mt25ql512@1 { + compatible = "micron,n25q512ax3", "cfi-flash"; + #address-cells = <1>; + #size-cells = <1>; + spi-max-frequency = <20000000>; + reg = <1>; + }; };
Change RCW configuration
1. RCW in Taschenrechner kopieren
Use BSP Rev.0100 on MBLS102xA Rev.01xx
BSP Rev.0100 was designed to be run on Rev.0200 of the MBLS012xA.
On Rev.0200 of the MBLS102xA a different package type of the ethernet PHY is used than on Rev.01xx.
This results in different PHY addresses:
Connector | Controller | MBLS102xA Rev.01xx | MBLS102xA Rev.02xx |
---|---|---|---|
X12 | EC1 | 0x0D | 0x0C |
X13 | EC2 | 0x13 | 0x03 |
X11 | EC3 | 0x05 | 0x04 |
In order to use BSP Rev.0100 on MBLS102xA Rev.01xx the following patches must not be applied:
- U-Boot
- 0010-tqmls102xa-set-phy-addresses-for-mbls1021a.0200.patch
- 0011-phy_ti-adapt-hard-coded-skew-to-custom-values.patch
- Linux
- 0110-arm-dt-mbls102xa-set-phy-addresses-for-rev.0200.patch
- 0111-dt-mbls102xa-adapt-phy-timing-to-rev0200.patch
To “disable” these patches, simply comment them out in the corresponding series file:
Please note that the following interfaces cannot be used when using Rev.01xx of the MBLS102xA:
- EC2
- SATA
Use BSP Rev.0100 on MBLS102xA Rev.01xx
BSP Rev.0100 was designed to be run on Rev.0200 of the MBLS012xA.
On Rev.0200 of the MBLS102xA a different package type of the ethernet PHY is used than on Rev.01xx.
This results in different PHY addresses:
Connector | Controller | MBLS102xA Rev.01xx | MBLS102xA Rev.02xx |
---|---|---|---|
X12 | EC1 | 0x0D | 0x0C |
X13 | EC2 | 0x13 | 0x03 |
X11 | EC3 | 0x05 | 0x04 |
In order to use BSP Rev.0100 on MBLS102xA Rev.01xx the following patches must not be applied:
- U-Boot
- 0010-tqmls102xa-set-phy-addresses-for-mbls1021a.0200.patch
- 0011-phy_ti-adapt-hard-coded-skew-to-custom-values.patch
- Linux
- 0110-arm-dt-mbls102xa-set-phy-addresses-for-rev.0200.patch
- 0111-dt-mbls102xa-adapt-phy-timing-to-rev0200.patch
To “disable” these patches, simply comment them out in the corresponding series file:
- EC2
- SATA
Load / Change / Save the Device Tree under U-Boot
Devicetree can be edit with the fdt commands under U-Boot.
Therefore you can have a look at the following tutorial.
1) At first the fdt file has to be loaded from the current boot medium (mmc) into RAM.
=> run loadfdt
2) Next step is to set the predefined U-Boot environment variable fdt_addr through the fdt addr command.
=> fdt addr $fdt_addr
3) Afterwards the size of the fdt has to be increased (to the next 4K divider) in order to have some space for modifications. This is simply done by entering:
=> fdt resize
4) List device in the tree you want to change to have a look at the default settings.
5) To modify a value of a propertie use the fdt set command.
=> fdt set <path> <property> <value>
6) Optional: If you want to save your modified Devicetree back to mmc you'll have to run the following command:
=> mmc dev $mmcdev; mmc write $fdt_addr $fdt_start $fdt_size
* BSP Rev. >0102 <code>⇒ fatwrite mmc $mmcdev:$firmwarepart $fdt_addr $fdt_file <totalsize></code> You can find out <totalsize> of the modified fdt by entering the command fdt header Otherwise you can boot your module with the changed Devicetree right after the modification.
Known Issues PTXdist
TQMLS102xA BSP Rev.0102
Affects | TQMLS102xA with eMMC assembled |
---|---|
Issue | Sporadic kernel messages from eMMC driver:mmc0: Got data interrupt 0x00000002 even though no data operation was in progress |
Effect | No known effect regarding usability and performance of the eMMC |
Solution / Workaround | add patch emmc-remove-interrupt-0x00000002-message.zip |
MBLS102xA Rev.01xx EC2, HDMI, SATA
Affects | EC2, HDMI, SATA on MBLS102xA Rev.01xx |
---|---|
Issue | EC2, HDMI, SATA are not useable on MBLS102xA Rev.01xx |
Effect | EC2, HDMI, SATA are not useable on MBLS102xA Rev.01xx |
Solution / Workaround | Due to a hardware issue there is no workaround |
MBLS102xA Rev.01xx and Rev.0200 JTAG interface
Affects | JTAG interface on MBLS102xA Rev.01xx and Rev.0200 |
---|---|
Issue | Some Debuggers might require VREF voltage at X37_1 |
Effect | Some Debuggers can't establish a connection to the LS102xA |
Solution / Workaround | Place resistor R646 (100R, 0402) on MBLS102xA ![]() |
MBLS102xA Rev.0200 and Rev.0201 JTAG interface
Affects | MBLS102xA Rev.0200 and Rev.0201 |
---|---|
Issue | JTAG interface does not work due to an issue with the signal CPU_3V3_TRST# |
Solution / Workaround | Remove D40 on MBLS102xA Rev.0200 and Rev.0201 ![]() |
MBLS102xA Rev.01xx and TQMLS102xA Rev.02xx SD Card Boot
Affects | MBLS102xA Rev.01xx and TQMLS102xA Rev.02xx |
---|---|
Issue | Booting from SD Card/eMMC is not possible |
Solution / Workaround | Replace resistor R167 (10K, 0402) with (1K, 0402) on MBLS102xA REV.01xx ![]() |
TQMLS102XA-BSP-REV.0100 2nd CPU does not start
Affects | 2nd CPU Core LS102x |
---|---|
Issue | 2nd CPU Core Linux Kernel does not start the 2nd CPU Core |
Effect | only one CPU Core is useable |
Solution / Workaround | Kernel option CONFIG_ARM_PSCI must be selected in the ptxdist kernelconfig |
MBaLS102x
RS485
Yocto
DevHost
Build BSP
Adapt BSP
Deployment
Known Issues Yocto
(Deployment)
QNX BSP
U-Boot
Kernel
FAQ
Deployment
VxWorks BSP
U-Boot
Kernel
FAQ
Deployment
TQ-Systems GmbH provides the Board Support Packages (BSP) free of charge. The software included in the shipment has been configured individually for the starter kits. The software is only intended to evaluate the module. The use of the Board Support Packages (BSP) is only allowed within the scope of functionality described by TQ-Systems GmbH. TQ-Systems GmbH does not accept any liability for all further changes of the Board Support Package and for any damage resulting from its use.