Embedded module TQMa28 - PTXdist Linux BSP documentation

RS485 bus block in half-duplex mode
Affects RS485 via UARTx
Issue During i.MX28 reset the UARTx.CTS# pin is low by default (CPU internal pull down)
Effect Using the MBa28 RS485 circuitry in a half-duplex slave device or half-duplex multi-master environment may block the RS485 bus during i.MX28 reset.
The bus is released as soon as the UARTx.CTS# pin is properly configured by software (e.g. U-Boot, Linux, etc.)
Solution / Workaround Add a 10k pull up to the UARTx.CTS# signal on carrier board

TQMa28 & TQMa28-fsl | e-MMC drive strength (SETDSR)
  • Affected hardware revisions: TQMa28 module REV0200
  • Impact: eMMC drive strength (card to host) is too high in card default configuration. This degrades signal integrity and has the potential to degrade the lifetime.
  • Solution: use only new linux / u-boot from BSP REV0106 or port the required changes to your bootloader /operating system.
  • Details: Starting with hardware REV0200 a new eMMC type with better performance characteristics is used on TQMa28. This eMMC features a configurable drive strength (MMC CMD4 - SET_DSR, see JEDEC Standard No. 84-A441, Table 22)
    To keep signal integrity and prevent degrading the lifetime of the processor the following configuration step for the eMMC must be implemented:
    • Write 0x0100 + 16 Stuff bits using CMD4 to the card everytime the card is selected using CMD7
  • The current state of the changes needed in BSP REV0106 for:
    • U-Boot 2013.04 (TQMa28/28L): modifies device tree before booting linux to incorporate DSR value for eMMC value
    • U-Boot 2009.08 (TQMa28-fsl): modifies linux command-line to incorporate DSR value for eMMC value
    • Linux 3.10 (TQMa28/28L): value of DSR parsed from device tree property
    • Linux 2.6.35 (TQMa28-fsl): value of DSR parsed from kernel command-line

Both device tree and command-line implement the value as “tq,dsr”.

TQMa28 & TQMa28-fsl | U-Boot | Firmware Updates via SD card
  • Affected Revisions: 0100, 0101
  • Issue: Unable to extract sizes of images on SD card ⇒ Unable to calculate required sectors to save image
  • Workaround: whole uboot/kernel partitions copied
TQMa28 | U-Boot | Environment location
  • Affected Revisions: 0101
  • Issue: Environment gets saved to and loaded from hard-coded mmc device 0
  • Workaround: none - future release: replace hard-code with dynamic code
TQMa28 | U-Boot | VDDA Brownout
  • Affected Revisions: 0101
  • Issue: The brownout value of register HW_POWER_VDDA is set to 100 mV below 1.8 V. During boot voltage drops >100mV occur. For the VDDA_BO being too close the device powers down and thus stops after the Kernel line “TCP established hash table entries”.
  • Workaround: Increase brownout span to 150 mV.
    –> At the U-Boot prompt type: mw 80044050 0x0008260c
    –> You may also automate this by changing default boot command: setenv bootcmd “mw 80044050 0x0008260c; $bootcmd”; saveenv
TQMa28-fsl | Linux | Ethernet Issue
  • Affected Revisions: 0101
  • Issue: Ethernet link cannot be established to 10 mbit half duplex counterpart
  • Workaround: none - fixed in future release
TQMa28 | Linux 3.5 | GPIO0 IRQ
TQMa28 | Linux 3.5 | Login as non-root
  • Affected Revisions: all up to 0103
  • Issue: “adduser X; login X” results in message “Killed”
  • Workaround: This issue will be fixed in BSP 0103.
    Until then set Kernel config option CONFIG_DEFAULT_MMAP_MIN_ADDR to 32768. Find it at Kernel features - Low address space to protect from user allocation
TQMa28 | Linux 3.5 | USB device connected before boot
  • Affected Revisions: BSP 0102
  • Issue: The Operating System does not recognize USB devices if they are plugged in before boot.
  • Workaround: Modify the Devicetree. Add/change at usb@80090000 the following property “dr_mode” to “dr_mode = host”