This is an old revision of the document!



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 2.6.35.13 | 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”

Error message:

[    1.090000] VFS: Cannot open root device "mmcblk0p3" or unknown-block(0,0): error -6
[    1.100000] Please append a correct "root=" boot option; here are the available partitions:
[    1.110000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.110000] [<c00139f8>] (unwind_backtrace+0x0/0xf0) from [<c02f87fc>] (panic+0x98/0x1f4)
[    1.110000] [<c02f87fc>] (panic+0x98/0x1f4) from [<c042cbf4>] (mount_block_root+0x178/0x22c)
[    1.110000] [<c042cbf4>] (mount_block_root+0x178/0x22c) from [<c042cd8c>] (mount_root+0xe4/0x10c)
[    1.110000] [<c042cd8c>] (mount_root+0xe4/0x10c) from [<c042ced0>] (prepare_namespace+0x11c/0x180)
[    1.110000] [<c042ced0>] (prepare_namespace+0x11c/0x180) from [<c042c8b0>] (kernel_init+0x170/0x1ac)
[    1.110000] [<c042c8b0>] (kernel_init+0x170/0x1ac) from [<c000f8b4>] (kernel_thread_exit+0x0/0x8)
[    1.110000] Rebooting in 1 seconds..

Kernel command line:

[    0.000000] Kernel command line: fec_mac=02:00:01:00:00:01 ip=:::::eth0:off root=/dev/mmcblk0p3 ro console=ttyAPP3,115200 lcd_panel=fg0700 ssp1 panic=1

U-Boot mmc part lists the partition:

TQMa28 U-Boot > mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Partition     Start Sector     Num Sectors     Type
    1                16384           16384      53
    2                32768           16384      83
    3                49152         3784704      83

Solution: add the rootwait option to the command line:

TQMa28 U-Boot > setenv addmmc 'setenv bootargs $bootargs root=/dev/mmcblk0p3 ro rootwait'
  • Last modified: 2022/08/04 15:04