DM37x Linux BSP Release Notes ------------------------------------------------------------------------------- Logic PD Version: 2.4-4 Hardware: DM3730/AM3703 SOM-LV, DM3730/AM3703 Torpedo SOM, DM3730/AM3703 Torpedo + Wireless SOM Date: 9/1/2015 ------------------------------------------------------------------------------- --------------------------- Table of Contents --------------------------- 0 Scope of Document 1 Included Packages 2 What's New and Fixed 3 Known Issues 4 General Information --------------------------- 0) Scope of Document -------------------- The information contained within these release notes may pertain only to this version of the Linux BSP. Please refer to Logic PD's website for more information. For installation instructions, please see the "DM37x Linux BSP User Guide" available at: http://support.logicpd.com/downloads/1431/ 1) Included Packages -------------------- --) The list of packages has been moved to a spreadsheet available on the DM37x product support website. The DM37x Linux BSP License Information spreadsheet includes the list of packages as well as the associated license information for the specific package. The DM37x Linux BSP License Information spreadsheet download link: https://support.logicpd.com/DesktopModules/Bring2mind/DMX/Download.aspx?portalid=0&EntryId=3014 2) What's New and Fixed ----------------------- --) [DM37LINUX-179] Overcurrent condition of USB host port on SOM-LV does not disconnect device; the code disables the port until the over-current condition is cleared --) [DM37LINUX-203] UART hardware flow control sporadically fails --) [DM37LINUX-428] Cold-boot time to desktop not meeting requirements --) [DM37LINUX-494] Fix poor wired LAN performance --) [DM37LINUX-512] l2ping is not functioning properly --) [DM37LINUX-606] Power consumption in suspend state too high --) [DM37LINUX-751] Resume from suspend temporarily then fall back to suspend --) [DM37LINUX-776] GPS fails after suspend/resume --) [DM37LINUX-877] pango fails to build in Ubuntu 12.04 LTS --) [DM37LINUX-845], [DM37LINUX-961] Fail to wake when resume by touching the LCD --) [DM37LINUX-891] Update u-boot to default stepping when new releases are made available --) [DM37LINUX-981] VM Network Adapter Needs to be Set as "Bridged" --) [DM37LINUX-984] Update compiler used for LTIB to newer version of GCC --) [DM37LINUX-993] Missing 5 GHz support in SoftAP mode --) [DM37LINUX-949] When running ping while going into suspend, SOM resumed on it's own. --) [DM37LINUX-1018] Speed up U-boot SD read speed (by a factor of over 9) --) [DM37LINUX-1036] DSP frequency is fixed at 260MHz --) [DM37LINUX-1037] Fix bash "Shellshock" security bug --) [DM37LINUX-1040] Remove baked in wireless CRDA in favor of userspace tools --) [DM37LINUX-1043] Memory Allocation issue with S-Video --) [DM37LINUX-1044] Several build issues with default LTIB configuration --) [DM37LINUX-1045] Poor performance before sleep. After sleep NEON speed tests increase 3x --) [DM37LINUX-1058] Update Backports from 3.17 to 4.0 --) [DM37LINUX-1061] Fix DVSDK and Gstreamer for 2011 toolchain --) [DM37LINUX-1062] Libtool in LTIB doesn't compile shared libraries --) [DM37LINUX-1064] Limit CRDA's Database to only allow US and Canada --) [DM37LINUX-1067] Add BLE support --) [DM37LINUX-1068] Bluez / GATTTool is not present --) [DM37LINUX-1072] Newer version of ti-utils doesn't install UIM --) [DM37LINUX-1041] Issue seen identifying Torpedo SOM as a SOM-LV --) [DM37LINUX-1049] u-boot: Cache not properly flushed with NAND DMA transfers --) [DM37LINUX-1051] Fix issue seen when bad blocks are present and using UBI volume support --) [DM37LINUX-1057] Kernel 3.0 has patches to 3.0.101 --) [DM37LINUX-1063] Many LTIB packages are old and do not build --) [DM37LINUX-1066] u-boot: Configuration Changes not being mapped. --) [DM37LINUX-1069] Update Bluetooth firmware from SP2.4 to SP2.14 3) Known Issues --------------- --) [DM37LINUX-176] Linux df_fire only covers 1/4 of screen --) [DM37LINUX-293] USB Logitech Web Camera V-UBK45 camera/audio device not properly identified as multi-function USB device --) [DM37LINUX-469] After suspend/resume, MP3 continues to play for about 10 seconds then stops --) [DM37LINUX-597] Some USB devices can take over a minute to properly come back from suspend / resume --) [DM37LINUX-624] OPP mode is not limited if CPU temp is too high --) [DM37LINUX-670] C6Accel produces errors --) [DM37LINUX-672] DSPLink may break system suspend --) [DM37LINUX-674] TIVidResize GStreamer plugin is non-functional --) [DM37LINUX-715] USB web cams do not work on ISP1763 due to lack of isochronous support --) [DM37LINUX-742] Idle power increases ~30 to 50mW after first suspend --) [DM37LINUX-750] USB OTG occasionally fails to recognize a device the first time it is plugged in --) [DM37LINUX-754] Unable to set interface netmask using static IP and no Ethernet connection --) [DM37LINUX-761] Occasional error when using Logictech USB webcam --) [DM37LINUX-870] C210 USB Webcam video playback cut short on SOM-LVs --) [DM37LINUX-890] SD folder bad after suspend resume if you were in it during suspend resume --) [DM37LINUX-906] Custom display setting in uboot does not allow splash screen or bmp to appear --) [DM37LINUX-925] ov7690 and MT9P031 Drivers preventing CAM power domain from going inactive when not being used. --) [DM37LINUX-928] Create NAND "refresh" utilities in u-boot --) [DM37LINUX-939] Increasing size of splash screen causes u-boot to fail while booting Linux kernel --) [DM37LINUX-941] Locking issue with wl12xx driver on T+W --) [DM37LINUX-951] Trying to write to yaffs (nand) in u-boot causes many blocks to need to be retired and fails. --) [DM37LINUX-952] Trouble erasing yaffs chunk in u-boot when trying to create directory with 'ymkdir' in u-boot --) [DM37LINUX-964] Trouble writing to yaffs with 'yrwm' in u-boot --) [DM37LINUX-965] Enabling Function Graph Tracer causes kernel crash --) [DM37LINUX-968] PRM_RSTST is wiped on a watch dog reset --) [DM37LINUX-988] Using hciconfig to set class and name of bluetooth device is not persistent when interface is restarted --) [DM37LINUX-1000] Only about 50 - 70 Mbps read/write performance from USBH and USBOTG --) [DM37LINUX-1012] Torpedo + Wireless locks up on OMG2K access point when power management is enabled --) [DM37LINUX-1013] Audio driver needs to enable Headset MIC BIAS output when using MIC_IN --) [DM37LINUX-1017] Stack dump during unmount of a yaffs filesystem --) [DM37LINUX-1020] USB OTG as HOST causes crash/reset/rediscovery of devices into and out of sleep --) [DM37LINUX-1106] GTK2 package does not build, recommend removing build option in future releases --) [DM37LINUX-1113] USB OTG: Intermittent detection issues around insertion / removal of USB devices 4) General Information ---------------------- --) For better WiFi performance for the default configuration, a new kernel configuration file (omap3logic_defconfig-performance) is included that disables some of the kernel's internal consistency checks and lock dependency proofing, as well as turns network packet filter/rewrite functionality into modules. In conjunction with modifications to IPtables scripts, the packet filtering modules are only loaded if needed by the LTIB configuration. This both speeds up network throughput while reducing in-kernel CPU usage. --) To use a different console than the default UARTA (i.e. UARTB or UARTC) you can change it in the LTIB configuration menu (./ltib -c): Target System Configuration -> Serial Console -> Default serial console and select the appropriate console. Once LTIB completes rebuilding make the appropriate console connection and boot the new image. Interrupt u-boot's autoboot and execute the commands: "env default -f;saveenv" and then "boot" to use the new console in the kernel/Linux. This is required since u-boot tells the kernel (via its environment) which console to use for its initial boot messages. --) For newer Bluetooth (4.101) support, Python and other packages are required which increases the rootfs footprint to a size that can not be held in a ramdisk. A separate LTIB defconfig (defconfig.new-bluez) is included that not only selects the newer bluez and associated packages but deploys to a YAFFS2 filesystem image. To build with it execute: ./ltib -b --preconfig config/platform/omap_logic/defconfig.new-bluez --) Changing compilers can be achieved in LTIB using the command "./ltib -c". See the Logic PD "DM37x Linux BSP User Guide" for additional information. When changing compilers, some packages do not implement "distclean" or "clean" stanzas in the makefile, or they do not implement them well. This is evident when rebuilding the BSP with a different compiler. To get around this issue, you may need to remove the "rootfs" and the "rpm" folders in the LTIB build directory. Once these directories are removed, the build system is fully cleaned, and a build with a different compiler will be valid. [DM37LINUX-849] --) It is possible to set the IP address on the command line (to dhcp, or static). However the command line and the network configuration need to match. If using "ip=dhcp," then the kernel expects to be able to get an address *before* kernel boot completes since you may be booting using a network-based root filesystem (i.e., NFS-root). Since most customers deploy using a RAMdisk, YAFFS, or SD card, any network configuration should not be done via the command line. Rather, the network configuration should be set in the LTIB configuration menu (./ltib -c): Target System Configuration -> Options -> Network setup For a dhcp configuration, be sure to choose to run udhcpd with the '-b' argument. This way, if no network is available because a cable is not plugged in, udhcpd will run in the background waiting for a connection to get an IP address. [DM37LINUX-851] --) When using the default build configuration while adding DVSDK and using a RAMdisk, there will not be enough RAM left for the kernel. To get around this, reconfigure the build to consume less RAM or use a file system based on SD, NAND flash, NFS, or NOR flash (if available). See the latest "DM37x Linux BSP User Guide" for more information. --) As with prior releases, to boot from SD/MMC, follow the steps below. a) Copy the following files from the build to a temporary directory: rootfs/boot/MLO rootfs/boot/u-boot.bin rootfs/boot/uImage rootfs.ext2.gz.uboot If "rootfs/boot/MLO" doesn't exist, rename "rootfs/boot/x-load.bin.ift" to "temp/MLO" (with no extension). Use this file instead of "rootfs/boot/x-load.bin." NOTE: Later releases now include creating the "MLO" file automatically. So, this rename step may not be required if the "rootfs/boot/MLO" file already exists. b) Create a bootable SD card using the HP USB Disk Storage Format Tool version 2.0.6 (hereafter, HP Format Tool) or use the script "bin/mkLogicFATcard.sh" included in the BSP tar ball. The HP Format Tool is available on the Logic PD website at: http://support.logicpd.com/downloads/1602/ When running the script, specify the SD card device. For example: $ bin/mkLogicFATcard.sh /dev/sd? where "/dev/sd?" is replaced with your SD card reader device. Be sure you indicate the correct device, as the script will erase all data on that device. c) Copy the "MLO" file to the SD card by itself first, followed by the rest of the files. d) Insert the SD card into your bootable SD card slot and power on. Make sure your environment in U-Boot is correct by interrupting U-Boot's autoboot process and entering the following command: env default -f; saveenv e) When complete, cycle the power to restart U-Boot. --) See the "README-setup" file included in the BSP tar ball for locations of the source files. --) To reconfigure Wi-Fi in either AP or Station mode, enter either of the following commands and answer the questions: /etc/rc.d/init.d/network-wifi-ap init /etc/rc.d/init.d/network-wifi-station init Note that you can start/stop Wi-Fi in either mode by executing the previous script with "stop" or "start" (instead of "init") to stop/start the Wi-Fi and associated services. --) U-Boot introduces a new hw ECC method "nandecc chip" necessary for use on the 4 GB Micron with internal 4-bit ECC PoP parts for reading/writing any data outside of the initial NoLo/X-Loader burned into the first block of NAND (as internal boot ROM requires "nandecc hw" method when burning X-Loader/NoLo into first block of NAND). For the Hynix NAND PoP parts, use "nandecc hw" for reading/writing all NAND blocks. Note that "nandecc $defaultecc" will set the ECC that is appropriate for the NAND, except when burning X-Loader into NAND. The ECC method set applies to all future NAND operations in U-Boot (until then next nandecc command changes it). --) To use the OTG peripheral in host mode, you MUST use a true OTG cable with a mini-A connector. Please note that the OTG connector will also accept a mini-B connector, but that will not properly configure the ID pin to set the OTG interface in host-mode (it will configure in device mode). --) The kernel takes a very long time (~6 minutes) attempting to connect to DHCP server on boot (via "ip=dhcp" on command line) when the Ethernet cable is unplugged. Either remove "ip=dhcp" from the command line or boot with an active Ethernet cable plugged in. --) Qtopia is not included in this demo image but is buildable in LTIB. --) For the SDK2 Baseboard (SOM-LV) PN 1017727 Rev B, jumper J42 must not be present for proper OTG operation. --) Within NAND flash, the YAFFS file system tracks how often each block has required ECC correction using a "strike count." Anytime an ECC correction is done, YAFFS internally garbage collects the block (effectively copying the contents out to another block, then erasing the block and reusing it later). When this strike count reaches three, YAFFS marks the block bad, not to be used again. This strike count is maintained in RAM, and the count is reset after any power cycle. Issue: YAFFS will increment the strike count much faster on 4-bit ECC NAND flash devices (more commonly used today by manufacturers) than 1-bit ECC NAND flash devices. This results in YAFFS marking blocks as bad at a much higher rate for 4-bit ECC devices than 1-bit ECC devices. It should be noted that YAFFS continues to maintain data integrity. But with prolonged use, the number of blocks available to use for data storage will drop prematurely over the lifetime of the device. Solution: Until a solution is created that determines the number of corrected bits (as the part itself only indicates that some correction was required) to better manage the life expectancy of 4-bit ECC NAND flash devices, Logic PD has devised a work around that can be used to help mitigate the premature retirement of NAND flash blocks. This work around is to allow the user to adjust the strike count limit. Where YAFFS has a fixed value of three strikes causing a block to be marked bad, a user can now modify this limit to any value from 0 (no blocks are retired) to 255. The strike count threshold is made configurable using a mount option to YAFFS as shown below (where "" can range from "3" to "255", or "0" to disable block retirement due to excessive ECC correction). If no mount option is used, then a default of 128 for a strike count is used only for the 4 GB Micron NAND: DM-37x# mount -t yaffs -o strikes= /dev/mtdblock3 /mnt/yaffs In the future, Logic PD will move to using software 4-bit BCH for this Micron NAND which requires a change in the NAND layout. Changing from in-chip ECC to software 4-bit BCH requires *all* of NAND to be reformatted. --) Due to the way the "pwr-button" application monitors the S2 button, if you suspend the system without "pwr-button" knowing about the suspend (i.e. echo mem > /sys/power/state) then when the system is woken via S2 button press it will interpret it as a Suspend request rather than dropping the keystroke. To get around this, make sure that you never use S2 to wake from a suspend that was not initiated by the "pwr-button" application. This application could be extended if you need this combined behavior. --) The USB stack sometimes perceives a low-speed device (or at least a specific low-speed device) as a full speed device on occasion. When this occurs the assignment of a unique device number to the periheral fails because the unit cannot communicate to the low-speed device using the full- speed link-level protocol. All traffic for this device ends up timing out in the USB host controller. The following are the symptoms one would see for this: The kernel log will show that a "new full speed USB device" was inserted despite it being a low speed device. Here's an example of the kernel log during this failure: usb 2-1: new full speed USB device number 7 using musb-hdrc usb 2-1: device descriptor read/64, error -110 usb 2-1: device descriptor read/64, error -110 usb 2-1: new full speed USB device number 8 using musb-hdrc usb 2-1: device descriptor read/64, error -110 usb 2-1: device descriptor read/64, error -110 usb 2-1: new full speed USB device number 9 using musb-hdrc usb 2-1: device not accepting address 9, error -110 usb 2-1: new full speed USB device number 10 using musb-hdrc Any traffic generated for this end point will end up with a timeout. The easiest way to invoke this is to execute a "cat /proc/bus/usb/devices" on the command line. This command creates traffic for each USB device on the system, and this will appear to hang while it times out attempting to talk with the USB device attached. Eventually this command will return, but the command is not interruptible (such as ctrl-c) while in the system call that interacts with the USB device. This only affects the thread which invoked the USB traffic and does not affect any other threads. Since USB device drivers require that the USB device is enumerated before selecting a the appropriate device driver, the USB device will not show up as the appropriate type during this error case. That is to say that any "/dev/" devices would not show up so one can only hit this particular timeout by interacting with /proc/bus/usb/devices, but one would see this error as the device is not present. [DM37LINUX-750] --) During the insertion detection, the USB PHY reports the status so software can determine if the ID pin is grounded or not. The software sometimes misclassifies a host device as a peripheral device. This only occurs if the device was plugged in quickly after being disconnected while the system is in the process of powering off the USB PHY. If this occurs the fact that a USB device was plugged in will not be noted at all by the kernel logs. [DM37LINUX-1113] --) During the insertion detection, it is possible for the software to issue a peripheral device classification followed by a host device classification back to back. When this occurs, the state-machine in the driver is messed up such that it will no longer allow the USB OTG PHY go into a low-power mode even during system-wide suspend causing additional power consumption. [DM37LINUX-1113] --) The Logic Tech C210 USB Webcam video is cuts short on playback. This is an issue that affects the SomLV only, not the Torpedo or Torpedo + Wireless SOMs. There is a known issue in which the playback of video recorded by the Logitech C210 USB webcam fails to fully playback. After recording video (about 10 seconds worth) from the webcam, when trying to play it back sometimes it fails to complete payback. The playback results are inconsistent in the amount of time that plays back before cutting short. An error message similar to the following is seen in the Teraterm serial port output (commands then output) [DM37LINUX-870]: DM-37x# gst-launch v4l2src num-buffers=90 device=/dev/video9 ! / 'image/jpeg,width=640,height=480,framerate=15/1' ! queue ! avimux ! / filesink blocksize=65536 location=usbvideo.avi DM-37x# gst-launch filesrc location=usbvideo.avi ! avidemux ! jpegdec ! / ffmpegcolorspace ! tidisplaysink2 ERROR: from element /GstPipeline:pipeline0/GstJpegDec:jpegdec0: Failed to / decode JPEG image Additional debug info: gstjpegdec.c(1264): gst_jpeg_dec_chain (): / /GstPipeline:pipeline0/GstJpegDec:jpegdec0: Error #60: Unsupported JPEG process: SOF type 0xc8 Execution ended after 2214569092 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... Freeing pipeline ... ----------------------------------------------------------------------------- Copyright (c) 2015 Logic PD, Inc. www.logicpd.com