This is an old revision of the document!
Embedded module TQMa28 - PTXdist Linux BSP documentation
Known Issues
MBa28
RS485
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
- Affected Revisions: 0101
- Issue: GPIOs on Bank 0 are unusable as interrupt source
- Workaround: Patch included into next BSP revision. See https://community.freescale.com/thread/231371
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”
Linux boot Kernel panic Unable to mount root fs
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'