L25.INC2.5 Release Notes

=Introduction= This release has been developed and tested in the following environment. OS Kernel: Linux® 2.6.29. AndroidTM Éclair 2.1 public project. Toolchain: CodeSourcery compiler version 2008q3-72. Manifest: http://git.omapzoom.org/?p=repo/android/platform/omapmanifest.git;a=commit;h=bdee72ef50370e07aaa13b254a1ec7d2451796b8. U-boot Version: 248783f15092779da506801e97936aa2b7ed3783. X-loader version: 49f261c4e0bbc5d50e164f5fc58442dec68654b6.

=Release Content= The release refers to the source code in git trees and the binary packages are distributed in different projects. The next section on how to build will help pull them into the correct directories to integrate the software system.

Documentation OMAPpedia is an excellent source for details on the various components. There is a project listing in the main page on the various components. You may also go and check the following: Refer to BSP release notes at    https://gforge.ti.com/gf/project/omapandroid/docman/?subdir=11 Refer to Bridge release notes at   https://gforge.ti.com/gf/project/omapandroid/docman/?subdir=17 Power Management materials PM is enabled by default in the kernel, but for enabling any of the features we need to use some sysfs entries from user space: http://omappedia.org/wiki/Linux_OMAP_Kernel_Main http://elinux.org/OMAP_Power_Management Refer to OMX release notes at https://gforge.ti.com/gf/project/omapandroid/docman/?subdir=22

Source code Release Manifest for open code source. Release Tag - RLS25.INC2.5rc2

Follow these instructions in order to download RLS25.INC2.5rc2 manifest:

mkdir RLS25.INC2.5RC2 cd RLS25.INC2.5RC2 repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b eclair cd .repo/manifests git reset --hard RLS25.INC2.5rc2 cd ../.. repo sync

Kernel cloning git clone git://git.omapzoom.org/kernel/omap.git cd omap/ git checkout --track -b p-android-omap-2.6.29 origin/p-android-omap-2.6.29 git checkout 6bec52ae43198677467744befd6598ab19f5c041

Other Binary packages DSP Binary Package - binaries Connectivity Package - project Graphics Package - Please refer to Build/Install instructions on details

=Build and Installation Instructions= Building the Bootloader, Kernel and Android File System

The final Release RC tag from L25x manifest for the source should be used. Perform a clean build of u-boot, x-loader, kernel and the android file system. Instructions on how to build can also be obtained from Android Wiki

Pre-built binaries from this release can be obtained from Package. Please follow the below instructions to modify the file system to make it work.

DSP binaries package 

Pull in the DSP binaries and install them following the instructions in the readme.txt in the package. Features supported can be referred at OpenMAX page

IMPORTANT: First you need to rename/move a couple of libraries to make them work. The libraries are in /system/lib:  libOMX.TI.AMR.decode.so  libOMX.TI.AMR.encode.so    Rename them to something else (e.g. libOMX.TI.AMR.decode.so.bak and libOMX.TI.AMR.encode.so.bak). By default, AMR libraries have been already renamed in available pre-compiled binaries RLS25.INC2.5 Package.

If you are booting from NAND then once you have booted your filesystem, on your terminal type the following:

cd /system/lib mv libOMX.TI.AMR.decode.so libOMX.TI.AMR.decode.so.bak mv libOMX.TI.AMR.encode.so libOMX.TI.AMR.encode.so.bak

then reboot.

Connectivity package 

Connectivity package can be obtained from Wilink package. For instructions to build and test, refer to Wilink wiki

Graphics package 

To access the graphics package - following steps are required  Send an email to 'gamingonomap@list.ti.com' requesting access to the OMAP – Mobile Gaming extranet You will get an e-mail as a response to your request. Follow instructions in the e-mail to register at TI extranet site Go to OMAP Gaming website - https://www-a.ti.com/extranet/cm/product/wtbugaming/wtbuext/general/homepage.shtml and log in with your newly created credentials Download the file named: OMAP36xx_Android_SGX_SDK_zoom3_20100506.zip referred as OpenGL®ES Graphics Android SDK for OMAP3630 Zoom3 Development platform Supports OpenGLES v1.1 OpenGLES 2.0 and OpenVG 1.1 on the web-page. Please note you will need to accept the licensing terms before downloading the package. Copy to Linux PC, after unzipping the package you should get Linux installer with the file name OMAP36xx_Android_SGX_SDK_zoom3-1.5.15.2766.bin You may need to give execute permission with below command $ chmod +x OMAP36xx_Android_SGX_SDK_zoom3-1.5.15.2766.bin Now run this installer $ ./OMAP36xx_Android_SGX_SDK_zoom3-1.5.15.2766.bin Read the license terms and accept them to install the graphics SDK on to your system. After successful installation you will get a directory with name OMAP36xx_GFX_Android_SDK in a given path. Refer the readme.txt file in this package for using the SDK. 

Booting with zoom2 (OMAP 3430):
RLS25.INC2.5rc2 release is supported by Zoom2 (OMAP 3430). Pre-compiled binaries are already available:
 * Uboot
 * Xloader
 * Kernel
 * Android File System

Rename the files above by removing '_zoom2' (e.g. uImage_zoom2 to uImage) and boot as usual using the following bootargs:

Bootargs nand unlock nand ecc hw nand erase setenv bootargs console=ttyS3,115200n8 root=/dev/mmcblk0p2 rw rootdelay=1 mem=256M init=/init setenv videoout=omap24xxvout omap_vout.video1_numbuffers=6 omap_vout.vid1_static_vrfb_alloc=y omapfb.vram="0:4M" setenv bootcmd 'mmcinit 0; fatload mmc 0 0x81c00000 uImage; bootm 0x81c00000' saveenv boot

If you want to create your own build for zoom2; then consider the following updates to the build procedure.

Note that even when you do not need to re-compile the Android File System; if you plan to test Wifi you will need to clone (if it is not yet available in your environment) at least this particular project using the specified version within the manifest and re-compile as instructed below.

Uboot cd $MYDROID/bootable/bootloader/u-boot make distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap3430zoom2_config make CROSS_COMPILE=arm-none-linux-gnueabi- cp $MYDROID/bootable/bootloader/u-boot/tools/mkimage ~/bin/

Xloader cd $MYDROID/bootable/bootloader/x-loader make distclean make CROSS_COMPILE=arm-none-linux-gnueabi- omap3430zoom2_config make CROSS_COMPILE=arm-none-linux-gnueabi- ift

Kernel

Before the kernel compilation, you will need to download the RLS25.INC2.5rc2 patches for zoom2. cd  git apply 0001-Page-flipping-frame-buffer-issue-FIXED.patch git apply 0001-Including-FM-during-kernel-modules-compilation-for-3.patch make CROSS_COMPILE= /arm-none-linux-gnueabi- distclean make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- zoom2_defconfig make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage

Kernel modules make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- modules cd $MYDROID/../myfs_25.INC2.5 cp -prf /drivers/misc/ti-st/*.ko.

WIFI cd $MYDROID/system/wlan/ti/wilink_6_1/platforms/os/linux export ARCH=arm export HOST_PLATFORM=zoom2 export KERNEL_DIR=<path_to_kernel> export CROSS_COMPILE=arm-none-linux-gnueabi- make cd $MYDROID/system/wlan/ti/wilink_6_2/platforms/os/linux make Now you should have available: Copy these into your myfs folder. If you downloaded the pre-compiled binaries then by default is named as myfs_25.INC2.5. cp $MYDROID/system/wlan/ti/wilink_6_1/config/tiwlan.ini $MYDROID/../myfs_25.INC2.5/system/etc/wifi cp $MYDROID/system/wlan/ti/wilink_6_1/platforms/os/linux/tiwlan_drv.ko $MYDROID/../myfs_25.INC2.5/system/etc/wifi cp $MYDROID/system/wlan/ti/wilink_6_2/platforms/os/linux/tiap_drv.ko $MYDROID/../myfs_25.INC2.5/system/etc/wifi/softap cp $MYDROID/system/wlan/ti/wilink_6_2/config/tiwlan_ap.ini $MYDROID/../myfs_25.INC2.5/system/etc/wifi/softap Unless stated otherwise, ensure you have allocated firmware.bin included in Wilink package in the usual place ($MYDROID/../myfs_25.INC2.5/system/etc/wifi).
 * tiwlan_drv.ko
 * tiwlan.ini
 * tiap_drv.ko
 * tiwlan_ap.ini

= New in this Release =  <li>This release was validated using "Éclair" public branch <li>This release is on 2.6.29 Kernel. <li>PV OpenCore® 2.02 and patches <li>BSP  <li>MUSB DMA optimizations. <li>MUSB and MMC PM Constraints update. <li>EHCI PHY mode support. <li>Support for pre-multiplied alpha blending. <li>OFF mode fixed. <li>TV out support. <li>Remove the console dbg msgs from DISPC. <li>Fix c-state constraint for HDMI GFX_FIFO_UNDERFLOW. <li>Improving throughput using the constraints framework. <li>Disable OTG AUTOIDLE feature to allow OMAP3630 to hit OFF mode. <li>Update DMA buffer address between DMA/PIO transfers. </ul>

<li>Image/Video  <li>Support for Audio “crackle” sounds are heard in addition to the recorded sound for first 2-3 seconds of the recorded clip. During this time video is somewhat jumpy. <li>Fixed: AV sync fails (delay of close to 1 sec is there, first audio is played followed by video). <li>Fixed: Recorded fps is less than the set value (eg: records at 27fps for 30fps setting, 13 for 15fps). <li>Robustness and Clean ups in Camera subsystem components. <li>DSP Socket Nodes migration 3.11. <li>Review comments defect fixes in OMX JPEG and CameraHAL. <li>128 Byte alignment. <li>CameraHAL component test app, Added 43 new test cases as part of Unit test suite on for CameraHAL. "pal" and "ntsc" that can be used to tv out. <li>omapfb.vram= : [@ ][,...] VRAM allocated for a framebuffer. Normally omapfb allocates vram depending on the display size. With this you can manually allocate more or define the physical address of each framebuffer. For example, "1:4M" to allocate 4M for fb1. <li>omapfb.debug=<y|n> Enable debug printing. You have to have OMAPFB debug support enabled in kernel config. <li>omapfb.test=<y|n> Draw test pattern to framebuffer whenever framebuffer settings change. You need to have OMAPFB debug support enabled in kernel config. <li>omapfb.vrfb=<y|n> Use VRFB rotation for all framebuffer. <li>omapfb.rotate= Default rotation applied to all framebuffer: 0 - 0 degree rotation. 1 - 90 degree rotation. 2 - 180 degree rotation. 3 - 270 degree rotation. <li>Refer to OMX release notes </ul>

<li>Bluetooth  <li>FM driver ST interface support added and FM works without Bluetooth being enabled from UI. <li>Enabled OPP support from Android and now file transfer is possible from Android UI (From Gallery)/BlueFTP. <li>FM stack version M5.03. <li>UART2 DMA enabled. <li>BT-FM service pack version 2.27. <li>Supported Features:  <li>BT Scan, pair, connects. <li>A2DP streaming to BT Stereo headset <li>Audio streaming over HFP to BT mono/stereo headset <li>AVRCP control of Music player <li>FM Transmit <li>FM Radio <li>BT PM with OMAP PM      <li>File tranfer using BlueFTP application. </ul> </ul>

<li>Wi-Fi  <li>Upgraded wilink_6_1 version to M5.04 (WiLink_Driver_6.1.0.0.130) <li>Random MAC address for wifi interface. <li>Following WLAN features are supported (through UI and WLAN TI CLI Utility)  <li>Scanning for AP's and listing the devices with SSID <li>Connecting to the available AP's      <li>Web browsing <li>WLAN security (WEP40, WEP128, WPA, WPA2) <li>Roaming <li>Ad-hoc networking <li>QoS <li>Host power management <li>BT & WLAN Coexistence </ul> </ul>

<li>PPM SmartReflex&#0153;  <li>SmartReflex&#0153; is an adaptive voltage scaling technology, in which the supply voltage can be adapted to the silicon performance either from the static sense (e.g. adapted to the manufacturing process of a given device) or the dynamic sense (e.g. adapted to the temperature induced current performance of the device). This allows dynamically adapting the VDD1 & VDD2 voltages to the silicon characteristics and temperature to minimize active power consumption. It can operate under manual or automatic mode to suit PM SW needs. Though it is recommended to run the system at specified voltage & frequency as per selected OPP, the optimal voltage for a given frequency varies with the manufacturing process of the device and temperature. Thus, the optimal voltage for a given frequency is different for every silicon chip based on its silicon characteristics (hot vs. cold samples) and current temperature.  Note: SmartReflex&#0153; does tuning around the recommended OPP voltage and never changes the OPP To enable/disable SmartReflex&#1053; for VDD1 & VDD2, use the following commands, respectively: # echo –n > /sys/power/sr_vdd1_autocomp The value can be 	0 – To disable 1 – To enable

# echo –n > /sys/power/sr_vdd2_autocomp The value can be 	0 – To disable 1 – To enable </ul> </ul>

=Limitations/Known Issues=

IMPORTANT:   <li> Currently we support only MPEG4 video encoding. To test it open the camera (or camcorder) app. Once it is open, press <F1>. Select "Settings" from the menu. Once this menu loads, choose "Select Video Quality" and "Select Video Encoder" and set them to DVD-Video NTSC and MPEG4 respectively. See Test Execution Instructions </ul>

Random white screen issue

This is a known issue which happens due to change in GPIO pin muxing in beta and production boards. Reading the gpio_94 to determine production vs pilot units has shown not to be a reliable method. Now we will check the silicon version of the zoom2 unit based on the following: If Silicon rev is ES3.1 or greater => Zoom2 Production Units. If Silicon rev is ES3.0 or lesser => Zoom2 Pilot Units With this information we can determine the gpio value required for the lcd reset: Zoom2 Production Unit => LCD panel reset gpio = 96 Zoom2 Pilot Unit     => LCD panel reset gpio = 55 Refer to the commit ID 571770a16d95a0eaae9740ee0c58246700b345c7 for a fix.

=Use Case Test Results=

=Resources=

OMAPZoom.org and OMAPpedia.org may be good starting places.

IRC Chat - #linux-omap Googlegroups - OmapZoom Mailing List - OMAPAndroid Discussion list

Related Links
tv'''