Third-Party Add-Ons

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

U-Boot

Supported Features
Component 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

Linux

Supported Features
Buildsystem BSP Revision
PTXdist
Yocto
TQ Product Device Interface Function Pre-release 0100 0101 0102 0115 0117 0119 0120 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 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 Not tested
USB2517 USB5 LVDS-CMD Not tested
USB2517 USB6 USB 2.0 Not tested
USB2517 USB7 Mini PCIe Not tested

BSP Version Matrix

BSP Revision PTXdist OSELAS Toolchain Platform U-Boot Linux Kernel Qt Version
0100 2012.07 2011.11.0 mba335x 2013.07 3.2 4.8.2
0101 2013.12 2013.12.0 mba335x 2013.07 3.12.10 4.8.5
0102 2013.12 2013.12.1 mba335x 2013.07 3.12.10 4.8.5
0115 2013.12 2014.12.2 mba335x 2013.07 3.14.19 4.8.5
0117 2016.04 2014.12.2 mba335x 2013.07 4.4.39 4.8.7
0119 2016.04 2014.12.2 mba335x 2013.07 4.4.39 4.8.7
0120 2020.01.0 2019.09.1 mba335x 2019.04 linux-5.4.y-07.00.00.005-rt No Qt configuartion

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

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.

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}

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

Finally, you will find the built images in platform-MBa335x/images.

Complete system images:

SD-Card/eMMC
  • image-u-boot-256mb-mba335x-mmc-hd.img : Complete Image for modules with 256 MB RAM
  • image-u-boot-512mb-mba335x-mmc-hd.img : Complete Image for modules with 512 MB RAM

Bootloader images:

  • u-boot-256mb-mba335x-mmc-MLO : SPL U-Boot for SD / e-MMC boot
  • u-boot-512mb-mba335x-mmc-MLO : SPL U-Boot for SD / e-MMC boot
  • u-boot-256mb-mba335x-mmc.img : U-Boot for SD / e-mmc boot
  • u-boot-512mb-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

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


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

BSP Version Matrix

BSP Revision meta-tq release Yocto Project / Poky Release Target machine1) U-Boot Linux Kernel
0120 zeus 3.0.4 - Zeus tqma355x-mba335x
tqma355x_512mb-mba335x
2019.04 5.4.y-07.00.00.005-rt

BSP version history

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)

1)
i.e. value for MACHINE variable