diff options
author | Nariman Poushin <nariman.poushin@linaro.org> | 2018-08-14 18:54:17 +0530 |
---|---|---|
committer | Nariman Poushin <nariman.poushin@linaro.org> | 2018-10-29 18:15:31 +0000 |
commit | cd3008a75d0f338609f076dc74de9bfd7db559dd (patch) | |
tree | c6c5d4907262f24416100beca8ce595cb3413071 | |
parent | 10a1859b7bfed84890daac4a1ac3ce2fb5a3196f (diff) |
css: sgm775: Initial support for sgm775
Adds device profile for System Guidance For Mobile 775 (sgm775)
fixed virtual platform.
Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
69 files changed, 2367 insertions, 0 deletions
diff --git a/AndroidProducts.mk b/AndroidProducts.mk new file mode 100644 index 0000000..ec91419 --- /dev/null +++ b/AndroidProducts.mk @@ -0,0 +1,14 @@ +# +# This file should set PRODUCT_MAKEFILES to a list of product makefiles +# to expose to the build system. LOCAL_DIR will already be set to +# the directory containing this file. +# +# This file may not rely on the value of any variable other than +# LOCAL_DIR; do not use any conditionals, and do not look up the +# value of any variable that isn't set in this file or in a file that +# it includes. +# + +PRODUCT_MAKEFILES := \ + $(LOCAL_DIR)/css_gpu.mk \ + diff --git a/BoardConfig.mk b/BoardConfig.mk new file mode 100644 index 0000000..685ea50 --- /dev/null +++ b/BoardConfig.mk @@ -0,0 +1,84 @@ +# Primary Arch +TARGET_ARCH := arm64 +TARGET_ARCH_VARIANT := armv8-a +TARGET_CPU_VARIANT := generic +TARGET_CPU_ABI := arm64-v8a + +# Secondary Arch +TARGET_2ND_ARCH := arm +TARGET_2ND_ARCH_VARIANT := armv7-a-neon +TARGET_2ND_CPU_VARIANT := cortex-a15 +TARGET_2ND_CPU_ABI := armeabi-v7a +TARGET_2ND_CPU_ABI2 := armeabi + +TARGET_USES_64_BIT_BINDER := true +TARGET_SUPPORTS_32_BIT_APPS := true +TARGET_SUPPORTS_64_BIT_APPS := true + +TARGET_BOARD_PLATFORM := css +ANDROID_64 := true +WITH_DEXPREOPT ?= true +USE_OPENGL_RENDERER := true +USE_SW_RENDERER := true +BIONIC_TESTS ?= true + +ENABLE_CPUSETS := true +ENABLE_SCHED_BOOST := true + +ifeq ($(strip $(USE_LINARO_TOOLCHAIN)),true) +# 64bit toolchain +KERNEL_TOOLS_PREFIX ?= $(realpath $(TOP))/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9-linaro/bin/aarch64-linux-android- +TARGET_TOOLS_PREFIX ?= $(realpath $(TOP))/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9-linaro/bin/aarch64-linux-android- +# 32bit toolchain +2ND_TARGET_TOOLCHAIN_ROOT ?= $(realpath $(TOP))/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9-linaro +2ND_TARGET_TOOLS_PREFIX ?= $(realpath $(TOP))/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9-linaro/bin/arm-linux-androideabi- +endif + +# Kernel Config +KERNEL_CONFIG ?= linaro/configs/linaro-base.conf \ + linaro/configs/android.conf \ + linaro/configs/vexpress64.conf \ + linaro/configs/big-LITTLE-MP.conf \ + $(realpath $(TOP))/device/linaro/build/selinux.conf + +# Kernel Source and Device Tree +# Check the available kernel source and set the same +ifneq ($(wildcard $(TOP)/kernel/linaro/vexpress),) +TARGET_KERNEL_SOURCE := kernel/linaro/vexpress +else +TARGET_KERNEL_SOURCE := kernel/linaro/armlt +endif + +BUILD_KERNEL_MODULES := false + +TARGET_NO_BOOTLOADER := true +TARGET_NO_KERNEL := true +TARGET_NO_RECOVERY := true +TARGET_USE_XLOADER := false +TARGET_USE_UBOOT := false +TARGET_HARDWARE_3D := false +TARGET_SHELL := ash +BOARD_USES_GENERIC_AUDIO := true +USE_CAMERA_STUB := true +TARGET_USERIMAGES_USE_EXT4 := true +BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1073741824 +BOARD_USERDATAIMAGE_PARTITION_SIZE := 4613734400 +BOARD_CACHEIMAGE_PARTITION_SIZE := 69206016 +BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4 +BOARD_FLASH_BLOCK_SIZE := 512 +TARGET_USERIMAGES_SPARSE_EXT_DISABLED := true +TARGET_SYSTEMIMAGE_SPARSE_EXT_DISABLED := true + +BOARD_SEPOLICY_DIRS += device/arm/css/sepolicy +BOARD_SEPOLICY_UNION += \ + gatord.te \ + init.te \ + kernel.te \ + logd.te \ + mediaserver.te \ + netd.te \ + shell.te \ + surfaceflinger.te + +TARGET_HAS_A53ERRATUM835769 := true +TARGET_USES_HWC2 := true diff --git a/END_USER_LICENSE_AGREEMENT.txt b/END_USER_LICENSE_AGREEMENT.txt new file mode 100644 index 0000000..5875318 --- /dev/null +++ b/END_USER_LICENSE_AGREEMENT.txt @@ -0,0 +1,194 @@ +LES-PRE-20769 +SP-Version: 1.0 +25 November 2015 + +END USER LICENCE AGREEMENT FOR THE MALI USERSPACE DRIVER ("Mali DRIVER") + +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 +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. + +"Applications" means applications for use solely in conjunction with +Mali-based products manufactured under licence from ARM. + +"Output" means data resulting from your use of the Software and all +direct and indirect derivatives thereof. + +"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 Driver. + +1. LICENCE GRANTS TO YOU. + +1.1 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 and copy the Software or certain components or optional + functionality in the Software, as applicable, solely for the + purposes of running, designing or developing Applications; and + +(ii) subject to Clause 1.2, distribute the whole of the Software; + and/or (b) the whole or any part of the Software together + with, or as incorporated into, Applications; and + +1.2 If you choose to redistribute the whole or any part of the +Software pursuant to the licences granted in Clause 1.1(ii), you +agree: (i) not to use ARM's or any of its licensors names, logos or +trademarks to market Applications; (ii) to retain any and all +copyright notices and other notices (whether ARM's or its licensor's) +which are included with the Software; and (iii) include a copy of this +Licence with such redistribution. + +2. RESTRICTIONS ON USE OF THE SOFTWARE. + +BENCHMARKING: This Licence does not prevent you from using the +Software for benchmarking purposes. However, you shall ensure that 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, shall not be used +to disparage ARM, its products or services, or in a manner that, in +ARM's reasonable judgment, may diminish or otherwise damage the +reputation 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. + +RESTRICTED USE: You agree that you shall not use the Software or the +Output other than pursuant to and in accordance with the exercise of +any of the licences granted under this Licence. Without limiting the +generality of the foregoing, you shall not use the Software or any +Output: (a) for determining if any features, functions or processes +provided by the Software are covered by any patents or patent +applications owned by you or a third party; or (b) for developing +technology, applications or products which avoid any of ARM's +intellectual property in the Software licensed hereunder; or (c) as a +reference for modifying existing patents or patent applications or +creating any continuation, continuation in part, or extension of +existing patents or patent applications. + +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. + +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 APPLICATIONS, INCLUDING WITHOUT LIMITATION, 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. 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. + +7. 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 destroy all copies of the +Software in your possession, together with all documentation and +related materials. The provisions of clauses 2, 3, 4, 5, 6, 7, and 8 +shall survive termination of this Licence. + +8. 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 Agreement is subject to U.K., +European Union, and U.S. export control laws and regulations, +including the U.S. Export Administration Act and its associated +regulations (hereafter collectively referred to as "Export +Regulations"). LICENSEE agrees to comply fully with all such Export +Regulations and LICENSEE agrees that it shall not, either directly or +indirectly, export in breach of the Export Regulations, any Software +received under this Agreement, nor any direct products thereof; (i) to +any country, company or person subject to export restrictions or +sanctions under the Export Regulations; or (ii) for any prohibited end +use, which at the time of export requires an export license or other +governmental approval, without first obtaining such license or +approval. diff --git a/LES-PRE-21444.docx b/LES-PRE-21444.docx Binary files differnew file mode 100644 index 0000000..2900f09 --- /dev/null +++ b/LES-PRE-21444.docx diff --git a/OpenGLwallpapers b/OpenGLwallpapers new file mode 100644 index 0000000..7a68b11 --- /dev/null +++ b/OpenGLwallpapers @@ -0,0 +1 @@ +disabled diff --git a/android-quirks.conf b/android-quirks.conf new file mode 100644 index 0000000..69fb2c9 --- /dev/null +++ b/android-quirks.conf @@ -0,0 +1,5 @@ +CONFIG_EXT4_FS_SECURITY=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y + diff --git a/css_gpu.mk b/css_gpu.mk new file mode 100644 index 0000000..46b2941 --- /dev/null +++ b/css_gpu.mk @@ -0,0 +1,12 @@ +# +# Inherit the full_base and device configurations +$(call inherit-product, $(LOCAL_PATH)/css_gpu/device.mk) +$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk) + +# +# Overrides +PRODUCT_NAME := css_gpu +PRODUCT_DEVICE := css_gpu + +PRODUCT_PACKAGES += \ + Launcher3 diff --git a/css_gpu/BoardConfig.mk b/css_gpu/BoardConfig.mk new file mode 100644 index 0000000..d40e3e2 --- /dev/null +++ b/css_gpu/BoardConfig.mk @@ -0,0 +1,5 @@ +include device/arm/css/BoardConfig.mk +USE_MALI_GRM := true + + + diff --git a/css_gpu/device.mk b/css_gpu/device.mk new file mode 100644 index 0000000..335a2f2 --- /dev/null +++ b/css_gpu/device.mk @@ -0,0 +1,34 @@ +# +# Copyright (C) 2011 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +include device/arm/css/device_common.mk + +PRODUCT_PROPERTY_OVERRIDES += ro.zygote.disable_gl_preload=true + +PRODUCT_COPY_FILES += device/arm/css/css_gpu/init.css_gpu.rc:/root/init.cssbase.rc \ + device/arm/css/mali/lib64/hw/hwcomposer.css.so:system/vendor/lib64/hw/hwcomposer.css.so \ + device/arm/css/mali/lib64/mediadrm/libdrmclearkeyplugin.so:system/vendor/lib64/mediadrm/libdrmclearkeyplugin.so \ + device/arm/css/mali/lib64/hw/libstagefrighthw.so:system/lib64/libstagefrighthw.so \ + device/arm/css/mali/lib/hw/hwcomposer.css.so:system/vendor/lib/hw/hwcomposer.css.so \ + device/arm/css/mali/lib/mediadrm/libdrmclearkeyplugin.so:system/vendor/lib/mediadrm/libdrmclearkeyplugin.so \ + device/arm/css/mali/lib/hw/libstagefrighthw.so:system/lib/libstagefrighthw.so \ + device/arm/css/grm/lib/egl/libGLES_vimpl.so:system/vendor/lib/egl/libGLES_vimpl.so \ + device/arm/css/mali/lib/egl/libmali.so:system/lib/libmali.so \ + device/arm/css/grm/lib64/egl/libGLES_vimpl.so:system/vendor/lib64/egl/libGLES_vimpl.so \ + device/arm/css/mali/lib64/egl/libmali.so:system/lib64/libmali.so \ + device/arm/css/grm/lib/egl/libnwhal.so:system/lib/libnwhal.so \ + device/arm/css/grm/lib64/egl/libnwhal.so:system/lib64/libnwhal.so + diff --git a/css_gpu/init.css_gpu.rc b/css_gpu/init.css_gpu.rc new file mode 100755 index 0000000..34ee329 --- /dev/null +++ b/css_gpu/init.css_gpu.rc @@ -0,0 +1,6 @@ +import /init.css.rc + +on boot +# Enable GPU support + setprop ro.kernel.qemu 0 + setprop ro.kernel.qemu.gles 1 diff --git a/cssbase.kl b/cssbase.kl new file mode 100644 index 0000000..a1302da --- /dev/null +++ b/cssbase.kl @@ -0,0 +1,113 @@ +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# Generic key layout file for full alphabetic US English PC style external keyboards. +# +# This file is intentionally very generic and is intended to support a broad rang of keyboards. +# Do not edit the generic key layout to support a specific keyboard; instead, create +# a new key layout file with the required keyboard configuration. +# + +key 399 GRAVE +key 1 BACK +key 2 1 +key 3 2 +key 4 3 +key 5 4 +key 6 5 +key 7 6 +key 8 7 +key 9 8 +key 10 9 +key 11 0 +key 158 BACK WAKE_DROPPED +key 230 SOFT_RIGHT WAKE +key 60 SOFT_RIGHT WAKE +key 107 ENDCALL WAKE_DROPPED +key 62 ENDCALL WAKE_DROPPED +key 229 MENU WAKE_DROPPED +key 139 MENU WAKE_DROPPED +key 59 MENU WAKE_DROPPED +key 127 SEARCH WAKE_DROPPED +key 217 SEARCH WAKE_DROPPED +key 228 POUND +key 227 STAR +key 231 CALL WAKE_DROPPED +key 61 CALL WAKE_DROPPED +key 232 DPAD_CENTER WAKE_DROPPED +key 108 DPAD_DOWN WAKE_DROPPED +key 103 DPAD_UP WAKE_DROPPED +key 102 HOME WAKE +key 105 DPAD_LEFT WAKE_DROPPED +key 106 DPAD_RIGHT WAKE_DROPPED +key 115 VOLUME_UP +key 114 VOLUME_DOWN +key 116 POWER WAKE +key 212 CAMERA + +key 16 Q +key 17 W +key 18 E +key 19 R +key 20 T +key 21 Y +key 22 U +key 23 I +key 24 O +key 25 P +key 26 LEFT_BRACKET +key 27 RIGHT_BRACKET +key 43 BACKSLASH + +key 30 A +key 31 S +key 32 D +key 33 F +key 34 G +key 35 H +key 36 J +key 37 K +key 38 L +key 39 SEMICOLON +key 40 APOSTROPHE +key 14 DEL + +key 44 Z +key 45 X +key 46 C +key 47 V +key 48 B +key 49 N +key 50 M +key 51 COMMA +key 52 PERIOD +key 53 SLASH +key 28 ENTER + +key 56 ALT_LEFT +key 100 ALT_RIGHT +key 42 SHIFT_LEFT +key 54 SHIFT_RIGHT +key 15 TAB +key 57 SPACE +key 150 EXPLORER +key 155 ENVELOPE + +key 12 MINUS +key 13 EQUALS +key 215 AT + + +key 82 MENU WAKE diff --git a/device_common.mk b/device_common.mk new file mode 100755 index 0000000..7f87e7e --- /dev/null +++ b/device_common.mk @@ -0,0 +1,130 @@ +# +# Copyright (C) 2011 The Android Open-Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Adjust the dalvik heap to be appropriate for a tablet. +$(call inherit-product-if-exists, frameworks/base/build/tablet-dalvik-heap.mk) +$(call inherit-product-if-exists, frameworks/native/build/tablet-dalvik-heap.mk) + +PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\ + device/arm/css/fstab.cssbase:root/fstab.cssbase \ + device/arm/css/OpenGLwallpapers:system/etc/graphics/OpenGLwallpapers \ + device/arm/css/cssbase.kl:system/usr/keylayout/cssbase.kl) + +# Copy preboot binaries +PRE_BOOT_FILES := bl1.bin css_fip.bin +PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\ + device/arm/css/preboot/bl1.bin:boot/bl1.bin \ + device/arm/css/preboot/fip.bin:boot/css_fip.bin \ + device/arm/css/preboot/startup.nsh:boot/startup.nsh) + +# Set custom settings +DEVICE_PACKAGE_OVERLAYS := device/arm/css/overlay + +# Add openssh support for remote debugging and job submission +PRODUCT_PACKAGES += ssh sftp scp sshd ssh-keygen sshd_config start-ssh + +# Build and run only ART +PRODUCT_RUNTIMES := runtime_libart_default + +# Build gatord daemon for DS-5/Streamline +PRODUCT_PACKAGES += gatord + +# Set zygote config +PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.zygote=zygote64_32 +PRODUCT_COPY_FILES += system/core/rootdir/init.zygote64_32.rc:root/init.zygote64_32.rc +PRODUCT_COPY_FILES += device/arm/css/init.css.rc:root/init.css.rc +PRODUCT_COPY_FILES += device/arm/css/setcpuset.sh:system/bin/setcpuset.sh + +#set this product to use fake_battery +#ADDITIONAL_DEFAULT_PROPERTIES += ro.boot.fake_battery=1 + +PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\ + device/linaro/build/android.hardware.screen.xml:system/etc/permissions/android.hardware.screen.xml \ + frameworks/native/data/etc/android.software.backup.xml:system/etc/permissions/android.software.backup.xml \ + frameworks/native/data/etc/android.hardware.ethernet.xml:system/etc/permissions/android.hardware.ethernet.xml \ + frameworks/native/data/etc/android.hardware.usb.accessory.xml:system/etc/permissions/android.hardware.usb.accessory.xml) \ + frameworks/native/data/etc/android.hardware.opengles.aep.xml:system/etc/permissions/android.hardware.opengles.aep.xml \ + device/arm/css/manifest.xml:system/vendor/manifest.xml + +PRODUCT_COPY_FILES += device/arm/css/firmware/h264dec.fwb:root/lib/firmware/h264dec.fwb \ + device/arm/css/firmware/hevcdec.fwb:root/lib/firmware/hevcdec.fwb \ + device/arm/css/firmware/jpegdec.fwb:root/lib/firmware/jpegdec.fwb \ + device/arm/css/firmware/mpeg2dec.fwb:root/lib/firmware/mpeg2dec.fwb \ + device/arm/css/firmware/vp8dec.fwb:root/lib/firmware/vp8dec.fwb \ + device/arm/css/firmware/h264enc.fwb:root/lib/firmware/h264enc.fwb \ + device/arm/css/firmware/hevcenc.fwb:root/lib/firmware/hevcenc.fwb \ + device/arm/css/firmware/jpegenc.fwb:root/lib/firmware/jpegenc.fwb \ + device/arm/css/firmware/mpeg4dec.fwb:root/lib/firmware/mpeg4dec.fwb \ + device/arm/css/firmware/vc1dec.fwb:root/lib/firmware/vc1dec.fwb \ + device/arm/css/firmware/vp8enc.fwb:root/lib/firmware/vp8enc.fwb + +PRODUCT_COPY_FILES += device/arm/css/media_codecs.xml:system/etc/media_codecs.xml + +PRODUCT_COPY_FILES += $(call add-to-product-copy-files-if-exists,\ + frameworks/native/data/etc/android.software.app_widgets.xml:system/etc/permissions/android.software.app_widgets.xml) + +PRODUCT_COPY_FILES += device/arm/css/monkey_black_list:data/monkey_black_list + +PRODUCT_PACKAGES += gralloc.css + +PRODUCT_PACKAGES += exoplayer-demo + +PRODUCT_PACKAGES += \ + android.hardware.drm@1.0-impl \ + android.hardware.keymaster@3.0-impl \ + android.hardware.keymaster@3.0-service \ + android.hardware.graphics.allocator@2.0-impl \ + android.hardware.graphics.allocator@2.0-service \ + android.hardware.graphics.mapper@2.0-impl \ + android.hardware.graphics.composer@2.1-impl \ + android.hardware.light@2.0-impl \ + android.hardware.audio@2.0-impl \ + android.hardware.audio@2.0-service \ + android.hardware.audio.effect@2.0-impl \ + android.hardware.broadcastradio@1.0-impl \ + android.hardware.soundtrigger@2.0-impl + +$(call inherit-product-if-exists, device/linaro/build/common-device.mk) + +####### Copy build and install howtos for this build ######## +define copy-howto +ifneq ($(wildcard $(TOP)/device/arm/css/howto/$(LINARO_BUILD_SPEC)/$1),) +PRODUCT_COPY_FILES += \ + device/arm/css/howto/$(LINARO_BUILD_SPEC)/$1:$1 +else +ifneq ($(wildcard $(TOP)/device/arm/css/howto/default/$1),) +PRODUCT_COPY_FILES += \ + device/arm/css/howto/default/$1:$1 +endif +endif +endef + +HOWTOS := \ + HOWTO_install.txt \ + HOWTO_getsourceandbuild.txt \ + HOWTO_flashfirmware.txt \ + HOWTO_releasenotes.txt \ + HOWTO_rtsm.txt + +ifneq ($(wildcard $(TOP)/build-info),) +PRODUCT_COPY_FILES += \ + build-info/BUILD-INFO.txt:BUILD-INFO.txt +endif + +$(foreach howto,$(HOWTOS),$(eval $(call copy-howto,$(howto)))) + +# Include OP-TEE packages +$(call inherit-product-if-exists, device/arm/css/optee-packages.mk) diff --git a/firmware/h264dec.fwb b/firmware/h264dec.fwb Binary files differnew file mode 100644 index 0000000..d386d6a --- /dev/null +++ b/firmware/h264dec.fwb diff --git a/firmware/h264enc.fwb b/firmware/h264enc.fwb Binary files differnew file mode 100644 index 0000000..dc1cdb8 --- /dev/null +++ b/firmware/h264enc.fwb diff --git a/firmware/hevcdec.fwb b/firmware/hevcdec.fwb Binary files differnew file mode 100644 index 0000000..27a067b --- /dev/null +++ b/firmware/hevcdec.fwb diff --git a/firmware/hevcenc.fwb b/firmware/hevcenc.fwb Binary files differnew file mode 100644 index 0000000..79f11b9 --- /dev/null +++ b/firmware/hevcenc.fwb diff --git a/firmware/jpegdec.fwb b/firmware/jpegdec.fwb Binary files differnew file mode 100644 index 0000000..46c3c6b --- /dev/null +++ b/firmware/jpegdec.fwb diff --git a/firmware/jpegenc.fwb b/firmware/jpegenc.fwb Binary files differnew file mode 100644 index 0000000..178317f --- /dev/null +++ b/firmware/jpegenc.fwb diff --git a/firmware/mpeg2dec.fwb b/firmware/mpeg2dec.fwb Binary files differnew file mode 100644 index 0000000..c089363 --- /dev/null +++ b/firmware/mpeg2dec.fwb diff --git a/firmware/mpeg4dec.fwb b/firmware/mpeg4dec.fwb Binary files differnew file mode 100644 index 0000000..91dd8ee --- /dev/null +++ b/firmware/mpeg4dec.fwb diff --git a/firmware/vc1dec.fwb b/firmware/vc1dec.fwb Binary files differnew file mode 100644 index 0000000..3c4f857 --- /dev/null +++ b/firmware/vc1dec.fwb diff --git a/firmware/vp8dec.fwb b/firmware/vp8dec.fwb Binary files differnew file mode 100644 index 0000000..1d198a5 --- /dev/null +++ b/firmware/vp8dec.fwb diff --git a/firmware/vp8enc.fwb b/firmware/vp8enc.fwb Binary files differnew file mode 100644 index 0000000..7fef829 --- /dev/null +++ b/firmware/vp8enc.fwb diff --git a/fstab.cssbase b/fstab.cssbase new file mode 100644 index 0000000..f8eb6f1 --- /dev/null +++ b/fstab.cssbase @@ -0,0 +1,9 @@ +# Android fstab file. +#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags> +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK + + +/dev/block/vda2 /system ext4 ro wait +/dev/block/vda3 /cache ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait +/dev/block/vda5 /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait diff --git a/howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt b/howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt new file mode 100644 index 0000000..d1026e6 --- /dev/null +++ b/howto/armv8-android-fvp-lsk/HOWTO_getsourceandbuild.txt @@ -0,0 +1,147 @@ +Instructions for "https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk/":https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk/ + +h2. Prerequisites + +To clone the sources you must be able to ssh to git.linaro.org and be part of the big-little-switcher-private group. Contact "Philip Colmer" <philip.colmer@linaro.org> for access requests. + +Install build dependencies on Ubuntu: +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc uboot-mkimage openjdk-7-jdk openjdk-7-jre vim-common python-parted python-yaml wget uuid-dev iasl +</pre> + +You can also download linaro android build script(linaro_android_build_cmds.sh) from Downloads section at https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk to do a complete ARMv8 Android build for FVP models from scratch. + +h2. Get the source + +<pre> + $ curl "https://android.git.linaro.org/gitweb/tools/repo.git/blob_plain/refs/heads/stable:/repo" >repo + $ chmod +x repo + $ ./repo init -u git://android.git.linaro.org/platform/manifest.git -b armv8-linaro -m baseline_manifest.xml + $ ./repo sync # this may take some time +</pre> + +h2. Build + +<pre> + $ export CPUS=`grep -c processor /proc/cpuinfo` + $ export TARGET_PRODUCT=vexpress + $ export TARGET_BUILD_VARIANT=userdebug + $ . build/envsetup.sh + $ make -j${CPUS} selinuxtarballs +</pre> + +h2. Get linaro image tools + +Run these commands to get all the dependencies for linaro-image-tools +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools +</pre> +If you're using a "tip" build then we suggest you use the tip of linaro-image-tools from http://git.linaro.org/infrastructure/linaro-image-tools.git + +h2. Create binary for ARM FVP Base AEMv8 models + +Run linaro image tools + +pre. $ linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +If you're using tip of linaro image tools + +pre. $ ./linaro-image-tools/linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +h2. Extract the preboot files + +pre. tar -jxvf boot.tar.bz2 + +h2. Setup the runtime environment + +<pre> + $ export ARMLMD_LICENSE_FILE="8224@localhost" + $ ssh -L 8224:localhost:8224 -L 18224:localhost:18224 -N $USER@flexlm.linaro.org +</pre> + +h2. Running the models (verified on FVP Base model build 5502) + +<pre> + $ cd boot + $ /path/to/FVP_Base_AEMv8A-AEMv8A/models/Linux64_GCC-4.1/FVP_Base_AEMv8A-AEMv8A \ + -C pctl.startup=0.0.0.0 \ + -C bp.secure_memory=0 \ + -C cluster0.NUM_CORES=1 \ + -C cluster1.NUM_CORES=1 \ + -C cache_state_modelled=0 \ + -C bp.pl011_uart0.untimed_fifos=1 \ + -C bp.secureflashloader.fname=bl1.bin \ + -C bp.flashloader0.fname=fvp_fip.bin \ + -C bp.virtioblockdevice.image_path=mmc.bin +</pre> + +h3. Console redirection + +To redirect the console open a terminal and run + +pre. telnet 127.0.0.1 5000 + +h3. Set UEFI configuration, update kernel/ramdisk path and bootargs + +Stop the UEFI boot process and configure it for FVP models: + +<pre> +$ telnet 127.0.0.1 -debug 5000 -e ^z +Telnet escape character is 'b'. +Telnet escape character is '^Z'. +Trying 127.0.0.1... +setsockopt (SO_DEBUG): Permission denied +Connected to 127.0.0.1. +Escape character is '^Z'. + 7 seconds +[1] Linaro disk image on virtio +[2] Shell +[3] Boot Manager +Start: 2 +UEFI Interactive Shell v2.0 +EDK II +UEFI v2.40 (ARM Fixed Virtual Platform EFI May 23 2014 12:13:52, 0x00000000) +Mapping table + FS2: Alias(s):F8: + VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB) + FS0: Alias(s):F3: + MemoryMapped(0xB,0x88000000,0x8827FFFF) + FS1: Alias(s):F4: + MemoryMapped(0xB,0xFEC16000,0xFEDF987F) + FS3: Alias(s):HD12b:;BLK5: + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5)/HD(1,MBR,0x00000000,0x3F,0x41FC0) + FS4: Alias(s):HD12e2:;BLK10: + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5)/HD(4,MBR,0x00000000,0x242000,0x1BE000)/HD(2,MBR,0x00000000,0x362020,0x9DFE0) + BLK3: Alias(s): + VenHw(E7223039-5836-41E1-B542-D7EC736C5E59) + BLK0: Alias(s): + VenHw(02118005-9DA7-443A-92D5-781F022AEDBB) + BLK1: Alias(s): + VenHw(1F15DA3C-37FF-4070-B471-BB4AF12A724A) + BLK2: Alias(s): + VenHw(CC2CBF29-1498-4CDD-8171-F8B6B41D0909) + BLK4: Alias(s): + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5) +Press ESC in 1 seconds to skip startup.nsh or any other key to continue. +Shell> kernel dtb=fvp-base-gicv2-psci.dtb initrd=ramdisk.img console=ttyAMA0 amba-clcd.mode=VGA +EFI stub: Booting Linux Kernel... +[ 0.000000] Initializing cgroup subsys cpu2E873E5)/HD(3,MBR,0x00000000,0x1C2000,0x80000) +[ 0.000000] Initializing cgroup subsys cpuacct +[ 0.000000] Linux version 3.10.63-00561-g90aa783 (buildslave@x86-64-07-android) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP PREEMPT Fri Jan 23 14:41:49 CET 2015 +</pre> + +h3. Black screen + +The boot screen has been disabled to speed up booting. This means you may not see anything on the CLCD terminal for a while depending on the performance of the machine the model is running on. For example a first boot on a 2 GHz machine with 32 GB of RAM took 20 minutes. Subsequent boots should take approximately half the time to boot. + +h2. Run the Android SDK + +h3. Attach ADB + +ADB on FVP Base models are supported over network. Follow the instructions here https://wiki.linaro.org/Internal/Projects/Juice/SetupNetworkingOnModelsUsingBridges to setup networking and use adb. + +You can also run all of the standard Android SDK tools. Learn more at "http://developer.android.com/sdk/index.html":http://developer.android.com/sdk/index.html diff --git a/howto/armv8-android-fvp-lsk/HOWTO_install.txt b/howto/armv8-android-fvp-lsk/HOWTO_install.txt new file mode 100644 index 0000000..fb42913 --- /dev/null +++ b/howto/armv8-android-fvp-lsk/HOWTO_install.txt @@ -0,0 +1,143 @@ +Instructions for "https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk/":https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-android-fvp-lsk/ + +h2. Prerequisites + +h3. Get artifacts + +To get the build artifacts you must be part of the linaro-android-restricted launchpad group. Contact "Philip Colmer" <philip.colmer@linaro.org> for access requests. + +h3. Run the build + +You'll need the latest ARM FVP Base models and a license to use the models. Follow the instructions at https://collaborate.linaro.org/display/ITS/FlexLM+and+Fast+Models for the same. + +h2. Get artifacts + +Scroll down and click on 'Downloads' + +Click on each link to download: +* boot.tar.bz2 +* system.tar.bz2 +* userdata.tar.bz2 + +h2. Get linaro image tools + +Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools + +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools +</pre> + +If you're using a released build (with a -release or from releases.linaro.org), skip this step. +If you're using a "tip" build do not skip the step and do the following: + +<pre> + $ sudo apt-get install bzr + $ bzr branch lp:linaro-image-tools +</pre> + +h2. Create binary for the ARM FVP Base AEMv8 models + +Run linaro image tools + +pre. $ linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +If you're using tip of linaro image tools + +pre. $ ./linaro-image-tools/linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +h2. Extract the preboot files + +pre. tar -jxvf boot.tar.bz2 + +h2. Setup the runtime environment + +<pre> + $ export ARMLMD_LICENSE_FILE="8224@localhost" + $ ssh -L 8224:localhost:8224 -L 18224:localhost:18224 -N $USER@flexlm.linaro.org & +</pre> + +h2. Running the models (verified on FVP Base model build 5502) + +<pre> + $ cd boot/ + $ /path/to/FVP_Base_AEMv8A-AEMv8A/models/Linux64_GCC-4.1/FVP_Base_AEMv8A-AEMv8A \ + -C pctl.startup=0.0.0.0 \ + -C bp.secure_memory=0 \ + -C cluster0.NUM_CORES=1 \ + -C cluster1.NUM_CORES=1 \ + -C cache_state_modelled=0 \ + -C bp.pl011_uart0.untimed_fifos=1 \ + -C bp.secureflashloader.fname=bl1.bin \ + -C bp.flashloader0.fname=fvp_fip.bin \ + -C bp.virtioblockdevice.image_path=mmc.bin +</pre> + +h3. Console redirection + +To redirect the console open a terminal and run + +pre. telnet 127.0.0.1 5000 + +h3. Set UEFI configuration, update kernel/ramdisk path and bootargs + +Stop the UEFI boot process and configure it for FVP models: + +<pre> +$ telnet 127.0.0.1 -debug 5000 -e ^z +Telnet escape character is 'b'. +Telnet escape character is '^Z'. +Trying 127.0.0.1... +setsockopt (SO_DEBUG): Permission denied +Connected to 127.0.0.1. +Escape character is '^Z'. + 7 seconds +[1] Linaro disk image on virtio +[2] Shell +[3] Boot Manager +Start: 2 +UEFI Interactive Shell v2.0 +EDK II +UEFI v2.40 (ARM Fixed Virtual Platform EFI May 23 2014 12:13:52, 0x00000000) +Mapping table + FS2: Alias(s):F8: + VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB) + FS0: Alias(s):F3: + MemoryMapped(0xB,0x88000000,0x8827FFFF) + FS1: Alias(s):F4: + MemoryMapped(0xB,0xFEC16000,0xFEDF987F) + FS3: Alias(s):HD12b:;BLK5: + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5)/HD(1,MBR,0x00000000,0x3F,0x41FC0) + FS4: Alias(s):HD12e2:;BLK10: + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5)/HD(4,MBR,0x00000000,0x242000,0x1BE000)/HD(2,MBR,0x00000000,0x362020,0x9DFE0) + BLK3: Alias(s): + VenHw(E7223039-5836-41E1-B542-D7EC736C5E59) + BLK0: Alias(s): + VenHw(02118005-9DA7-443A-92D5-781F022AEDBB) + BLK1: Alias(s): + VenHw(1F15DA3C-37FF-4070-B471-BB4AF12A724A) + BLK2: Alias(s): + VenHw(CC2CBF29-1498-4CDD-8171-F8B6B41D0909) + BLK4: Alias(s): + VenHw(FE61BB5F-1B67-4C24-B346-73DB42E873E5) +Press ESC in 1 seconds to skip startup.nsh or any other key to continue. +Shell> kernel dtb=fvp-base-gicv2-psci.dtb initrd=ramdisk.img console=ttyAMA0 amba-clcd.mode=VGA +EFI stub: Booting Linux Kernel... +[ 0.000000] Initializing cgroup subsys cpu2E873E5)/HD(3,MBR,0x00000000,0x1C2000,0x80000) +[ 0.000000] Initializing cgroup subsys cpuacct +[ 0.000000] Linux version 3.10.63-00561-g90aa783 (buildslave@x86-64-07-android) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP PREEMPT Fri Jan 23 14:41:49 CET 2015 +</pre> + +h3. Black screen + +The boot screen has been disabled to speed up booting. This means you may not see anything on the CLCD terminal for a while depending on the performance of the machine the model is running on. For example a first boot on a 2 GHz machine with 32 GB of RAM took 20 minutes. Subsequent boots should take approximately half the time to boot. + +h2. Run the Android SDK + +h3. Attach ADB + +ADB on FVP Base models are supported over network. Follow the instructions here https://wiki.linaro.org/Internal/Projects/Juice/SetupNetworkingOnModelsUsingBridges to setup networking and use adb. + +You can also run all of the standard Android SDK tools. Learn more at "http://developer.android.com/sdk/index.html":http://developer.android.com/sdk/index.html + diff --git a/howto/armv8-android-fvp-lsk/HOWTO_prebuilt.txt b/howto/armv8-android-fvp-lsk/HOWTO_prebuilt.txt new file mode 100644 index 0000000..f699a3e --- /dev/null +++ b/howto/armv8-android-fvp-lsk/HOWTO_prebuilt.txt @@ -0,0 +1,69 @@ +Instructions for https://android-build.linaro.org/builds/~linaro-android/<BUILD_NAME>/ + += Get artifacts = + + Scroll down to the 'Downloads' section + + Click on each link to download: + boot.tar.bz2 + system.tar.bz2 + userdata.tar.bz2 + += Get linaro image tools = + + Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools + + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools + + If you're using a released build (with a -release or from releases.linaro.org), skip this step. + If you're using a "tip" build do not skip the step and do the following: + + $ sudo apt-get install bzr + $ bzr branch lp:linaro-image-tools + += Create media (SD card) = + + Disable automount (instructions provided for Gnome) + + $ TMP1=$(dconf read /org/gnome/desktop/media-handling/automount) + $ TMP2=$(dconf read /org/gnome/desktop/media-handling/automount-open) + $ dconf write /org/gnome/desktop/media-handling/automount false + $ dconf write /org/gnome/desktop/media-handling/automount-open false + + Insert an SD card + + Run 'dmesg' + + $ dmesg + + Look for a line that looks like the following at the end of the log + + [288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 < sdc5 sdc6 > + + WARNING: In the next step, make sure you use /dev/"whatever you see above". + You can erase your hard drive with the wrong parameter. + + Run linaro image tools + + $ linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + + If you're using tip of linaro image tools + + $ ./linaro-image-tools/linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + + To find <BOARD> run linaro-android-media-create with a -h and read the help. + + Restore automount + + $ dconf write /org/gnome/desktop/media-handling/automount $TMP1 + $ dconf write /org/gnome/desktop/media-handling/automount-open $TMP2 + + Remove the SD card from the device writer and plug it into the board. + += Check console output = + + Plug in an USB-to-serial converter and run minicom + + $ minicom -D /dev/ttyUSB0 -w -C minicom.txt diff --git a/howto/armv8-android-fvp-lsk/OPEN-EULA.txt b/howto/armv8-android-fvp-lsk/OPEN-EULA.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/howto/armv8-android-fvp-lsk/OPEN-EULA.txt diff --git a/howto/armv8-lsk/HOWTO_getsourceandbuild.txt b/howto/armv8-lsk/HOWTO_getsourceandbuild.txt new file mode 100644 index 0000000..958f2ae --- /dev/null +++ b/howto/armv8-lsk/HOWTO_getsourceandbuild.txt @@ -0,0 +1,145 @@ +Instructions for "https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-lsk/":https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-lsk/ + +Install build dependencies on Ubuntu: +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc uboot-mkimage openjdk-7-jdk openjdk-7-jre vim-common python-parted python-yaml wget uuid-dev iasl +</pre> + +You can also download linaro android build script(linaro_android_build_cmds.sh) from Downloads section at https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-lsk to do a complete ARMv8 Android build for FVP models from scratch. + +h2. Get the source + +<pre> + $ curl "http://android.git.linaro.org/gitweb?p=tools/repo.git;a=blob_plain;f=repo;hb=refs/heads/stable" > repo + $ chmod +x repo + $ ./repo init -u https://android.googlesource.com/platform/manifest -b android-5.0.0_r2 -g "default,-non-default,vexpress" + $ cd .repo + $ git clone https://android.git.linaro.org/git/platform/manifest -b linaro_android_5.0.0 local_manifests + $ cd .. + $ ./repo sync # this may take some time +</pre> + +h2. Build + +<pre> + $ source build/envsetup.sh + $ lunch fvp-eng + $ make selinuxtarballs +</pre> + +h2. Get linaro image tools + +Run these commands to get all the dependencies for linaro-image-tools +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools +</pre> +If you're using a "tip" build then we suggest you use the tip of linaro-image-tools from http://git.linaro.org/infrastructure/linaro-image-tools.git + +h2. Create binary for ARM FVP Base AEMv8 models + +Run linaro image tools + +pre. $ linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +If you're using tip of linaro image tools + +pre. $ ./linaro-image-tools/linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +h2. Extract the preboot files + +pre. tar -jxvf boot.tar.bz2 + +h2. Setup the runtime environment + +<pre> + $ export ARMLMD_LICENSE_FILE="8224@localhost" + $ ssh -L 8224:localhost:8224 -L 18224:localhost:18224 -N $USER@flexlm.linaro.org +</pre> + +h2. Running the models (verified on FVP Base model build 5502) + +<pre> + $ cd boot + $ /path/to/FVP_Base_AEMv8A-AEMv8A/models/Linux64_GCC-4.1/FVP_Base_AEMv8A-AEMv8A \ + -C pctl.startup=0.0.0.0 \ + -C bp.secure_memory=0 \ + -C cluster0.NUM_CORES=1 \ + -C cluster1.NUM_CORES=1 \ + -C cache_state_modelled=0 \ + -C bp.pl011_uart0.untimed_fifos=1 \ + -C bp.secureflashloader.fname=bl1.bin \ + -C bp.flashloader0.fname=fvp_fip.bin \ + -C bp.virtioblockdevice.image_path=mmc.bin +</pre> + +h3. Console redirection + +To redirect the console open a terminal and run + +pre. telnet 127.0.0.1 5000 + +h3. Set UEFI configuration, update kernel/ramdisk path and bootargs + +Stop the UEFI boot process and configure it for FVP models: + +<pre> +$ telnet 127.0.0.1 -debug 5000 -e ^z +Telnet escape character is 'b'. +Telnet escape character is '^Z'. +Trying 127.0.0.1... +setsockopt (SO_DEBUG): Permission denied +Connected to 127.0.0.1. +Escape character is '^Z'. + 7 seconds +[1] Linaro disk image on virtio +[2] Shell +[3] Boot Manager +Start: 3 +[1] Add Boot Device Entry +[2] Update Boot Device Entry +[3] Remove Boot Device Entry +[4] Update FDT path +[5] Return to main menu +Choice: 2 +[1] Linaro disk image on virtio +Update entry: 1 +File path of the EFI Application or the kernel: kernel +Has FDT support? [y/n] y +Add an initrd: [y/n] y +File path of the initrd: ramdisk.img +Arguments to pass to the binary: console=ttyAMA0 earlyprintk=pl011,0x1c090000 amba-clcd.mode=VGA +Description for this new Entry: Linaro disk image on virtio +[1] Add Boot Device Entry +[2] Update Boot Device Entry +[3] Remove Boot Device Entry +[4] Update FDT path +[5] Return to main menu +Choice: 5 +[1] Linaro disk image on virtio +[2] Shell +[3] Boot Manager +Start: 1 + PEI 1122 ms + DXE 259 ms + BDS 8 ms +Total Time = 1390 ms + +[ 0.000000] Initializing cgroup subsys cpu +[ 0.000000] Linux version 3.10.40-04438-g6a78140 (pundiramit@flying-dutchman) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP Mon Jun 2 14:50:25 IST 2014 +</pre> + +h3. Black screen + +The boot screen has been disabled to speed up booting. This means you may not see anything on the CLCD terminal for a while depending on the performance of the machine the model is running on. For example a first boot on a 2 GHz machine with 32 GB of RAM took 20 minutes. Subsequent boots should take approximately half the time to boot. + +h2. Run the Android SDK + +h3. Attach ADB + +ADB on FVP Base models are supported over network. Follow the instructions here https://wiki.linaro.org/Internal/Projects/Juice/SetupNetworkingOnModelsUsingBridges to setup networking and use adb. + +You can also run all of the standard Android SDK tools. Learn more at "http://developer.android.com/sdk/index.html":http://developer.android.com/sdk/index.html diff --git a/howto/armv8-lsk/HOWTO_install.txt b/howto/armv8-lsk/HOWTO_install.txt new file mode 100644 index 0000000..7102105 --- /dev/null +++ b/howto/armv8-lsk/HOWTO_install.txt @@ -0,0 +1,138 @@ +Instructions for "https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-lsk/":https://android-build.linaro.org/builds/~linaro-android-restricted/armv8-lsk/ + +h3. Run the build + +You'll need the latest ARM FVP Base models and a license to use the models. Follow the instructions at https://collaborate.linaro.org/display/ITS/FlexLM+and+Fast+Models for the same. + +h2. Get artifacts + +Scroll down and click on 'Downloads' + +Click on each link to download: +* boot.tar.bz2 +* system.tar.bz2 +* userdata.tar.bz2 + +h2. Get linaro image tools + +Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools + +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools +</pre> + +If you're using a released build (with a -release or from releases.linaro.org), skip this step. +If you're using a "tip" build do not skip the step and do the following: + +<pre> + $ sudo apt-get install bzr + $ bzr branch lp:linaro-image-tools +</pre> + +h2. Create binary for the ARM FVP Base AEMv8 models + +Run linaro image tools + +pre. $ linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +If you're using tip of linaro image tools + +pre. $ ./linaro-image-tools/linaro-android-media-create --image_file mmc.bin --image_size 2000M --dev vexpress --system system.tar.bz2 --userdata userdata.tar.bz2 --boot boot.tar.bz2 + +h2. Extract the preboot files + +pre. tar -jxvf boot.tar.bz2 + +h2. Setup the runtime environment + +<pre> + $ export ARMLMD_LICENSE_FILE="8224@localhost" + $ ssh -L 8224:localhost:8224 -L 18224:localhost:18224 -N $USER@flexlm.linaro.org & +</pre> + +h2. Running the models (verified on FVP Base model build 5502) + +<pre> + $ cd boot/ + $ /path/to/FVP_Base_AEMv8A-AEMv8A/models/Linux64_GCC-4.1/FVP_Base_AEMv8A-AEMv8A \ + -C pctl.startup=0.0.0.0 \ + -C bp.secure_memory=0 \ + -C cluster0.NUM_CORES=1 \ + -C cluster1.NUM_CORES=1 \ + -C cache_state_modelled=0 \ + -C bp.pl011_uart0.untimed_fifos=1 \ + -C bp.secureflashloader.fname=bl1.bin \ + -C bp.flashloader0.fname=fvp_fip.bin \ + -C bp.virtioblockdevice.image_path=mmc.bin +</pre> + +h3. Console redirection + +To redirect the console open a terminal and run + +pre. telnet 127.0.0.1 5000 + +h3. Set UEFI configuration, update kernel/ramdisk path and bootargs + +Stop the UEFI boot process and configure it for FVP models: + +<pre> +$ telnet 127.0.0.1 -debug 5000 -e ^z +Telnet escape character is 'b'. +Telnet escape character is '^Z'. +Trying 127.0.0.1... +setsockopt (SO_DEBUG): Permission denied +Connected to 127.0.0.1. +Escape character is '^Z'. + 7 seconds +[1] Linaro disk image on virtio +[2] Shell +[3] Boot Manager +Start: 3 +[1] Add Boot Device Entry +[2] Update Boot Device Entry +[3] Remove Boot Device Entry +[4] Update FDT path +[5] Return to main menu +Choice: 2 +[1] Linaro disk image on virtio +Update entry: 1 +File path of the EFI Application or the kernel: kernel +Has FDT support? [y/n] y +Add an initrd: [y/n] y +File path of the initrd: ramdisk.img +Arguments to pass to the binary: console=ttyAMA0 earlyprintk=pl011,0x1c090000 amba-clcd.mode=VGA +Description for this new Entry: Linaro disk image on virtio +[1] Add Boot Device Entry +[2] Update Boot Device Entry +[3] Remove Boot Device Entry +[4] Update FDT path +[5] Return to main menu +Choice: 5 +[1] Linaro disk image on virtio +[2] Shell +[3] Boot Manager +Start: 1 + PEI 1122 ms + DXE 259 ms + BDS 8 ms +Total Time = 1390 ms + +[ 0.000000] Initializing cgroup subsys cpu +[ 0.000000] Linux version 3.10.40-04438-g6a78140 (pundiramit@flying-dutchman) (gcc version 4.9 20140514 (prerelease) (GCC) ) #1 SMP Mon Jun 2 14:50:25 IST 2014 +</pre> + +h3. Black screen + +The boot screen has been disabled to speed up booting. This means you may not see anything on the CLCD terminal for a while depending on the performance of the machine the model is running on. For example a first boot on a 2 GHz machine with 32 GB of RAM took 20 minutes. Subsequent boots should take approximately half the time to boot. + +h2. Run the Android SDK + +h3. Attach ADB + +ADB on FVP Base models are supported over network. Follow the instructions here https://wiki.linaro.org/Internal/Projects/Juice/SetupNetworkingOnModelsUsingBridges to setup networking and use adb. + +You can also run all of the standard Android SDK tools. Learn more at "http://developer.android.com/sdk/index.html":http://developer.android.com/sdk/index.html + diff --git a/howto/armv8-lsk/HOWTO_prebuilt.txt b/howto/armv8-lsk/HOWTO_prebuilt.txt new file mode 100644 index 0000000..f699a3e --- /dev/null +++ b/howto/armv8-lsk/HOWTO_prebuilt.txt @@ -0,0 +1,69 @@ +Instructions for https://android-build.linaro.org/builds/~linaro-android/<BUILD_NAME>/ + += Get artifacts = + + Scroll down to the 'Downloads' section + + Click on each link to download: + boot.tar.bz2 + system.tar.bz2 + userdata.tar.bz2 + += Get linaro image tools = + + Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools + + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools + + If you're using a released build (with a -release or from releases.linaro.org), skip this step. + If you're using a "tip" build do not skip the step and do the following: + + $ sudo apt-get install bzr + $ bzr branch lp:linaro-image-tools + += Create media (SD card) = + + Disable automount (instructions provided for Gnome) + + $ TMP1=$(dconf read /org/gnome/desktop/media-handling/automount) + $ TMP2=$(dconf read /org/gnome/desktop/media-handling/automount-open) + $ dconf write /org/gnome/desktop/media-handling/automount false + $ dconf write /org/gnome/desktop/media-handling/automount-open false + + Insert an SD card + + Run 'dmesg' + + $ dmesg + + Look for a line that looks like the following at the end of the log + + [288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 < sdc5 sdc6 > + + WARNING: In the next step, make sure you use /dev/"whatever you see above". + You can erase your hard drive with the wrong parameter. + + Run linaro image tools + + $ linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + + If you're using tip of linaro image tools + + $ ./linaro-image-tools/linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + + To find <BOARD> run linaro-android-media-create with a -h and read the help. + + Restore automount + + $ dconf write /org/gnome/desktop/media-handling/automount $TMP1 + $ dconf write /org/gnome/desktop/media-handling/automount-open $TMP2 + + Remove the SD card from the device writer and plug it into the board. + += Check console output = + + Plug in an USB-to-serial converter and run minicom + + $ minicom -D /dev/ttyUSB0 -w -C minicom.txt diff --git a/howto/armv8-lsk/OPEN-EULA.txt b/howto/armv8-lsk/OPEN-EULA.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/howto/armv8-lsk/OPEN-EULA.txt diff --git a/howto/default/HOWTO_getsourceandbuild.txt b/howto/default/HOWTO_getsourceandbuild.txt new file mode 100644 index 0000000..28d20bd --- /dev/null +++ b/howto/default/HOWTO_getsourceandbuild.txt @@ -0,0 +1,91 @@ +Instructions for "https://android-build.linaro.org/builds/~linaro-android/<BUILD_NAME>/":https://android-build.linaro.org/builds/~linaro-android/<BUILD_NAME>/ + +h2. Get artifacts + +Scroll down to the 'Downloads' section + +Save linaro_android_build_cmds.sh to where you'd like to make your build. + +h2. Run the build script + +The linaro_android_build_cmds.sh script will download the source and create the build. + +<pre> + $ chmod +x linaro_android_build_cmds.sh + $ ./linaro_android_build_cmds.sh -h #To print the script usage +</pre> + +Most commonly used build options: + +<pre> + $ ./linaro_android_build_cmds.sh -t #To build from the tip of the branch without overlay + $ ./linaro_android_build_cmds.sh -t -o <overlay> #To build from the tip of the branch with provided overlay + $ ./linaro_android_build_cmds.sh -m <pinned_manifest> -o <overlay> #To reproduce an exact build from pinned manifest + $ ./linaro_android_build_cmds.sh -t -l <login-id> #Provide login/access ID to clone and build code from linaro-private repositories +</pre> + +h2. Get linaro image tools + +Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools + +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools +</pre> + + If you're using a released build (with a -release or from releases.linaro.org), skip this step. + If you're using a "tip" build do not skip the step and do the following: + + $ sudo apt-get install bzr + $ bzr branch lp:linaro-image-tools + +h2. Create media (SD card) + +Disable automount (instructions provided for Gnome) + +<pre> + $ TMP1=$(dconf read /org/gnome/desktop/media-handling/automount) + $ TMP2=$(dconf read /org/gnome/desktop/media-handling/automount-open) + $ dconf write /org/gnome/desktop/media-handling/automount false + $ dconf write /org/gnome/desktop/media-handling/automount-open false +</pre> + +Insert an SD card + +Run 'dmesg' + +pre. $ dmesg + +Look for a line that looks like the following at the end of the log + +pre. [288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 < sdc5 sdc6 > + +*WARNING* In the next step, make sure you use /dev/"whatever you see above". +You can erase your hard drive with the wrong parameter. + +Run linaro image tools + +pre. $ linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot out/target/product/<BOARD>/boot.tar.bz2 --system out/target/product/<BOARD>/system.tar.bz2 --userdata out/target/product/<BOARD>/userdata.tar.bz2 + +If you're using tip of linaro image tools + +pre. $ ./linaro-image-tools/linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot out/target/product/<BOARD>/boot.tar.bz2 --system out/target/product/<BOARD>/system.tar.bz2 --userdata +out/target/product/<BOARD>/userdata.tar.bz2 + +Restore automount + +<pre> + $ dconf write /org/gnome/desktop/media-handling/automount $TMP1 + $ dconf write /org/gnome/desktop/media-handling/automount-open $TMP2 +</pre> + +Remove the SD card from the device writer and plug it into the board. + +h2. Check console output + +Plug in an USB-to-serial converter and run minicom + +pre. $ minicom -D /dev/ttyUSB0 -w -C minicom.txt + + diff --git a/howto/default/HOWTO_install.txt b/howto/default/HOWTO_install.txt new file mode 100644 index 0000000..a8017a2 --- /dev/null +++ b/howto/default/HOWTO_install.txt @@ -0,0 +1,77 @@ +Instructions for "https://android-build.linaro.org/builds/~linaro-android/<BUILD_NAME>/":https://android-build.linaro.org/builds/~linaro-android/<BUILD_NAME>/ + +h2. Get artifacts + +Scroll down to the 'Downloads' section + +Click on each link to download: +* boot.tar.bz2 +* system.tar.bz2 +* userdata.tar.bz2 + +h2. Get linaro image tools + +Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools + +<pre> + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools +</pre> + +If you're using a released build (with a -release or from releases.linaro.org), skip this step. +If you're using a "tip" build do not skip the step and do the following: + +<pre> + $ sudo apt-get install bzr + $ bzr branch lp:linaro-image-tools +</pre> + +h2. Create media (SD card) + +Disable automount (instructions provided for Gnome) + +<pre> + $ TMP1=$(dconf read /org/gnome/desktop/media-handling/automount) + $ TMP2=$(dconf read /org/gnome/desktop/media-handling/automount-open) + $ dconf write /org/gnome/desktop/media-handling/automount false + $ dconf write /org/gnome/desktop/media-handling/automount-open false +</pre> + +Insert an SD card + +Run 'dmesg' + +pre. $ dmesg + +Look for a line that looks like the following at the end of the log + +pre. [288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 < sdc5 sdc6 > + +*WARNING* In the next step, make sure you use /dev/"whatever you see above". +You can erase your hard drive with the wrong parameter. + +Run linaro image tools + +pre. $ linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + +If you're using tip of linaro image tools + +pre. $ ./linaro-image-tools/linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + +To find <BOARD> run linaro-android-media-create with a -h and read the help. + +Restore automount + +<pre> + $ dconf write /org/gnome/desktop/media-handling/automount $TMP1 + $ dconf write /org/gnome/desktop/media-handling/automount-open $TMP2 +</pre> + +Remove the SD card from the device writer and plug it into the board. + +h2. Check console output + +Plug in an USB-to-serial converter and run minicom + +pre. $ minicom -D /dev/ttyUSB0 -w -C minicom.txt diff --git a/howto/default/HOWTO_prebuilt.txt b/howto/default/HOWTO_prebuilt.txt new file mode 100644 index 0000000..f699a3e --- /dev/null +++ b/howto/default/HOWTO_prebuilt.txt @@ -0,0 +1,69 @@ +Instructions for https://android-build.linaro.org/builds/~linaro-android/<BUILD_NAME>/ + += Get artifacts = + + Scroll down to the 'Downloads' section + + Click on each link to download: + boot.tar.bz2 + system.tar.bz2 + userdata.tar.bz2 + += Get linaro image tools = + + Run these commands to get all the dependencies for linaro-image-tools and the tip of linaro-image-tools + + $ sudo add-apt-repository ppa:linaro-maintainers/tools + $ sudo apt-get update + $ sudo apt-get install linaro-image-tools + + If you're using a released build (with a -release or from releases.linaro.org), skip this step. + If you're using a "tip" build do not skip the step and do the following: + + $ sudo apt-get install bzr + $ bzr branch lp:linaro-image-tools + += Create media (SD card) = + + Disable automount (instructions provided for Gnome) + + $ TMP1=$(dconf read /org/gnome/desktop/media-handling/automount) + $ TMP2=$(dconf read /org/gnome/desktop/media-handling/automount-open) + $ dconf write /org/gnome/desktop/media-handling/automount false + $ dconf write /org/gnome/desktop/media-handling/automount-open false + + Insert an SD card + + Run 'dmesg' + + $ dmesg + + Look for a line that looks like the following at the end of the log + + [288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 < sdc5 sdc6 > + + WARNING: In the next step, make sure you use /dev/"whatever you see above". + You can erase your hard drive with the wrong parameter. + + Run linaro image tools + + $ linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + + If you're using tip of linaro image tools + + $ ./linaro-image-tools/linaro-android-media-create --mmc /dev/sdc --dev <BOARD> --boot boot.tar.bz2 --system system.tar.bz2 --userdata userdata.tar.bz2 + + To find <BOARD> run linaro-android-media-create with a -h and read the help. + + Restore automount + + $ dconf write /org/gnome/desktop/media-handling/automount $TMP1 + $ dconf write /org/gnome/desktop/media-handling/automount-open $TMP2 + + Remove the SD card from the device writer and plug it into the board. + += Check console output = + + Plug in an USB-to-serial converter and run minicom + + $ minicom -D /dev/ttyUSB0 -w -C minicom.txt diff --git a/init.css.rc b/init.css.rc new file mode 100644 index 0000000..b6b8cb9 --- /dev/null +++ b/init.css.rc @@ -0,0 +1,125 @@ +on init + # mount debugfs + mount debugfs /sys/kernel/debug /sys/kernel/debug + + # disable transparent huge pages + write /sys/kernel/mm/transparent_hugepage/enabled "never" + + # See storage config details at http://source.android.com/tech/storage/ + symlink /sdcard /mnt/sdcard + symlink /sdcard /storage/sdcard0 + + # Disabled virtual memory randomization + # (if randomization is enabled the AEM-JIT will have a lower cache hit rate) + write /proc/sys/kernel/randomize_va_space 0 + + # enable armv8_deprecated instruction hooks + write /proc/sys/abi/swp 1 + +on fs + mount_all /fstab.cssbase + setprop ro.crypto.fuse_sdcard true + +on post-fs + setprop debug.hwc.modeline 1024x768@60 + + # Set the clock ratio mclk=ratio*pxclk for DPU0 to support downscalling + write /sys/devices/platform/2cc00000.display/clock_ratio 4 + +on post-fs-data + + chmod 777 /dev/adf0 + chmod 777 /dev/adf-interface0.0 + chmod 777 /dev/adf-interface0.1 + chmod 777 /dev/adf-overlay-engine0.0 + chmod 777 /dev/adf-overlay-engine0.1 + chmod 777 /dev/adf-overlay-engine0.2 + chmod 777 /dev/adf-overlay-engine0.3 + chmod 777 /dev/adf-overlay-engine0.4 + chmod 777 /dev/adf-overlay-engine0.5 + chmod 777 /dev/adf-overlay-engine0.6 + chmod 777 /dev/adf-overlay-engine0.7 + + + chmod 777 /dev/ion + chmod 777 /dev/ion-test + chmod 777 /dev/mv500 + chmod 777 /dev/mali0 + chmod 777 /dev/graphics/fb0 + mkdir /data/media 0770 media_rw media_rw + mkdir /data/misc/gatord 0700 root root + + # create for OP-TEE test + mkdir /data/tee 0700 root root + restorecon_recursive /data/tee + + # Set SELinux security contexts for files used by lava. + restorecon_recursive /data/local/tmp/lava + +on boot + +# make tee dev nodes permissive + chmod 766 /dev/tee0 + chmod 766 /dev/teepriv0 + + setprop ARGH ARGH + setprop ro.radio.use-ppp no + setprop ro.build.product generic + setprop ro.product.device generic + setprop dalvik.vm.heapsize 512m + +# fake some battery state + setprop status.battery.state Slow + setprop status.battery.level 5 + setprop status.battery.level_raw 50 + setprop status.battery.level_scale 9 + +# Set Display density + setprop ro.sf.lcd_density 90 + +# change permissions for process groups +# https://bugs.launchpad.net/bugs/1037611 + chmod 0660 /dev/cpuctl + +# disable RenderScript + setprop config.disable_renderscript 1 + +# disable some daemons the emulator doesn't want + stop dund + stop akmd + +# enable Google-specific location features, +# like NetworkLocationProvider and LocationCollector + setprop ro.com.google.locationfeatures 1 + + # change permissions for process groups + # https://bugs.launchpad.net/bugs/1037611 + chmod 0660 /dev/cpuctl + + # Disable bootanimation to speed up boot + setprop ro.kernel.android.bootanim 0 + setprop debug.sf.nobootanimation 1 + +# enable test harness + setprop ro.test_harness true + +service tee-supplicant /system/bin/tee-supplicant + class main + user root + oneshot + +service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL + class main + group dhcp + oneshot + +service iprenew_eth0 /system/bin/dhcpcd -n + class late_start + disabled + oneshot + +service gatord /system/bin/gatord -c /data/misc/gatord/configuration.xml + class main + user root + oneshot + seclabel u:r:gatord:s0 diff --git a/mali/Android.mk b/mali/Android.mk new file mode 100755 index 0000000..c9c3cc8 --- /dev/null +++ b/mali/Android.mk @@ -0,0 +1,21 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := hwcomposer.css.so +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_STRIP_MODULE := false +LOCAL_SRC_FILES_arm := lib/hw/$(LOCAL_MODULE) +LOCAL_SRC_FILES_arm64 := lib64/hw/$(LOCAL_MODULE) +LOCAL_MULTILIB := both +LOCAL_MODULE_RELATIVE_PATH := hw +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := libdrmclearkeyplugin.so +LOCAL_MODULE_CLASS := SHARED_LIBRARIES +LOCAL_STRIP_MODULE := false +LOCAL_SRC_FILES_arm := lib/mediadrm/$(LOCAL_MODULE) +LOCAL_SRC_FILES_arm64 := lib64/mediadrm/$(LOCAL_MODULE) +LOCAL_MULTILIB := both +LOCAL_MODULE_RELATIVE_PATH := mediadrm +include $(BUILD_PREBUILT) diff --git a/mali/LES-PRE-20769.txt b/mali/LES-PRE-20769.txt new file mode 100644 index 0000000..34da5f8 --- /dev/null +++ b/mali/LES-PRE-20769.txt @@ -0,0 +1,194 @@ +LES-PRE-20769
+SP-Version: 1.0
+25 November 2015
+
+END USER LICENCE AGREEMENT FOR THE MALI USERSPACE DRIVER ("Mali DRIVER")
+
+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
+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.
+
+"Applications" means applications for use solely in conjunction with
+Mali-based products manufactured under licence from ARM.
+
+"Output" means data resulting from your use of the Software and all
+direct and indirect derivatives thereof.
+
+"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 Driver.
+
+1. LICENCE GRANTS TO YOU.
+
+1.1 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 and copy the Software or certain components or optional
+ functionality in the Software, as applicable, solely for the
+ purposes of running, designing or developing Applications; and
+
+(ii) subject to Clause 1.2, distribute the whole of the Software;
+ and/or (b) the whole or any part of the Software together
+ with, or as incorporated into, Applications; and
+
+1.2 If you choose to redistribute the whole or any part of the
+Software pursuant to the licences granted in Clause 1.1(ii), you
+agree: (i) not to use ARM's or any of its licensors names, logos or
+trademarks to market Applications; (ii) to retain any and all
+copyright notices and other notices (whether ARM's or its licensor's)
+which are included with the Software; and (iii) include a copy of this
+Licence with such redistribution.
+
+2. RESTRICTIONS ON USE OF THE SOFTWARE.
+
+BENCHMARKING: This Licence does not prevent you from using the
+Software for benchmarking purposes. However, you shall ensure that 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, shall not be used
+to disparage ARM, its products or services, or in a manner that, in
+ARM's reasonable judgment, may diminish or otherwise damage the
+reputation 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.
+
+RESTRICTED USE: You agree that you shall not use the Software or the
+Output other than pursuant to and in accordance with the exercise of
+any of the licences granted under this Licence. Without limiting the
+generality of the foregoing, you shall not use the Software or any
+Output: (a) for determining if any features, functions or processes
+provided by the Software are covered by any patents or patent
+applications owned by you or a third party; or (b) for developing
+technology, applications or products which avoid any of ARM's
+intellectual property in the Software licensed hereunder; or (c) as a
+reference for modifying existing patents or patent applications or
+creating any continuation, continuation in part, or extension of
+existing patents or patent applications.
+
+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.
+
+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 APPLICATIONS, INCLUDING WITHOUT LIMITATION, 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. 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.
+
+7. 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 destroy all copies of the
+Software in your possession, together with all documentation and
+related materials. The provisions of clauses 2, 3, 4, 5, 6, 7, and 8
+shall survive termination of this Licence.
+
+8. 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 Agreement is subject to U.K.,
+European Union, and U.S. export control laws and regulations,
+including the U.S. Export Administration Act and its associated
+regulations (hereafter collectively referred to as "Export
+Regulations"). LICENSEE agrees to comply fully with all such Export
+Regulations and LICENSEE agrees that it shall not, either directly or
+indirectly, export in breach of the Export Regulations, any Software
+received under this Agreement, nor any direct products thereof; (i) to
+any country, company or person subject to export restrictions or
+sanctions under the Export Regulations; or (ii) for any prohibited end
+use, which at the time of export requires an export license or other
+governmental approval, without first obtaining such license or
+approval.
diff --git a/mali/NOTICE b/mali/NOTICE new file mode 120000 index 0000000..0f718ce --- /dev/null +++ b/mali/NOTICE @@ -0,0 +1 @@ +LES-PRE-20769.txt
\ No newline at end of file diff --git a/mali/lib/egl/libmali.so b/mali/lib/egl/libmali.so Binary files differnew file mode 100755 index 0000000..87393df --- /dev/null +++ b/mali/lib/egl/libmali.so diff --git a/mali/lib/hw/hwcomposer.css.so b/mali/lib/hw/hwcomposer.css.so Binary files differnew file mode 100755 index 0000000..8d7228b --- /dev/null +++ b/mali/lib/hw/hwcomposer.css.so diff --git a/mali/lib/hw/libstagefrighthw.so b/mali/lib/hw/libstagefrighthw.so Binary files differnew file mode 100755 index 0000000..a82bbe7 --- /dev/null +++ b/mali/lib/hw/libstagefrighthw.so diff --git a/mali/lib/mediadrm/libdrmclearkeyplugin.so b/mali/lib/mediadrm/libdrmclearkeyplugin.so Binary files differnew file mode 100755 index 0000000..67fadb1 --- /dev/null +++ b/mali/lib/mediadrm/libdrmclearkeyplugin.so diff --git a/mali/lib64/egl/libmali.so b/mali/lib64/egl/libmali.so Binary files differnew file mode 100755 index 0000000..9ad9106 --- /dev/null +++ b/mali/lib64/egl/libmali.so diff --git a/mali/lib64/hw/hwcomposer.css.so b/mali/lib64/hw/hwcomposer.css.so Binary files differnew file mode 100755 index 0000000..f7ad8dc --- /dev/null +++ b/mali/lib64/hw/hwcomposer.css.so diff --git a/mali/lib64/hw/libstagefrighthw.so b/mali/lib64/hw/libstagefrighthw.so Binary files differnew file mode 100755 index 0000000..0f55a50 --- /dev/null +++ b/mali/lib64/hw/libstagefrighthw.so diff --git a/mali/lib64/mediadrm/libdrmclearkeyplugin.so b/mali/lib64/mediadrm/libdrmclearkeyplugin.so Binary files differnew file mode 100755 index 0000000..1b06f1a --- /dev/null +++ b/mali/lib64/mediadrm/libdrmclearkeyplugin.so diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 0000000..42332fb --- /dev/null +++ b/manifest.xml @@ -0,0 +1,55 @@ +<manifest version="1.0" type="device"> + <hal format="hidl"> + <name>android.hardware.bluetooth</name> + <transport>hwbinder</transport> + <version>1.0</version> + <interface> + <name>IBluetoothHci</name> + <instance>default</instance> + </interface> + </hal> + <hal format="hidl"> + <name>android.hardware.graphics.allocator</name> + <transport>hwbinder</transport> + <version>2.0</version> + <interface> + <name>IAllocator</name> + <instance>default</instance> + </interface> + </hal> + <hal format="hidl"> + <name>android.hardware.graphics.mapper</name> + <transport arch="32+64">passthrough</transport> + <version>2.0</version> + <interface> + <name>IMapper</name> + <instance>default</instance> + </interface> + </hal> + <hal format="hidl"> + <name>android.hardware.wifi.supplicant</name> + <transport>hwbinder</transport> + <version>1.0</version> + <interface> + <name>ISupplicant</name> + <instance>default</instance> + </interface> + </hal> + <hal format="hidl"> + <name>android.hardware.audio</name> + <transport>hwbinder</transport> + <version>2.0</version> + <interface> + <name>IDevicesFactory</name> + </interface> + </hal> + <hal format="hidl"> + <name>android.hardware.camera.provider</name> + <transport>hwbinder</transport> + <version>2.4</version> + <interface> + <name>ICameraProvider</name> + <instance>default</instance> + </interface> + </hal> +</manifest> diff --git a/media_codecs.xml b/media_codecs.xml new file mode 100644 index 0000000..7425ef2 --- /dev/null +++ b/media_codecs.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!-- Copyright (C) 2012 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- +<!DOCTYPE MediaCodecs [ +<!ELEMENT MediaCodecs (Decoders,Encoders)> +<!ELEMENT Decoders (MediaCodec*)> +<!ELEMENT Encoders (MediaCodec*)> +<!ELEMENT MediaCodec (Type*,Quirk*)> +<!ATTLIST MediaCodec name CDATA #REQUIRED> +<!ATTLIST MediaCodec type CDATA> +<!ELEMENT Type EMPTY> +<!ATTLIST Type name CDATA #REQUIRED> +<!ELEMENT Quirk EMPTY> +<!ATTLIST Quirk name CDATA #REQUIRED> +]> + +There's a simple and a complex syntax to declare the availability of a +media codec: + +A codec that properly follows the OpenMax spec and therefore doesn't have any +quirks and that only supports a single content type can be declared like so: + + <MediaCodec name="OMX.foo.bar" type="something/interesting" /> + +If a codec has quirks OR supports multiple content types, the following syntax +can be used: + + <MediaCodec name="OMX.foo.bar" > + <Type name="something/interesting" /> + <Type name="something/else" /> + ... + <Quirk name="requires-allocate-on-input-ports" /> + <Quirk name="requires-allocate-on-output-ports" /> + <Quirk name="output-buffers-are-unreadable" /> + </MediaCodec> + +Only the three quirks included above are recognized at this point: + +"requires-allocate-on-input-ports" + must be advertised if the component does not properly support specification + of input buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"requires-allocate-on-output-ports" + must be advertised if the component does not properly support specification + of output buffers using the OMX_UseBuffer(...) API but instead requires + OMX_AllocateBuffer to be used. + +"output-buffers-are-unreadable" + must be advertised if the emitted output buffers of a decoder component + are not readable, i.e. use a custom format even though abusing one of + the official OMX colorspace constants. + Clients of such decoders will not be able to access the decoded data, + naturally making the component much less useful. The only use for + a component with this quirk is to render the output to the screen. + Audio decoders MUST NOT advertise this quirk. + Video decoders that advertise this quirk must be accompanied by a + corresponding color space converter for thumbnail extraction, + matching surfaceflinger support that can render the custom format to + a texture and possibly other code, so just DON'T USE THIS QUIRK. + +--> + +<MediaCodecs> + <Decoders> + <MediaCodec name="OMX.ARM.video.v5xx.decoder" > + <Type name="video/3gpp"> + <Limit name="measured-frame-rate-176x144" range="120-180"/> + <Limit name="measured-frame-rate-352x288" range="250-260"/> + <Feature name="adaptive-playback"/> + </Type> + <Type name="video/avc"> + <Limit name="measured-frame-rate-320x240" range="150-375"/> + <Limit name="measured-frame-rate-720x480" range="44-462"/> + <Limit name="measured-frame-rate-1280x720" range="108-170"/> + <Feature name="adaptive-playback"/> + </Type> + <Type name="video/mp4v-es"> + <Limit name="measured-frame-rate-176x144" range="190-200"/> + <Limit name="measured-frame-rate-480x360" range="60-100"/> + <Feature name="adaptive-playback"/> + </Type> + <Type name="video/mpeg2"/> + <Type name="video/vc1"/> + <Type name="video/wvc1"/> + <Type name="video/x-vnd.on2.vp8"> + <Limit name="measured-frame-rate-320x180" range="300-320"/> + <Limit name="measured-frame-rate-320x240" range="40-315"/> + <Limit name="measured-frame-rate-640x360" range="200-240"/> + <Limit name="measured-frame-rate-1280x720" range="28-28"/> + <Limit name="measured-frame-rate-1920x1080" range="25-26"/> + <Feature name="adaptive-playback"/> + </Type> + </MediaCodec> + <MediaCodec name="OMX.google.raw.decoder" type="audio/raw"/> + <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" /> + <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" /> + <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" /> + <MediaCodec name="OMX.google.aac.decoder" type="audio/mp4a-latm" /> + <MediaCodec name="OMX.google.g711.alaw.decoder" type="audio/g711-alaw" /> + <MediaCodec name="OMX.google.g711.mlaw.decoder" type="audio/g711-mlaw" /> + <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" /> + <MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm" /> + + <MediaCodec name="OMX.google.h263.decoder" type="video/3gpp" /> + <MediaCodec name="OMX.google.vp8.decoder" type="video/x-vnd.on2.vp8" /> + <MediaCodec name="OMX.google.vp9.decoder" type="video/x-vnd.on2.vp9" /> + </Decoders> + + <Encoders> + <MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" /> + <MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" /> + <MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" /> + <MediaCodec name="OMX.google.h263.encoder" type="video/3gpp" /> + <MediaCodec name="OMX.google.h264.encoder" type="video/avc" /> + <MediaCodec name="OMX.google.mpeg4.encoder" type="video/mp4v-es" /> + <MediaCodec name="OMX.google.flac.encoder" type="audio/flac" /> + <MediaCodec name="OMX.google.vp8.encoder" type="video/x-vnd.on2.vp8" /> + </Encoders> +</MediaCodecs> diff --git a/monkey_black_list b/monkey_black_list new file mode 100644 index 0000000..4e70fe0 --- /dev/null +++ b/monkey_black_list @@ -0,0 +1,6 @@ +com.android.development +com.android.quicksearchbox +com.android.speechrecorder +com.android.connectivitymanagertest +org.linaro.glmark2 +com.android.gallery3d diff --git a/optee-packages.mk b/optee-packages.mk new file mode 100644 index 0000000..baa3055 --- /dev/null +++ b/optee-packages.mk @@ -0,0 +1,15 @@ +ifeq ($(TA_DEV_KIT_DIR),) +OPTEE_PLATFORM ?= vexpress-css +OPTEE_CFG_ARM64_CORE ?= y +OPTEE_TA_TARGETS ?= ta_arm64 +OPTEE_OS_DIR ?= optee/optee_os +BUILD_OPTEE_MK := $(OPTEE_OS_DIR)/mk/aosp_optee.mk +else +BUILD_OPTEE_MK := device/arm/css/prebuilt_aosp_optee.mk +endif + +# OP TEE client library and service +PRODUCT_PACKAGES += libteec \ + tee-supplicant \ + + diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml new file mode 100644 index 0000000..029bdec --- /dev/null +++ b/overlay/frameworks/base/core/res/res/values/config.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2011, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> +<resources> + + <!-- This device is not "voice capable"; it's data-only. --> + <bool name="config_voice_capable">false</bool> + + <!-- This device does not allow sms service. --> + <bool name="config_sms_capable">false</bool> + + <!-- Separate software navigation bar required on this device. --> + <bool name="config_showNavigationBar">true</bool> + + <!-- XXXXX NOTE THE FOLLOWING RESOURCES USE THE WRONG NAMING CONVENTION. + Please don't copy them, copy anything else. --> + + <!-- the 5th element "resore-time" indicates the number of milliseconds to delay + before automatically restore the default connection. Set -1 if the connection + does not require auto-restore. --> + <!-- the 6th element indicates boot-time dependency-met value. --> + <string-array translatable="false" name="networkAttributes"> + <item>"wifi,1,1,1,-1,true"</item> + <item>"wifi_p2p,13,1,0,-1,true"</item> + <item>"ethernet,9,9,2,-1,true"</item> + </string-array> + + <!-- This string array should be overridden by the device to present a list of radio + attributes. This is used by the connectivity manager to decide which networks can coexist + based on the hardware --> + <!-- An Array of "[ConnectivityManager connectionType], + [# simultaneous connection types]" --> + <string-array translatable="false" name="radioAttributes"> + <item>"1,1"</item> + <item>"9,1"</item> + </string-array> + + +</resources> diff --git a/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml new file mode 100644 index 0000000..34d5433 --- /dev/null +++ b/overlay/frameworks/base/packages/SettingsProvider/res/values/defaults.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <integer name="def_screen_off_timeout">-1</integer> + <bool name="def_lockscreen_disabled">true</bool> + <bool name="def_stay_on_while_plugged_in">true</bool> +</resources> diff --git a/preboot/bl1.bin b/preboot/bl1.bin Binary files differnew file mode 100644 index 0000000..87e3d4c --- /dev/null +++ b/preboot/bl1.bin diff --git a/preboot/fip.bin b/preboot/fip.bin Binary files differnew file mode 100644 index 0000000..8dac97d --- /dev/null +++ b/preboot/fip.bin diff --git a/preboot/readme.txt b/preboot/readme.txt new file mode 100644 index 0000000..df84671 --- /dev/null +++ b/preboot/readme.txt @@ -0,0 +1,3 @@ +Binaries downloaded from: http://snapshots.linaro.org/components/kernel/fvp-pre-boot/54 + +The source is here: http://git.linaro.org/gitweb?p=arm/models/arm-trusted-firmware.git;a=summary diff --git a/preboot/startup.nsh b/preboot/startup.nsh new file mode 100644 index 0000000..e7a99ad --- /dev/null +++ b/preboot/startup.nsh @@ -0,0 +1 @@ +kernel dtb=fvp-base-gicv2-psci.dtb initrd=ramdisk.img console=ttyAMA0 amba-clcd.mode=VGA diff --git a/prebuilt_aosp_optee.mk b/prebuilt_aosp_optee.mk new file mode 100644 index 0000000..466537f --- /dev/null +++ b/prebuilt_aosp_optee.mk @@ -0,0 +1,70 @@ +########################################################## +## Common mk file used for Android to compile and ## +## integrate OP-TEE related components ## +## Following flags need to be defined in device.mk ## +## OPTEE_OS_DIR ## +## OPTEE_TA_TARGETS ## +## OPTEE_CFG_ARM64_CORE ## +## OPTEE_PLATFORM ## +## And BUILD_OPTEE_MK needs to be defined in device.mk ## +## to point to this file ## +## ## +## local_module needs to be defined before including ## +## this file to build TAs ## +## ## +########################################################## + +OPTEE_OUT_DIR ?= $(PRODUCT_OUT)/optee +OPTEE_TA_OUT_DIR ?= $(OPTEE_OUT_DIR)/ta +TOP_ROOT_ABS := $(realpath $(TOP)) + +# use CROSS_COMPILE if possible instead of android toolchain +ifeq ($(strip $(CROSS_COMPILE)),) +CROSS_COMPILE64 := $(TOP_ROOT_ABS)/$(TARGET_TOOLS_PREFIX) +else +CROSS_COMPILE64 := $(strip $(CROSS_COMPILE)) +endif +$(info $(CROSS_COMPILE64)) +CROSS_COMPILE_LINE := CROSS_COMPILE64="$(CROSS_COMPILE64)" +ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),) +CROSS_COMPILE32 := $(TOP_ROOT_ABS)/$($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX) +CROSS_COMPILE_LINE += CROSS_COMPILE32="$(CROSS_COMPILE32)" +endif + +########################################################## +## Lines for building TAs automatically ## +## will only be included in Android.mk for TAs ## +## local_module: ## +## need to be defined before include for this ## +########################################################## +ifneq (false,$(INCLUDE_FOR_BUILD_TA)) +include $(CLEAR_VARS) + +LOCAL_MODULE := $(local_module) +LOCAL_PREBUILT_MODULE_FILE := $(OPTEE_TA_OUT_DIR)/$(LOCAL_MODULE) +LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/optee_armtz +LOCAL_MODULE_CLASS := EXECUTABLES +LOCAL_MODULE_TAGS := optional + +TA_TMP_DIR := $(subst /,_,$(LOCAL_PATH)) +TA_TMP_FILE := $(OPTEE_TA_OUT_DIR)/$(TA_TMP_DIR)/$(LOCAL_MODULE) +$(LOCAL_PREBUILT_MODULE_FILE): $(TA_TMP_FILE) + @mkdir -p $(dir $@) + cp -uvf $< $@ + +$(TA_TMP_FILE): PRIVATE_TA_SRC_DIR := $(LOCAL_PATH) +$(TA_TMP_FILE): PRIVATE_TA_TMP_FILE := $(TA_TMP_FILE) +$(TA_TMP_FILE): PRIVATE_TA_TMP_DIR := $(TA_TMP_DIR) +$(TA_TMP_FILE): BUILD_OPTEE_OS + @echo "Start building TA for $(PRIVATE_TA_SRC_DIR) $(PRIVATE_TA_TMP_FILE)..." + $(MAKE) -C $(TOP_ROOT_ABS)/$(PRIVATE_TA_SRC_DIR) O=$(TOP_ROOT_ABS)/$(OPTEE_TA_OUT_DIR)/$(PRIVATE_TA_TMP_DIR) \ + TA_DEV_KIT_DIR=$(TOP_ROOT_ABS)/$(TA_DEV_KIT_DIR) \ + $(CROSS_COMPILE_LINE) + @echo "Finished building TA for $(PRIVATE_TA_SRC_DIR) $(PRIVATE_TA_TMP_FILE)..." + +include $(BUILD_PREBUILT) +endif + +BUILD_OPTEE_OS: + echo "Using prebuilt optee" + diff --git a/sepolicy/device.te b/sepolicy/device.te new file mode 100644 index 0000000..428ba9d --- /dev/null +++ b/sepolicy/device.te @@ -0,0 +1,2 @@ +type optee_dev, dev_type; +type vpu_device, dev_type; diff --git a/sepolicy/file.te b/sepolicy/file.te new file mode 100644 index 0000000..3954254 --- /dev/null +++ b/sepolicy/file.te @@ -0,0 +1 @@ +type optee_data_file, file_type, data_file_type; diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts new file mode 100644 index 0000000..3a28560 --- /dev/null +++ b/sepolicy/file_contexts @@ -0,0 +1,12 @@ +/dev/mali0 u:object_r:gpu_device:s0 +/dev/ump u:object_r:gpu_device:s0 +/dev/mv500 u:object_r:vpu_device:s0 + +# System files +/system/bin/setcpuset\.sh u:object_r:setcpuset-sh_exec:s0 + +# files for optee +/system/bin/tee-supplicant u:object_r:optee_exec:s0 +/dev/teepriv0 u:object_r:optee_dev:s0 +/data/tee(/.*)? u:object_r:optee_data_file:s0 +/dev/tee0 u:object_r:tee_device:s0 diff --git a/sepolicy/netd.te b/sepolicy/netd.te new file mode 100644 index 0000000..86fe108 --- /dev/null +++ b/sepolicy/netd.te @@ -0,0 +1,2 @@ +# Triggers a sys_module denial, but kernel has CONFIG_MODULES=n. +dontaudit netd self:capability sys_module; diff --git a/sepolicy/optee.te b/sepolicy/optee.te new file mode 100644 index 0000000..d3c5ffb --- /dev/null +++ b/sepolicy/optee.te @@ -0,0 +1,11 @@ +type optee , domain; +type optee_exec, exec_type, file_type; + +init_daemon_domain(optee) + +allow optee optee_dev:chr_file rw_file_perms; +allow optee optee_data_file:dir create_dir_perms; +allow optee optee_data_file:file { link create_file_perms }; + +#avc: denied { dac_override } for pid=1721 comm="tee-supplicant" capability=1 scontext=u:r:optee:s0 tcontext=u:r:optee:s0 tclass=capability permissive=1 +allow optee self:capability { dac_override }; diff --git a/sepolicy/setcpuset-sh.te b/sepolicy/setcpuset-sh.te new file mode 100644 index 0000000..8eec096 --- /dev/null +++ b/sepolicy/setcpuset-sh.te @@ -0,0 +1,7 @@ +type setcpuset-sh, domain; +type setcpuset-sh_exec, exec_type, file_type; + +init_daemon_domain(setcpuset-sh) + +allow setcpuset-sh shell_exec:file r_file_perms; +allow setcpuset-sh system_file:file x_file_perms; diff --git a/sepolicy/surfaceflinger.te b/sepolicy/surfaceflinger.te new file mode 100644 index 0000000..0bb2356 --- /dev/null +++ b/sepolicy/surfaceflinger.te @@ -0,0 +1,4 @@ +#surfaceflinger: type=1400 audit(0.0:11): avc: denied { execmem } for scontext=u:r:surfaceflinger:s0 tcontext=u:r:surfaceflinger:s0 tclass=process permissive=0 +allow surfaceflinger self:process execmem; +#surfaceflinger: type=1400 audit(0.0:11): avc: denied { execute } for path="/dev/ashmem" dev="tmpfs" ino=9287 scontext=u:r:surfaceflinger:s0 tcontext=u:object_r:ashmem_device:s0 tclass=chr_file permissive=0 +allow surfaceflinger ashmem_device:chr_file execute; diff --git a/sepolicy/vpu.te b/sepolicy/vpu.te new file mode 100644 index 0000000..d43cf5a --- /dev/null +++ b/sepolicy/vpu.te @@ -0,0 +1,3 @@ +type vpu , domain; +allow mediaserver vpu_device:chr_file rw_file_perms; +allow surfaceflinger vpu_device:chr_file rw_file_perms; diff --git a/setcpuset.sh b/setcpuset.sh new file mode 100644 index 0000000..bf44f68 --- /dev/null +++ b/setcpuset.sh @@ -0,0 +1,51 @@ +#!/system/bin/sh + +BIG_CPUS= +LITTLE_CPUS= +FIRST_LITTLE_CPU= +ALL_CPUS= +for cpufile in /sys/devices/system/cpu/cpu*/uevent; do + cpunum=${cpufile#/sys/devices/system/cpu/cpu} + cpunum=${cpunum%/uevent} + if grep -q -e 'ananke' $cpufile; then + echo CPU $cpunum is little core + LITTLE_CPUS=${LITTLE_CPUS:+$LITTLE_CPUS,}$cpunum + FIRST_LITTLE_CPU=${FIRST_LITTLE_CPU:-$cpunum} + elif grep -q -e 'prometheus' $cpufile; then + echo CPU $cpunum is big core + BIG_CPUS=${BIG_CPUS:+$BIG_CPUS,}$cpunum + else + echo CPU $cpunum is unknown type + fi + ALL_CPUS=${ALL_CPUS:+$ALL_CPUS,}$cpunum +done +echo BIG_CPUS=$BIG_CPUS +echo LITTLE_CPUS=$LITTLE_CPUS +echo FIRST_LITTLE_CPU=$FIRST_LITTLE_CPU + +# Foreground should contain all cores +echo $ALL_CPUS >/dev/cpuset/foreground/cpus + +# Add foreground/boost cpuset, it is used for app launches, +# and maybe other high priority tasks in the future. +# It's to be set to whatever cores should be used +# for short term high-priority tasks. +if [ -n "${BIG_CPUS}" ]; then + echo $BIG_CPUS >/dev/cpuset/foreground/boost/cpus +else + # set with all cpus if not found any BIG_CPUS + echo $ALL_CPUS >/dev/cpuset/foreground/boost/cpus +fi + +#background contains a small subset (generally one little core) +if [ -n "${FIRST_LITTLE_CPU}" ]; then + echo $FIRST_LITTLE_CPU >/dev/cpuset/background/cpus +else + # use cpu0 if not find any LITTLE CPUS + # same as default + echo 0 >/dev/cpuset/background/cpus +fi +# add system-background cpuset, a new cpuset for system services +# that should not run on larger cores +# system-background is for system tasks that should only run on + diff --git a/system.prop b/system.prop new file mode 100644 index 0000000..70c0009 --- /dev/null +++ b/system.prop @@ -0,0 +1,4 @@ +# This overrides settings in the products/generic/system.prop file +# +# rild.libpath=/system/lib/libreference-ril.so +# rild.libargs=-d /dev/ttyS0 diff --git a/vendorsetup.sh b/vendorsetup.sh new file mode 100755 index 0000000..6cd02e5 --- /dev/null +++ b/vendorsetup.sh @@ -0,0 +1,27 @@ +# +# Copyright (C) 2013 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This file is executed by build/envsetup.sh, and can use anything +# defined in envsetup.sh. +# +# In particular, you can add lunch options with the add_lunch_combo +# function: add_lunch_combo generic-eng + +add_lunch_combo css_gpu-userdebug +add_lunch_combo css_swr-userdebug +add_lunch_combo css_gpu_src-userdebug +add_lunch_combo css_swr_src-userdebug +add_lunch_combo css_emu-userdebug |