6AO.1.0 Engineering Drop

= Introduction =

These Release Notes provide instructions for downloading and building Android Oreo engineering drop.

This software release has been developed and verified in the following software and hardware environment.

Release features
New in this engineering release,
 * Kernel update: Kernel version and branch updated to latest 4.4 version (Branch:p-ti-android-linux-4.4.y)
 * Android Treble Support:
 * Kernel modularization enabled
 * Audio HAL HIDL support
 * Vendor partition provisioned for treble requirements
 * Automotive HMI (Not enabled by default, refer here for enabling it

=Rebuilding Android from Sources=

Build PC setup
You need a 64 bit Ubuntu machine for building Android file system.


 * Install Pre-requisite packages for building the Android File System

Follow instructions from official Android page here for setting up the packages required for building Android.


 * Proxy/Firewall

If you are behind proxy/firewall, workaround it using the instructions in. For installing repo make sure you also export https_proxy environment variable.


 * Install latest repo tool

mkdir ~/bin -p sudo apt-get install curl curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo


 * Tool Chain for building Kernel and Drivers

The Kernel and Driver sources are built using the Android linux-x86 toolchain for ARM GNU/Linux version. This tool chain can be obtained when you pull the Android code based on the released manifest that will be given.

Android Filesystem Sources
You can get the Android source for this release by doing: cd mkdir -p ENGG_6AO.1.0 cd ENGG_6AO.1.0 export YOUR_PATH=$PWD mkdir -p mydroid; cd mydroid export MYDROID=$PWD repo init -u git://git.omapzoom.org/platform/omapmanifest.git -b 6AO.x -m ENGG_6AO.1.0.xml repo sync

U-Boot Sources
cd ${YOUR_PATH} git clone git://git.omapzoom.org/repo/u-boot.git cd u-boot git checkout 1e93748762e10d5a993e94ed2a2a89d6476148f5

Kernel & Driver Sources
cd ${YOUR_PATH} mkdir kernel git clone git://git.omapzoom.org/kernel/omap.git kernel/android-4.4 cd kernel/android-4.4 git checkout b5ef004d03dbcce178ed9a1599f2e39786c2fa35

Setting up build environment
From your work directory (ENGG_6AO.1.0 folder): export YOUR_PATH=$PWD export MYDROID=${YOUR_PATH}/mydroid export CROSS_COMPILE=${MYDROID}/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-

Building U-boot sources
Instructions for building x-loader and bootloader

cd ${YOUR_PATH}/u-boot export CROSS_COMPILE=${MYDROID}/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi- export ARCH=arm make distclean make dra7xx_evm_config make

Building Kernel
Instructions for building kernel and device tree. Note the new step to build modules.

cd ${YOUR_PATH}/kernel/android-4.4 export CROSS_COMPILE=${MYDROID}/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi- export ARCH=arm make mrproper ./ti_config_fragments/defconfig_builder.sh -t ti_sdk_dra7x_android_release make ti_sdk_dra7x_android_release_defconfig make uImage LOADADDR=0x80008000 make dtbs make modules

Building Android Filesystem (AFS)
Instructions for building Android file system. Note that building AFS now requires that you build Kernel and export the Kernel path before starting the build.

cd $MYDROID . build/envsetup.sh lunch full_jacinto6evm-userdebug export KERNELDIR=${YOUR_PATH}/kernel/android-4.4 make -j2 clean make -j2

Preparing eMMC images
Note that there is a new vendor partition starting from Android O, vendor.img is generated as part of build. Flashing script takes care of flashing the vendor partition. cd $YOUR_PATH mkdir emmc_files cp -v ${MYDROID}/out/target/product/jacinto6evm/*img emmc_files cp -v ${MYDROID}/device/ti/jacinto6evm/fastboot.sh emmc_files cp -v ${MYDROID}/out/host/linux-x86/bin/{simg2img,make_ext4fs,mkbootimg,fastboot,adb,aapt} emmc_files cp -v ${MYDROID}/out/host/linux-x86/lib64/{libc++.so,libcutils.so,liblog.so,libselinux.so,libpcre2.so} emmc_files cp -v ${YOUR_PATH}/kernel/android-4.4/arch/arm/boot/zImage emmc_files/kernel cp -v ${YOUR_PATH}/kernel/android-4.4/arch/arm/boot/dts/dra7*.dtb emmc_files cp -v ${YOUR_PATH}/u-boot/MLO emmc_files/GP_MLO cp -v ${YOUR_PATH}/u-boot/MLO emmc_files/ cp -v ${YOUR_PATH}/u-boot/u-boot.img emmc_files

=Flashing eMMC images=

The default setup is to flash MLO and u-boot.img to QSPI and remaining binaries (kernel, dtb file and AFS) to emmc.

DIP Switch settings
Required DIP switch settings: This configuration corresponds to the following device boot order: SD &rArr; QSPI_1

Flashing procedure
Hit any key to stop autoboot: 3 => env default -f -a => setenv partitions $partitions_android => env save => fastboot 0 cd $YOUR_PATH/emmc_files sudo ./fastboot.sh
 * Copy u-boot.img and MLO files to an SD card (boot partition) and then boot the target board from this external SD card.
 * Connect a USB cable from the Linux PC to the USB3.0 port on board
 * Power on the board and stop the board at u-boot prompt by interrupting with key press
 * Set the right environment variables for Android SDK and save (This step is needed only for fresh flash, for incremental flashing this is optional)
 * Now reset the board and stop again in u-boot
 * Put the board in fastboot mode by typing in below command
 * On the Linux PC which has the emmc images run the fastboot.sh script to flash the binaries
 * NOTE: After the flashing is done, remove the external SD card and reboot the board.

=Application notes/Additional Info=

Enabling Car HMI

 * Car HMI is disabled by default for development purposes. Please use the patch below and rebuild AFS to switch to Car HMI
 * AFS: http://review.omapzoom.org/#/c/38603/

Booting J6 Plus EVM

 * Use dra76-evm.dtb
 * As part of Android O development, early loading of emmc partitions was enabled, this is not functional on J6 plus EVM yet. Use the below 2 patches to boot J6 Plus EVM
 * AFS: http://review.omapzoom.org/#/c/38604/
 * Kernel: http://review.omapzoom.org/#/c/38605/

=Technical support=
 * It is strongly recommended to use the TI E2E forum for all support queries. E2E Support Forums for all DRA7xx platforms - Click Here
 * There could be a few cases where your query has confidential information and cannot be posted publicly. In such cases, please contact your FAE or CPM.