NameLast modifiedSizeLicense

Parent Directory Parent Directory


About the Member Linaro Confectionary Release for HiKey (Multi-arch 64-bit)

This Member Linaro Confectionary Release is for 96boards HiKey board,
it is based on the Nougat android-7.1.1_r13 branch. This build is a
userdebug variant build, which contains multi-arch support allowing full use of the
64-bit ARMv8-A architecture, supports both 64-bit and 32-bit applications,
and with SElinux enabled.

The kernel used for this build is based on the AOSP version 4.4 common kernel,
which includes the ARM Mali drivers for 3D graphics acceleration support,
OP-TEE support, and Energy Aware Scheduling(EAS) support.

The sources are built with AOSP LLVM 3.8 clang-2690385 (based on LLVM 3.8.256229),
and gcc 4.9 for both 64bit and 32bit.

To switch to permissive mode, pass “androidboot.selinux=permissive” as
the boot parameter in the bootargs configuration, or run
“setenforce 0” from command line as root user after booted.

The Android AOSP software provided in this release is functionally
tested with CTS version 7.1 R1 and the CTS results are shared with
members. We also added some benchmark tests to observe the
performance trend in various fields. OP-TEE feature is tested with
xtest and various TAs provided from project optee_test

Sources are also made available so you can build your own images
(see the Building from Source tab).

What is new

  • Android source updated to base on android-7.1.1_r13 version
  • CTS package update to use 7.1 R1 version
  • More boottime optimizatons added for this release
  • Updated sqlite to verions 3.16.2

ChangeLog

Please check the changelog.txt for details to see what Linaro has done on top of AOSP android-7.1.1_r13.

License

The use of HiKey software is subject to the terms of the HiKey:
End User License Agreement.

Support

Subscribe to the important Linaro mailing lists and join our IRC
channels to stay on top of Linaro development.

  • Linaro Android Development ‘Mailing list’
  • Linaro Android IRC channel on irc.freenode.net at #linaro-android
  • Linaro Android ART IRC channel on irc.freenode.net at #linaro-art
  • Bug reports should be filed in ‘Bugzilla’ under “Linaro Android” product and “Member Linaro Confectionery Release (M-LCR)” component.
    • You will need to login to your Linaro account. If you do not have an account or are having problems, email its@linaro.org for help.
  • More general bug reports should be filed in Bugzilla against the individual packages that are affected.
  • Questions? ‘ask linaro’
  • Interested in commercial support? inquire at ‘Linaro Support’

OP-TEE Enablement

Patches for OP-TEE enablement

Gerrit ID Project Description
16991 device/linaro/hikey Integrate optee components
17177 device/linaro/hikey SELinux support for OP-TEE

OP-TEE usespace projects

Project URL Version
optee_client https://github.com/OP-TEE/optee_client 2.2.0
optee_test https://github.com/OP-TEE/optee_test 2.2.0
optee_os https://github.com/OP-TEE/optee_os 2.2.0

Firmware used for OP-TEE

Please use the firmware files from here or newer versions.

Android Patch Summary

There are patches developed by member companies and Linaro engineering teams were applied
to get Android booting to UI on the HiKey development platform.
These patches can be found on Linaro’s Android Git repositories via files:

Any patches can be contributed through the instructions described Here

Non-ART Optimizations

Gerrit ID/Commit ID Project Description
17143 bionic Don’t warn about DT_FLAGS_1 containing DF_1_PIE
17469 bionic Don’t reexport symbols removed from libgcc , for enabling gcc6.3
17480 frameworks/base -fno-strict-aliasing — gcc 6.3 finds more potential aliasing errors than 4.x
17168 frameworks/native Fix build in 32-bit ARMv8 mode for vulkan
297758 frameworks/av amrwb: disable sanitizer for fxp_mac_16by16
297759 frameworks/av avc enc: disable sanitizer for some functions
17146 build/soong Allow the compiler to generate FPU instructions
17154 bionic Set ARM_ARCH correctly for ARMv8 32bit builds
17015 build Add switch to control optimizing for size vs. speed setting
16260 bionic Cortex-A57 support for Bionic
17148 art Whitelist some more supported CPU types
15494 bionic Add optimized strcpy from cortex-strings
16286 external/android-clat Build android-clat with -fno-strict-aliasing
16311 hardware/qcom/media Work around aliasing rule violations
17016 system/core Disable ALOGD and ALOGI messages in OPTIMIZE_FOR_SIZE NDEBUG builds
765 external/zlib arm, arm64: ZLIB optimization using neon optimized copy
17165 external/libunwind_llvm Force -mcpu=cortex-a15 while building 32-bit libunwind on aarch64
16756 external/mksh hack workaourd to run builds on lava
17283 external/libjpeg-turbo patch to integrate tjbench

Boot Time Optimizations

Gerrit ID/Commit ID Project Description
17321 frameworks/base Delay starting of some Java based services.
17338 frameworks/base Move preloading classes to SystemServer.java and start it in background.
17343 android-build-configs enable squashfs on system partition for hikey M-LCR when build on CI
17459 frameworks/base Start WifiService,WifiP2pService and WifiScanningService in background
17461 frameworks/base Stop bootanim earlier
17404 system/netd move netd to class core
316607 frameworks/opt/net/ethernet Set to start EthernetService after boot completed
17406 system/core start zygote in post-fs-data
17408 device/linaro/hikey init.common.rc: set cpuset with sys.boot_completed=1
17479 system/core set to use all cpus for all cpusets
17419 kernel/linaro/hisilicon set to boot with performance governor policy
17439 device/linaro/hikey hikey: set governor policy after boot complete

New Version External Projects

Project Version Git Branch
external/sqlite 3.16.2 https://android-git.linaro.org/gitweb/platform/external/sqlite.git linaro-upstream-3.16.2
external/giflib 5.1.4 https://android-git.linaro.org/gitweb/platform/external/giflib.git linaro-upstream-5.1.4
external/libpng 1.6.20 https://android-git.linaro.org/gitweb/platform/external/libpng.git c7ef7361311966304711b45ce62363991b068682
external/harfbuzz_ng 0.9.41 https://android-git.linaro.org/gitweb/platform/external/harfbuzz_ng.git linaro-upstream-0.9.41
external/fio 2.8 https://android-git.linaro.org/gitweb/platform/external/fio.git linaro-upstream-2.8

Known Issues and Limitations

Known limitations

  • HDMI display has problems with some monitors

Known issues

The following known issues are present in this release. Please contact support@linaro.org if you wish to know more information about these issues or have access problems when attempting to view them.

Bug ID Bug title Bug summary
Bug 456 fastboot fails to flash userdata partition while using sparse format
Bug 2561 warnings of hi6220-mbox f7510000.mailbox: Try increasing MBOX_TX_QUEUE_LEN
Bug 2454 usb driver crash on HiKey when using OTG and host port at the same time

Prerequisites

Please download the uefi binaries from here
and flash them into your HiKey board according to the instructions here

To use the OP-TEE feature, please make sure you are using the latest firmware,
or the version after #112

If this is the first time you use Hikey board, please reference here for the initial setup instructions:

Get artifacts

Click on each link to download:

  • boot_fat.uefi.img.xz
  • system.img.xz
  • userdata.img.xz(for 8G board) or userdata-4gb.img.xz(for 4G board)

Boot Hikey board to fastboot mode

Connect the Link 1-2 and Link 5-6 of the Jumper15 on your Hikey board,
Connect a standard microUSB to USB connector between the HiKey microUSB port
and your Linux PC. Connect the HiKey power supply to the board, and run
following command to check if the board is in fastboot mode:

$ sudo fastboot devices
0123456789abcdef fastboot
$

Flash images

Uncompress the downloaded .xz files using your operating system file manager,
or with the following command for each file:

$ xz -d [filename].xz

Flash the uncompressed files into the Hikey board under fastboot mode with
following commands:

$ fastboot flash boot boot_fat.uefi.img
$ fastboot flash system system.img
$ fastboot -S 256M flash userdata userdata.img

Please use “userdata-4gb.img” if flash to a 4GB emmc version board.

Boot HiKey board with Android images

Connect the link 1-2, remove the link 3-4 and link 5-6 of the Jumper15 on your Hikey board,
connect the microUSB to you host pc, and plug in the power supply cable,
this will make your board boot the flashed android images by default.

You can use following command to check if the adb connection is connected:

$ adb devices
List of devices attached
0123456789  device
$

Linaro Android Source Code

Download the Android building script linaro_android_build_cmds.sh for this build
from the list of artifacts listed above, and run it.
This script will help to download the entire source code for both Android and
the kernel and attempt to build it.

Most commonly used options for linaro_android_build_cmds.sh:

$ ./linaro_android_build_cmds.sh -h #To print the script usage
$ ./linaro_android_build_cmds.sh -t #To build from the tip of the branch without overlay
$ ./linaro_android_build_cmds.sh -t -u <url-aosp-mirror-manifest> #As -t, but repo sync from local mirror
$ ./linaro_android_build_cmds.sh -m <pinned_manifest> #To reproduce an exact build from pinned manifest
$ ./linaro_android_build_cmds.sh -m <pinned_manifest> -u <url-aosp-mirror-manifest> #As -m, but repo sync from local mirror

The pinned manifest(pinned-manifest.xml(?) and source manifest(source-manifest.xml) can be found from the list of artifacts

Compiling Linaro Android RootFS+Kernel

The following simple steps download, install and compile a complete Linaro Android distribution

  • Download and install Ubuntu 14.04 64 bit or newer (download)
  • Download the Android building script for this build from the list of artifacts
  • Run the linaro_android_build_cmds.sh script downloaded, and answer the questions when promopted

Note:
These steps will generate the userdata.img for 8GB eMMC version by default,
if want to generate userdata.img for 4GB eMMC version by default, please
run following command first before run linaro_android_build_cmds.sh:

$ export TARGET_USERDATAIMAGE_4GB=true

Build from the tip of the source:

chmod a+x linaro_android_build_cmds.sh
./linaro_android_build_cmds.sh -t or  ./linaro_android_build_cmds.sh -t -u <url-aosp-mirror-manifest>

Or reproduce the exactly the same as this buid:

chmod a+x linaro_android_build_cmds.sh
./linaro_android_build_cmds.sh -m pinned-manifest.xml or ./linaro_android_build_cmds.sh -m pinned-manifest.xml -u <url-aosp-mirror-manifest>

Installing Android to your HiKey Board

Following commands will flash the images into your HiKey board via the fastboot command.

    $ sudo fastboot flash boot out/target/product/hikey/boot_fat.img
    $ sudo fastboot flash system out/target/product/hikey/system.img
    $ sudo fastboot -S 256M flash userdata out/target/product/hikey/userdata.img

THIS END USER LICENCE AGREEMENT (“LICENCE”) IS A LEGAL AGREEMENT BETWEEN YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND ARM LIMITED (“ARM”) FOR THE USE OF THE SOFTWARE ACCOMPANYING THIS LICENCE. ARM IS ONLY WILLING TO LICENSE THE SOFTWARE TO YOU ON CONDITION THAT YOU ACCEPT ALL OF THE TERMS IN THIS LICENCE. BY CLICKING “I AGREE” OR BY INSTALLING OR OTHERWISE USING OR COPYING THE SOFTWARE YOU INDICATE THAT YOU AGREE TO BE BOUND BY ALL OF THE TERMS OF THIS LICENCE. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENCE, ARM IS UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MAY NOT INSTALL, USE OR COPY THE SOFTWARE, AND YOU SHOULD PROMPTLY RETURN THE SOFTWARE TO YOUR SUPPLIER.

“Software” means any software, firmware and data accompanying this Licence, any printed, electronic or online documentation supplied with it under the terms of this Licence for the MALI GPU Driver.

1. LICENCE GRANTS TO YOU.

ARM hereby grants to you, subject to the terms and conditions of this Licence, a non-exclusive, non-transferable, revocable, worldwide licence to: (i) use the Software or certain components or optional functionality in the Software, as applicable, solely for the purposes of designing or developing applications for use in conjunction with MALI GPU based products manufactured under licence from ARM; and (ii) modify the Software or certain components or optional functionality in the Software for the purposes of porting the Software to your target;

2. RESTRICTIONS ON USE OF THE SOFTWARE.

COPYING: You shall not use or copy the Software except as expressly authorised in this Licence. You may make one additional copy of the delivered Software for backup or archival purposes.

BENCHMARKING: This Licence does not prevent you from using the Software for internal benchmarking purposes. However, you shall treat any and all benchmarking data relating to the Software, and any other results of your use or testing of the Software which are indicative of its performance, efficacy, reliability or quality, as confidential information and you shall not disclose such information to any third party without the express written permission of ARM.

COPYRIGHT AND RESERVATION OF RIGHTS: The Software is owned by ARM or its licensors and is protected by copyright and other intellectual property laws and international treaties. The Software is licensed not sold. You acquire no rights to the Software other than as expressly provided by this Licence. You shall not remove from the Software any copyright notice or other notice and shall ensure that any such notice is reproduced in any copies of the whole or any part of the Software made by you or other permitted users.

REVERSE ENGINEERING: Except to the extent that such activity is permitted by applicable law you shall not reverse engineer, decompile or disassemble any of the Software. If the Software was provided to you in Europe you shall not reverse engineer, decompile or disassemble any of the Software for the purposes of error correction.

3. SUPPORT.

ARM is not under an obligation to provide support, but it may do so at its own discretion, and if it does, it will only be in respect of the Software as delivered and not any modifications thereto.

4. NO WARRANTIES.

YOU AGREE THAT THE SOFTWARE IS LICENSED “AS IS”, AND THAT ARM EXPRESSLY DISCLAIMS ALL REPRESENTATIONS, WARRANTIES, CONDITIONS OR OTHER TERMS, EXPRESS OR IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, SATISFACTORY QUALITY, AND FITNESS FOR A PARTICULAR PURPOSE.

YOU EXPRESSLY ASSUME ALL LIABILITIES AND RISKS, FOR USE OR OPERATION OF SOFTWARE APPLICATIONS, INCLUDING WITHOUT LIMITATION, SOFTWARE APPLICATIONS DESIGNED OR INTENDED FOR MISSION CRITICAL APPLICATIONS, SUCH AS PACEMAKERS, WEAPONRY, AIRCRAFT NAVIGATION, FACTORY CONTROL SYSTEMS, ETC. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

5. LIMITATION OF LIABILITY.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL ARM BE LIABLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING LOSS OF PROFITS) ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE WHETHER BASED ON A CLAIM UNDER CONTRACT, TORT OR OTHER LEGAL THEORY, EVEN IF ARM WAS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
ARM does not seek to limit or exclude liability for death or personal injury arising from ARM’s negligence or ARM’s fraud and because some jurisdictions do not permit the exclusion or limitation of liability for consequential or incidental damages the above limitation relating to liability for consequential damages may not apply to you.

NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED IN THIS LICENCE, THE MAXIMUM LIABILITY OF ARM TO YOU IN AGGREGATE FOR ALL CLAIMS MADE AGAINST ARM IN CONTRACT TORT OR OTHERWISE UNDER OR IN CONNECTION WITH THE SUBJECT MATTER OF THIS LICENCE SHALL NOT EXCEED THE GREATER OF: (I) THE TOTAL OF SUMS PAID BY YOU TO ARM (IF ANY) FOR THIS LICENCE; AND (II) $10.00 USD. THE EXISTENCE OF MORE THAN ONE CLAIM WILL NOT ENLARGE OR EXTEND THE LIMIT.

6. CONFIDENTIALITY.
You acknowledge that the Software and any benchmarking data and related information mentioned in Clause 2 may contain trade secrets and confidential material and you agree to maintain all such information in confidence and apply security measures no less stringent than the measures which you apply to protect your own like information, but not less than a reasonable degree of care, to prevent their unauthorised disclosure and use. Subject to any restrictions imposed by applicable law, the period of confidentiality shall be indefinite. You agree not to use any such information other than in normal use of the Software under the licences granted in this Licence.

7. U.S. GOVERNMENT END USERS.

US Government Restrictions: Use, duplication, reproduction, release, modification, disclosure or transfer of the Software is restricted in accordance with the terms of this Licence.

8. TERM AND TERMINATION.

This Licence shall remain in force until terminated by you or by ARM. Without prejudice to any of its other rights if you are in breach of any of the terms and conditions of this Licence then ARM may terminate this Licence immediately upon giving written notice to you or on thirty (30) days written notice without cause. You may terminate this Licence at any time. Upon termination of this Licence by you or by ARM , you shall stop using the Software and confidential information and destroy all copies of the Software and confidential information in your possession, together with all documentation and related materials. The provisions of clauses 4, 5, 6, 7, 8 and 9 shall survive termination of this Licence.

9. GENERAL.

This Licence is governed by English Law. Except where ARM agrees otherwise in: (i) a written contract signed by you and ARM; or (ii) a written contract provided by ARM and accepted by you, this is the only agreement between you and ARM relating to the Software and it may only be modified by written agreement between you and ARM. Except as expressly agreed in writing, this Licence may not be modified by purchase orders, advertising or other representation by any person. If any clause or sentence in this Licence is held by a court of law to be illegal or unenforceable the remaining provisions of this Licence shall not be affected thereby. The failure by ARM to enforce any of the provisions of this Licence, unless waived in writing, shall not constitute a waiver of ARM’s rights to enforce such provision or any other provision of this Licence in the future.

At ARM’s request, you agree to check your computers for installations of the Software and any other information requested by ARM relating to Software installation and to provide this information to ARM. You agree that auditors nominated by ARM may also perform such checking and reporting on behalf of ARM by prior appointment during your normal business hours on seven (7) days’ notice. ARM shall bear the auditors’ costs for that audit unless it reveals unlicensed usage in which case you shall promptly reimburse ARM for all reasonable costs and expenses, including professional fees, relating to such audit. Any information which is disclosed to ARM or such auditors during checking or audit shall be treated as your confidential information and shall only be used by ARM for licence management, compliance and enforcement purposes.

The Software provided under this Licence is subject to U.S. export control laws, including the U.S. Export Administration Act and its associated regulations, and may be subject to export or import regulations in other countries. You agree to comply fully with all laws and regulations of the United States and other countries (“Export Laws”) to assure that the Software, is not (1) exported, directly or indirectly, in violation of Export Laws, either to any countries that are subject to U.S.A. export restrictions or to any end user who has been prohibited from participating in the U.S.A. export transactions by any federal agency of the U.S.A. government; or (2) intended to be used for any purpose prohibited by Export Laws, including, without limitation, nuclear, chemical, or biological weapons proliferation.

Mali GPU Userspace LES-PRE-20376