BSP Overview
Third-Party Add-Ons
Board Support Packages
Product URL list
Starterkit
Hardware
Onboard I2C devices
TQMa335x / MBa335x
I2C bus | TQMa335x | |||||
---|---|---|---|---|---|---|
I2C0 | 0x12 PMIC | 0x1F Tempsensor | 0x2D PMIC | 0x50 EEPROM | 0x57 EEPROM | 0x68 RTC (optional DS1339) |
I2C bus | MBa335x | ||||
---|---|---|---|---|---|
I2C0 | 0x18 Audio Codec | 0x19 Tempsensor | 0x20 PCA9554 | 0x21 PCA9554 | 0x51 EEPROM |
Hardware Issues
Linux BSP
U-Boot
U-Boot
Supported FeaturesComponent | Status | Remarks |
---|---|---|
CPU | + | Cortex®-A8 |
Ethernet | + | 1 x CPSW (100 MBit working, GiGE with hardware modification (fixed with MBa335x Rev. ≥103)) |
eSDHC | + | eMMC / SD Card |
UART | + | |
I²C | + | EEPROM |
SPI | - | SPI NOR Flash |
eMMC / SD boot | + | |
TFTP boot | + | |
SPI NOR boot | - | |
USB Host | + | tested with USB Mass Storage Device (USB-Stick) |
Key: + tested | - untested | ? open |
Kernel
Operating System
Linux
Supported FeaturesBuildsystem | BSP Revision | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PTXdist | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||
Yocto | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||||||||
TQ Product | Device | Interface | Function | Pre-release | 0100 | 0101 | 0102 | 0115 | 0117 | 0119 | 0120 | 0121 | 0122 | 0123 | 0124 | 0125 | Remarks |
TQMa335x | AM335x | UART0 | RS485 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
AM335x | UART1 | Multiplexed | |||||||||||||||
AM335x | UART2 | Multiplexed | |||||||||||||||
AM335x | UART3 | TTL | ✔ | Not enabled by default | |||||||||||||
AM335x | UART4 | RS232 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
AM335x | UART5 | Multiplexed | |||||||||||||||
AM335x | USB0 | USB HOST | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | USB2517 Switch on mba335x | |
AM335x | USB1 | USB OTG | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | USB Device | ||
AM335x | DCAN0 | CAN 2.0B | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
AM335x | DCAN1 | CAN 2.0B | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
AM335x | SGX | PowerVR Graphics | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Hardware acceleration only with Yocto BSP | ||
AM335x | I2C0 | EEPROM Temp. Sensor | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
AM335x | I2C1 | Bus Access | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
AM335x | I2C2 | ✔ | ✔ | Multiplexed | |||||||||||||
AM335x | MCASP | Audio | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | line-out tested line-in working with BSP ≥ Rev.0115 |
||
AM335x | SPI0 | SPI NOR Flash | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
AM335x | SPI1 | ||||||||||||||||
AM335x | SPI2 | Multiplexed | |||||||||||||||
AM335x | SPI3 | Multiplexed | |||||||||||||||
AM335x | GPIO | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
AM335x | CPSW_3G | RGMII FEC 1 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Only 100Base-T works, 1000Base-T with hardware modification (fixed with MBa335x ≥ Rev.103) |
|
AM335x | CPSW_3G | RGMII FEC 2 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Only 100Base-T works, 1000Base-T with hardware modification (fixed with MBa335x ≥ Rev.103) |
|
AM335x | PRU-ICSS | on request | on request | on request | on request | on request | on request | on request | on request | on request | on request | on request | on request | on request | Muxed with LCD On Request |
||
AM335x | TSC_ADC | Touch | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
AM335x | LCD | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
AM335x | MMCHS | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||||
AM335x | BUZZER | ✔ | |||||||||||||||
AM335x | MMC0 | SD card interface | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | Writing on SD-Card only with hardware modification (fixed with MBa335x Rev. =103) |
|
AM335x | MMC1 | EMMC | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | TQMa335x Rev. =0203 have eMMC 5.0 devices assembled which are supported with BSP ≥ Rev.0115 A patch Linux BSP TQMa335x Rev.0102 - Fix eMMC 5.0 detection is available for BSP REV.0102 |
|
MBa335x | USB2517 | USB1 | USB 2.0 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
USB2517 | USB2 | USB 2.0 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
USB2517 | USB3 | USB 2.0 | ✔ | ✔ | ✔ | • | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
USB2517 | USB4 | USB 2.0 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
USB2517 | USB5 | LVDS-CMD | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
USB2517 | USB6 | USB 2.0 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |||
USB2517 | USB7 | Mini PCIe | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
FAQ
PTXdist
PTXdist BSP Version Matrix
BSP Version Matrix
BSP Revision | PTXdist | OSELAS Toolchain | Platform | U-Boot | Linux Kernel | Qt Version |
---|---|---|---|---|---|---|
0125 | 2020.01.0 | 2019.09.1 | mba335x | 2019.04 | linux-5.4.y-07.00.00.005-rt | No Qt configuartion |
0120 | 2020.01.0 | 2019.09.1 | mba335x | 2019.04 | linux-5.4.y-07.00.00.005-rt | No Qt configuartion |
0119 | 2016.04 | 2014.12.2 | mba335x | 2013.07 | 4.4.39 | 4.8.7 |
0117 | 2016.04 | 2014.12.2 | mba335x | 2013.07 | 4.4.39 | 4.8.7 |
0115 | 2013.12 | 2014.12.2 | mba335x | 2013.07 | 3.14.19 | 4.8.5 |
0102 | 2013.12 | 2013.12.1 | mba335x | 2013.07 | 3.12.10 | 4.8.5 |
0101 | 2013.12 | 2013.12.0 | mba335x | 2013.07 | 3.12.10 | 4.8.5 |
0100 | 2012.07 | 2011.11.0 | mba335x | 2013.07 | 3.2 | 4.8.2 |
PTXdist Changelog
BSP Version History
2018/12/12 -REV 0119
BSP
- rootfs as ext4
- Support for TQMa335x variant AB
U-Boot v2013.07 - TQMa335x/L
- Support for TQMa335x variant AB
Linux v3.14.19 - TQMa335x/L
- Optimized kernel config
- enabled DRM and CPU_IDLE
Linux v3.14.19 (ti2014.10) - TQMa335x:
- Optimized kernel config
- enabled DRM and CPU_IDLE
Linux v3.14.19-rt16 - TQMa335x
- Optimized kernel config
- enabled DRM and CPU_IDLE
Linux v4.4.39 - TQMa335x:
- Optimized kernel config
- enabled DRM and CPU_IDLE
2017/07/07 -REV 0117
U-Boot v2013.07 - TQMa335x/L
- tqma335x: add module identification eeprom support
- ksz9031: center flp timing
- am33xx: Always inhibit init/refresh during DDR phy init
- am33xx,ddr3: fix ddr3 sdram configuration
- ARM: am437x: Enable hardware leveling for EMIF
- ARM: AM43xx: EPOS_EVM: Add support for LPDDR2
- ARM: AM33xx+: Update ioregs to pass different values
- am33xx: Stop modifying certain EMIF4D registers
- tqma335x: adapt loadaddr and fdtaddr locations
- tqma335x: new DDR3 timing, CLKINVERT=1
- MMC: add MMC_VERSION_5_0
Linux v3.14.19 - TQMa335x/L
- mba335x: dt: adapt to etm0700g0bdh6 timing
Linux v3.14.19 (ti2014.10) - TQMa335x:
- <none>
Linux v3.14.19-rt16 - TQMa335x
- <new>
Linux v4.4.39 - TQMa335x:
- <new>
2016/04/18 - REV 0115
- Integration to ARM BSP (see also TQMa28 BSP changes)
- Add support TQMa335xL (same as TQMa335x, except RAM timing)
- TQMa335xL: no U-Boot build for SPI (no flash present)
- Kernel Update 3.14.19 and ti2014.10.00
Build tools
- OSELAS.Toolchain-2014.12.2
U-Boot
- MMC dsr support
- Support for multiple Ethernet PHYs
- Fixed reset freeze
- Show kernellog on tty0
- Show correct capacity for e-MMC SLC mode
- Add MAC address for second Ethernet interface
Linux kernel
- Support for MBa335x interfaces
- Median filter for analog touch coordinates
- Add sound support
- Fix RTC support in PMIC
- Fixed parallel display on mainline kernel
- Support new standard display revision
- Support new touch version on display kit (still buggy)
2014/09/22 - REV 0102
BSP
- upgrade gdb version to 7.7.1
Linux 3.12.10
- MMC: add support for SET_DSR command
- MMC: mmc-esdhci-imx: add DSR device tree support
- drivers: net: phy: micrel: errata for KSZ9031
- tqma335x: dt: usb1 as peripheral
- am33xx: trigger cold reset to fix samsung ddr3 freeze
U-boot 2013.07
- mmc: add setdsr suppport
- tqma335x: set dsr setting and populate to dt
- tqma335x: register both phys
- tqma335x: trigger cold reset to fix samsung ddr3 freeze
Adapt BSP
we suggest to read the following pages before you proceed with this page
The BSP was developed for the starterkit . 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-<label mb_name_code>MB_NAME_CODE</label> 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.
PTXdist_partitions
PTXdist Deployment
Updating the firmware
In this context, firmware refers to a complete system image (see above), including U-Boot, Linux Kernel and Root Filesystem.
For convenience, the default U-Boot environment provides several variables, which can be used to transfer (parts of) the firmware between different storage locations (e.g. SD card, eMMC, NFS, …). The names of these variables adhere to the syntax
upd_<PART>_<TARGET>_<SOURCE>
with the following options
<PART> = firmware | uboot | kernel | rootfs <TARGET> = emmc | sd | spi <SOURCE> = emmc | sd | net
The size of the firmware is stored in mmcfirmwareblksize
, please set accordingly if your firmware exceeds the default size of 0x32000
.
Formula to calulate the mmcfirmwareblksize
Size of sd.hdimg in bytes / 512 = convert the result into a hex value
For example, to copy the whole firmware from SD card to eMMC execute
U-Boot# run upd_firmware_emmc_sd
For further details, please have a look at the contents of the respective environment variable, e.g.
U-Boot# printenv upd_firmware_emmc_sd upd_firmware_emmc_sd=mmc dev ${sddev} && mmc rescan && mmc read ${loadaddr} 0 ${mmcfirmwareblksize} && mmc dev ${emmcdev} && mmc rescan && mmc write ${loadaddr} 0 ${mmcfirmwareblksize}
PTXdist Platform
Select one of the supported hardware platforms, select a software configuration and start building the image.
The available hardware platforms for TQMa335x are:
- configs/platforms/tqma335x/mba335x/platformconfig
Currently the following software configurations are available:
- /configs/systems/qt
- /configs/systems/minimal
Building the BSP:
BSP Rev.0115 (and earlier)
$ ptxdist platform configs/platforms/tqma335x/mba335x/platformconfig $ ptxdist select configs/systems/minimal/ptxconfig # we have to use git for the patching because of a binary-patch $ ptxdist go --git $ ptxdist images
BSP Rev.0120
$ tools/config-mba335x.tiny
this will effectivly:
- check for configured ptxdist version
- create symlink to configured ptxdist version (
./p
→/usr/local/bin/ptxdist-<version>
) - call
./p platform configs/platforms/tqma335x/mba335x/platformconfig
- call
./p select configs/systems/qt/ptxconfig
- call
./p select configs/platforms/tqma335x/ptxcollection.tqma335x
Finally you can build the BSP by executing
$ ./p images --git
PTXdist Images
Finally, you will find the built images in platform-MBa335x/images.
Complete system images:
SD-Card/eMMC
- image-u-boot-mba335x-mmc-hd.img : Complete Image for modules with 256 MB and 512 MB RAM
Bootloader images:
- u-boot-mba335x-mmc-MLO : SPL U-Boot for SD / e-MMC boot
- u-boot-mba335x-mmc.img : U-Boot for SD / e-mmc boot
Linux images:
- linuximage : Kernel (uImage)
- am335x-mba335x.dtb : device tree blob for TQMa335x on MBa335x
- am335x-mba335x-dmb-ct44.dtb : - with parallel display (DMB S070WV106H-CT44/S070SWV29HG-DC44)
- am335x-mba335x-glyn-etm0700.dtb : - with parallel display (GLYN ETM0700G0EDH6)
- am335x-mba335x-lvds-g104x1.dtb : - with LVDS display (Tianma TM070JVHG33)
Rootfs images:
- root.ext2
- root.tgz
PTXdist 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 on each revision of the BSP.
Linux BSP Rev.0119 for TQMaXX☚ current revision
MD5SUM: B26ACB00737A50D8E4222826E409AD4D
Linux BSP Rev.0117 for TQMaXX
MD5SUM: B26ACB00737A50D8E4222826E409AD4D
Linux BSP Rev.0115 for TQMaXX
MD5SUM: 03ADD8D8F7B3A2B499B2BEEEDCF7A3AA
Linux BSP REV.0102 for TQMa335x
MD5SUM: 583083338CCA0EBA2589CDAB89C80FB0
Linux BSP REV.0101 for TQMa335x
MD5SUM: EF3272FC79D14739F2765CCC7A7D9551
Linux BSP Rev.0100 for TQMa335x
MD5SUM: 2DD44DA435F21577EDCC231BC5812533
Linux Source BSP for TQMa335x Pre-release
MD5SUM: 1FD569CB04D55A95C56BDFB4A3AE579A
Binary Linux Images for TQMa335x Pre-release
MD5SUM: 8B272FF68240CA9317F251C0AE7B051C
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
Known Issues PTXdist
Hardware
Writing on SD Card | |
---|---|
Affects | writing on SD Card doesn't work for now |
Issue | |
Effect | |
Solution / Workaround | Fixed with MBa335x Rev. ≥103 |
Hardware
Ethernet Speeds | |
---|---|
Affects | Only 100Base-T works |
Issue | |
Effect | |
Solution / Workaround | Fixed with MBa335x Rev. ≥103 |
FAQ
Yocto
Yocto BSP Version Matrix
BSP Version Matrix
BSP Revision | ci-meta-tq release | Yocto Project / Poky Release | Target machine1) | U-Boot | Linux Kernel |
---|---|---|---|---|---|
0125 | kirkstone | 4.0.5 - Kirkstone | tqma355x-mba335x | 2019.04 | 5.4.y-07.00.00.005-rt |
0124 | kirkstone | 4.0.5 - Kirkstone | tqma355x-mba335x | 2019.04 | 5.4.y-07.00.00.005-rt |
0123 | hardknott | 3.3.3 - Hardknott | tqma355x-mba335x | 2019.04 | 5.4.y-07.00.00.005-rt |
0122 | hardknott | 3.3.3 - Hardknott | tqma355x-mba335x | 2019.04 | 5.4.y-07.00.00.005-rt |
0121 | zeus | 3.0.4 - Zeus | tqma355x-mba335x tqma355x_512mb-mba335x | 2019.04 | 5.4.y-07.00.00.005-rt |
0120 | zeus | 3.0.4 - Zeus | tqma355x-mba335x tqma355x_512mb-mba335x | 2019.04 | 5.4.y-07.00.00.005-rt |
Yocto Changelog
BSP version history
REV.0124
BSP
- Update to Yocto Kirkstone
- Update documentation
- Add issues
- Add infos for boot sources and update
- Allow configuration of boot VFAT size. This enables smaller sizes if the kernel image will be installed into /boot which is the default now.
- Do not install kernel and dtb into boot VFAT image. The images are already found and used from /boot
- Add ubi to MACHINE_FEATURES since we have an optionally assembled SPI-NOR, ubi should be added to have the ability to install MTD utils in rootfs based on MACHINE_FEATURES
- Installation of MLO for SPI NOR Flash in Yocto recipe
- SPI NOR boot support
U-Boot
- Fixed incorrect MAC addresses in environment
- SPDX license header for TQMa335x[L] sources and DT
- Backport fixes for environment for multiple environment location support
- Cleanup update scripts and variables
Linux
- Change compression to speed up booting
- Disable debug options to speed up booting
- Rewrite recipe to support config fragments
- Port some config fragments from TQMa6
- Use same e-MMC pad configs in DT as in U-Boot
REV.0123
U-Boot
- Fixed incorrect MAC addresses in environment
REV.0122
Documentation
- Added issues
- Added infos for boot sources and update
U-Boot
- Changed the cleanup update scripts and variables
- Added installation of MLO for SPI NOR Flash in yocto recipe
- Added SPI NOR boot support
- Fixed SPDX license header for sources and DT
- Fixed backport for environment for multiple environment location support
REV.0121
U-Boot
- Added the mmc hwpartition allows size for the entire e-mmc
- Changed slew rate of e-mmc pins set to slow
REV.0120
Initial Yocto BSP release
BSP
- Support for TQMa335x[L] module revisions REV.020x
- Support for MBa335x revisions REV.020x
- uboot-tq (Based on Mainline 2019.04)
- TI-linux-5.4.43 (Based on TI linux-5.4.y-07.00.00.005-rt)
Yocto Images
Target Machine: tqma335x-mba335x
System Images
Boot Device | Symlink | File |
---|---|---|
SD Card/eMMC | tq-image-weston-debug-tqma335x-mba335x.wic | tq-image-weston-debug-tqma335x-mba335x-<build_timestamp>.rootfs.wic |
Bootloader Binaries
Boot Device | Symlink | File |
---|---|---|
SD/eMMC | MLO | MLO-tqma335x-mba335x-2019.04-r0 |
SD/eMMC | u-boot.img | u-boot-tqma335x-mba335x-2019.04-r0.img |
Linux Kernel Image
Symlink | File |
---|---|
zImage | zImage–5.4.43+git0+ac339a72ad-r0-tqma335x-mba335x-<build_timestamp>.bin |
Devicetree Blobs
Symlink | Description |
---|---|
am335x-mba335x.dtb | Default |
am335x-mba335x-dmb-ct44.dtb | Default with parallel display |
am335x-mba335x-glyn-etm0700.dtb | Default with parallel display |
am335x-mba335x-lvds-g104x1.dtb | Default with LVDS display |
Rootfs images
Symlink | File |
---|---|
tq-image-weston-debug-tqma335x-mba335x.ext4 | tq-image-weston-debug-tqma335x-mba335x-<build_timestamp>.rootfs.ext4 |
tq-image-weston-debug-tqma335x-mba335x.tar.gz | tq-image-weston-debug-tqma335x-mba335x-<build_timestamp>.rootfs.tar.gz |