Commit 7bd79ad8b55b5b6b475c6d4dbfcac7746f5a02fb

Authored by Eric Lee
0 parents

Android 10.0 patch for SMARC-iMX8M, initial release

Showing 80 changed files with 4170 additions and 0 deletions Side-by-side Diff

... ... @@ -0,0 +1,3 @@
  1 +.*
  2 +!.gitignore
  3 +*.o
... ... @@ -0,0 +1,192 @@
  1 +
  2 + Copyright (C) 2008-2015 The Android Open Source Project
  3 + Copyright (C) 2011-2016 Freescale Semiconductor, Inc.
  4 + Copyright 2017-2018 NXP
  5 +
  6 + Licensed under the Apache License, Version 2.0 (the "License");
  7 + you may not use this file except in compliance with the License.
  8 +
  9 + Unless required by applicable law or agreed to in writing, software
  10 + distributed under the License is distributed on an "AS IS" BASIS,
  11 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12 + See the License for the specific language governing permissions and
  13 + limitations under the License.
  14 +
  15 +
  16 + Apache License
  17 + Version 2.0, January 2004
  18 + http://www.apache.org/licenses/
  19 +
  20 + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
  21 +
  22 + 1. Definitions.
  23 +
  24 + "License" shall mean the terms and conditions for use, reproduction,
  25 + and distribution as defined by Sections 1 through 9 of this document.
  26 +
  27 + "Licensor" shall mean the copyright owner or entity authorized by
  28 + the copyright owner that is granting the License.
  29 +
  30 + "Legal Entity" shall mean the union of the acting entity and all
  31 + other entities that control, are controlled by, or are under common
  32 + control with that entity. For the purposes of this definition,
  33 + "control" means (i) the power, direct or indirect, to cause the
  34 + direction or management of such entity, whether by contract or
  35 + otherwise, or (ii) ownership of fifty percent (50%) or more of the
  36 + outstanding shares, or (iii) beneficial ownership of such entity.
  37 +
  38 + "You" (or "Your") shall mean an individual or Legal Entity
  39 + exercising permissions granted by this License.
  40 +
  41 + "Source" form shall mean the preferred form for making modifications,
  42 + including but not limited to software source code, documentation
  43 + source, and configuration files.
  44 +
  45 + "Object" form shall mean any form resulting from mechanical
  46 + transformation or translation of a Source form, including but
  47 + not limited to compiled object code, generated documentation,
  48 + and conversions to other media types.
  49 +
  50 + "Work" shall mean the work of authorship, whether in Source or
  51 + Object form, made available under the License, as indicated by a
  52 + copyright notice that is included in or attached to the work
  53 + (an example is provided in the Appendix below).
  54 +
  55 + "Derivative Works" shall mean any work, whether in Source or Object
  56 + form, that is based on (or derived from) the Work and for which the
  57 + editorial revisions, annotations, elaborations, or other modifications
  58 + represent, as a whole, an original work of authorship. For the purposes
  59 + of this License, Derivative Works shall not include works that remain
  60 + separable from, or merely link (or bind by name) to the interfaces of,
  61 + the Work and Derivative Works thereof.
  62 +
  63 + "Contribution" shall mean any work of authorship, including
  64 + the original version of the Work and any modifications or additions
  65 + to that Work or Derivative Works thereof, that is intentionally
  66 + submitted to Licensor for inclusion in the Work by the copyright owner
  67 + or by an individual or Legal Entity authorized to submit on behalf of
  68 + the copyright owner. For the purposes of this definition, "submitted"
  69 + means any form of electronic, verbal, or written communication sent
  70 + to the Licensor or its representatives, including but not limited to
  71 + communication on electronic mailing lists, source code control systems,
  72 + and issue tracking systems that are managed by, or on behalf of, the
  73 + Licensor for the purpose of discussing and improving the Work, but
  74 + excluding communication that is conspicuously marked or otherwise
  75 + designated in writing by the copyright owner as "Not a Contribution."
  76 +
  77 + "Contributor" shall mean Licensor and any individual or Legal Entity
  78 + on behalf of whom a Contribution has been received by Licensor and
  79 + subsequently incorporated within the Work.
  80 +
  81 + 2. Grant of Copyright License. Subject to the terms and conditions of
  82 + this License, each Contributor hereby grants to You a perpetual,
  83 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  84 + copyright license to reproduce, prepare Derivative Works of,
  85 + publicly display, publicly perform, sublicense, and distribute the
  86 + Work and such Derivative Works in Source or Object form.
  87 +
  88 + 3. Grant of Patent License. Subject to the terms and conditions of
  89 + this License, each Contributor hereby grants to You a perpetual,
  90 + worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  91 + (except as stated in this section) patent license to make, have made,
  92 + use, offer to sell, sell, import, and otherwise transfer the Work,
  93 + where such license applies only to those patent claims licensable
  94 + by such Contributor that are necessarily infringed by their
  95 + Contribution(s) alone or by combination of their Contribution(s)
  96 + with the Work to which such Contribution(s) was submitted. If You
  97 + institute patent litigation against any entity (including a
  98 + cross-claim or counterclaim in a lawsuit) alleging that the Work
  99 + or a Contribution incorporated within the Work constitutes direct
  100 + or contributory patent infringement, then any patent licenses
  101 + granted to You under this License for that Work shall terminate
  102 + as of the date such litigation is filed.
  103 +
  104 + 4. Redistribution. You may reproduce and distribute copies of the
  105 + Work or Derivative Works thereof in any medium, with or without
  106 + modifications, and in Source or Object form, provided that You
  107 + meet the following conditions:
  108 +
  109 + (a) You must give any other recipients of the Work or
  110 + Derivative Works a copy of this License; and
  111 +
  112 + (b) You must cause any modified files to carry prominent notices
  113 + stating that You changed the files; and
  114 +
  115 + (c) You must retain, in the Source form of any Derivative Works
  116 + that You distribute, all copyright, patent, trademark, and
  117 + attribution notices from the Source form of the Work,
  118 + excluding those notices that do not pertain to any part of
  119 + the Derivative Works; and
  120 +
  121 + (d) If the Work includes a "NOTICE" text file as part of its
  122 + distribution, then any Derivative Works that You distribute must
  123 + include a readable copy of the attribution notices contained
  124 + within such NOTICE file, excluding those notices that do not
  125 + pertain to any part of the Derivative Works, in at least one
  126 + of the following places: within a NOTICE text file distributed
  127 + as part of the Derivative Works; within the Source form or
  128 + documentation, if provided along with the Derivative Works; or,
  129 + within a display generated by the Derivative Works, if and
  130 + wherever such third-party notices normally appear. The contents
  131 + of the NOTICE file are for informational purposes only and
  132 + do not modify the License. You may add Your own attribution
  133 + notices within Derivative Works that You distribute, alongside
  134 + or as an addendum to the NOTICE text from the Work, provided
  135 + that such additional attribution notices cannot be construed
  136 + as modifying the License.
  137 +
  138 + You may add Your own copyright statement to Your modifications and
  139 + may provide additional or different license terms and conditions
  140 + for use, reproduction, or distribution of Your modifications, or
  141 + for any such Derivative Works as a whole, provided Your use,
  142 + reproduction, and distribution of the Work otherwise complies with
  143 + the conditions stated in this License.
  144 +
  145 + 5. Submission of Contributions. Unless You explicitly state otherwise,
  146 + any Contribution intentionally submitted for inclusion in the Work
  147 + by You to the Licensor shall be under the terms and conditions of
  148 + this License, without any additional terms or conditions.
  149 + Notwithstanding the above, nothing herein shall supersede or modify
  150 + the terms of any separate license agreement you may have executed
  151 + with Licensor regarding such Contributions.
  152 +
  153 + 6. Trademarks. This License does not grant permission to use the trade
  154 + names, trademarks, service marks, or product names of the Licensor,
  155 + except as required for reasonable and customary use in describing the
  156 + origin of the Work and reproducing the content of the NOTICE file.
  157 +
  158 + 7. Disclaimer of Warranty. Unless required by applicable law or
  159 + agreed to in writing, Licensor provides the Work (and each
  160 + Contributor provides its Contributions) on an "AS IS" BASIS,
  161 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  162 + implied, including, without limitation, any warranties or conditions
  163 + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
  164 + PARTICULAR PURPOSE. You are solely responsible for determining the
  165 + appropriateness of using or redistributing the Work and assume any
  166 + risks associated with Your exercise of permissions under this License.
  167 +
  168 + 8. Limitation of Liability. In no event and under no legal theory,
  169 + whether in tort (including negligence), contract, or otherwise,
  170 + unless required by applicable law (such as deliberate and grossly
  171 + negligent acts) or agreed to in writing, shall any Contributor be
  172 + liable to You for damages, including any direct, indirect, special,
  173 + incidental, or consequential damages of any character arising as a
  174 + result of this License or out of the use or inability to use the
  175 + Work (including but not limited to damages for loss of goodwill,
  176 + work stoppage, computer failure or malfunction, or any and all
  177 + other commercial damages or losses), even if such Contributor
  178 + has been advised of the possibility of such damages.
  179 +
  180 + 9. Accepting Warranty or Additional Liability. While redistributing
  181 + the Work or Derivative Works thereof, You may choose to offer,
  182 + and charge a fee for, acceptance of support, warranty, indemnity,
  183 + or other liability obligations and/or rights consistent with this
  184 + License. However, in accepting such obligations, You may act only
  185 + on Your own behalf and on Your sole responsibility, not on behalf
  186 + of any other Contributor, and only if You agree to indemnify,
  187 + defend, and hold each Contributor harmless for any liability
  188 + incurred by, or claims asserted against, such Contributor by reason
  189 + of your accepting any such warranty or additional liability.
  190 +
  191 + END OF TERMS AND CONDITIONS
  192 +
common/EmbPathConfig.mk
... ... @@ -0,0 +1,13 @@
  1 +# config.mk
  2 +#
  3 +# Product-specific compile-time definitions.
  4 +#
  5 +
  6 +KERNEL_IMX_PATH := vendor/embedian
  7 +UBOOT_IMX_PATH := vendor/embedian
  8 +IMX_MKIMAGE_PATH := vendor/nxp-opensource
  9 +FSL_PROPRIETARY_PATH := vendor/nxp
  10 +IMX_PATH := vendor/nxp-opensource
  11 +LINUX_FIRMWARE_IMX_PATH := vendor/nxp
  12 +FSL_IMX_OMX_PATH := vendor/nxp
  13 +IMX_LIB_PATH := vendor/nxp-opensource
imx8m/AndroidProducts.mk
... ... @@ -0,0 +1,37 @@
  1 +#Copyright (C) 2008 The Android Open Source Project
  2 +#
  3 +# Licensed under the Apache License, Version 2.0 (the "License");
  4 +# you may not use this file except in compliance with the License.
  5 +# You may obtain a copy of the License at
  6 +#
  7 +# http://www.apache.org/licenses/LICENSE-2.0
  8 +#
  9 +# Unless required by applicable law or agreed to in writing, software
  10 +# distributed under the License is distributed on an "AS IS" BASIS,
  11 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12 +# See the License for the specific language governing permissions and
  13 +# limitations under the License.
  14 +#
  15 +
  16 +#
  17 +# This file should set PRODUCT_MAKEFILES to a list of product makefiles
  18 +# to expose to the build system. LOCAL_DIR will already be set to
  19 +# the directory containing this file.
  20 +#
  21 +# This file may not rely on the value of any variable other than
  22 +# LOCAL_DIR; do not use any conditionals, and do not look up the
  23 +# value of any variable that isn't set in this file or in a file that
  24 +# it includes.
  25 +#
  26 +
  27 +# Copied from build/target/product/AndroidProducts.mk
  28 +
  29 +PRODUCT_MAKEFILES := \
  30 + $(LOCAL_DIR)/smarc_mx8mq/smarc_mx8mq.mk \
  31 + $(LOCAL_DIR)/smarc_mx8mq/smarc_mx8mq_drm.mk
  32 +
  33 +COMMON_LUNCH_CHOICES := \
  34 + smarc_mx8mq-user \
  35 + smarc_mx8mq-userdebug \
  36 + smarc_mx8mq_drm-user \
  37 + smarc_mx8mq_drm-userdebug
imx8m/UbootKernelCommonConfig.mk
... ... @@ -0,0 +1,2 @@
  1 +TARGET_UBOOT_ARCH := arm64
  2 +
imx8m/com.example.android.systemupdatersample.xml
... ... @@ -0,0 +1,22 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<!--
  3 + ~ Copyright (C) 2019 The Android Open Source Project
  4 + ~ Copyright 2019 NXP
  5 + ~
  6 + ~ Licensed under the Apache License, Version 2.0 (the "License");
  7 + ~ you may not use this file except in compliance with the License.
  8 + ~ You may obtain a copy of the License at
  9 + ~
  10 + ~ http://www.apache.org/licenses/LICENSE-2.0
  11 + ~
  12 + ~ Unless required by applicable law or agreed to in writing, software
  13 + ~ distributed under the License is distributed on an "AS IS" BASIS,
  14 + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15 + ~ See the License for the specific language governing permissions and
  16 + ~ limitations under the License
  17 + -->
  18 +<permissions>
  19 + <privapp-permissions package="com.example.android.systemupdatersample">
  20 + <permission name="android.permission.ACCESS_CACHE_FILESYSTEM"/>
  21 + </privapp-permissions>
  22 +</permissions>
imx8m/init.recovery.freescale.rc
... ... @@ -0,0 +1,5 @@
  1 +on init
  2 + # disable cursor blink for fbcon, if no splash screen support
  3 + write /sys/class/graphics/fbcon/cursor_blink 0
  4 +
  5 + setprop sys.usb.configfs 1
imx8m/optee-packages.mk
... ... @@ -0,0 +1,70 @@
  1 +OPTEE_PLATFORM ?= imx
  2 +ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),smarc_mx8mm smarc_mx8mm_drm))
  3 +OPTEE_PLATFORM_FLAVOR ?= smarc_mx8mm
  4 +else
  5 +ifeq ($(TARGET_PRODUCT),$(filter $(TARGET_PRODUCT),smarc_mx8mq smarc_mx8mq_drm))
  6 +OPTEE_PLATFORM_FLAVOR ?= smarc_mx8mq
  7 +else
  8 +$(error Invalid platform $(TARGET_PRODUCT))
  9 +endif
  10 +endif
  11 +OPTEE_CFG_ARM64_CORE ?= y
  12 +OPTEE_TA_TARGETS ?= ta_arm64
  13 +CFG_SECSTOR_TA_MGMT_PTA ?= y
  14 +#Force CFG_TA_DYNLINK=y to fix optee_test build
  15 +#https://github.com/OP-TEE/optee_test/issues/275
  16 +CFG_TA_DYNLINK := y
  17 +#OPTEE_TA_TARGETS ?= ta_arm32
  18 +OPTEE_OS_DIR ?= optee/optee_os
  19 +OPTEE_EXTRA_FLAGS ?= CFG_TEE_CORE_LOG_LEVEL=1 CFG_TEE_TA_LOG_LEVEL=1 DEBUG=0
  20 +ifeq ($(CFG_DRM_SECURE_DATA_PATH), y)
  21 +OPTEE_EXTRA_FLAGS += CFG_IMXCRYPT=y
  22 +OPTEE_EXTRA_FLAGS += CFG_DRM_SECURE_DATA_PATH=y
  23 +OPTEE_EXTRA_FLAGS += CFG_SECURE_DATA_PATH=y
  24 +OPTEE_EXTRA_FLAGS += CFG_TEE_SDP_MEM_BASE=$(CFG_TEE_SDP_MEM_BASE)
  25 +OPTEE_EXTRA_FLAGS += CFG_TEE_SDP_MEM_SIZE=$(CFG_TEE_SDP_MEM_SIZE)
  26 +OPTEE_EXTRA_FLAGS += CFG_TEE_SDP_NONCACHE=y
  27 +ifeq ($(CFG_RDC_SECURE_DATA_PATH),y)
  28 +OPTEE_EXTRA_FLAGS += CFG_RDC_SECURE_DATA_PATH=y
  29 +OPTEE_EXTRA_FLAGS += CFG_RDC_DECODED_BUFFER=$(DECODED_BUFFER_START)
  30 +endif
  31 +else
  32 +OPTEE_EXTRA_FLAGS += CFG_SECURE_DATA_PATH=n
  33 +endif
  34 +
  35 +BUILD_OPTEE_MK := $(OPTEE_OS_DIR)/mk/aosp_optee.mk
  36 +
  37 +# OP TEE client library and service
  38 +PRODUCT_PACKAGES += libteec \
  39 + tee-supplicant \
  40 +
  41 +# optee_test and TA
  42 +PRODUCT_PACKAGES += xtest
  43 +# os_test
  44 +PRODUCT_PACKAGES += 5b9e0e40-2636-11e1-ad9e-0002a5d5c51b.ta
  45 +# concurrent_large
  46 +PRODUCT_PACKAGES += 5ce0c432-0ab0-40e5-a056-782ca0e6aba2.ta
  47 +# sha_perf
  48 +PRODUCT_PACKAGES += 614789f2-39c0-4ebf-b235-92b32ac107ed.ta
  49 +# storage2
  50 +PRODUCT_PACKAGES += 731e279e-aafb-4575-a771-38caa6f0cca6.ta
  51 +# storage
  52 +PRODUCT_PACKAGES += b689f2a7-8adf-477a-9f99-32e90c0ad0a2.ta
  53 +# create_fail_test
  54 +PRODUCT_PACKAGES += c3f6e2c0-3548-11e1-b86c-0800200c9a66.ta
  55 +# crypt
  56 +PRODUCT_PACKAGES += cb3e5ba0-adf1-11e0-998b-0002a5d5c51b.ta
  57 +# rpc_test
  58 +PRODUCT_PACKAGES += d17f73a0-36ef-11e1-984a-0002a5d5c51b.ta
  59 +# concurrent
  60 +PRODUCT_PACKAGES += e13010e0-2ae1-11e5-896a-0002a5d5c51b.ta
  61 +# aes_perf
  62 +PRODUCT_PACKAGES += e626662e-c0e2-485c-b8c8-09fbce6edf3d.ta
  63 +# sims
  64 +PRODUCT_PACKAGES += e6a33ed4-562b-463a-bb7e-ff5e15a493c8.ta
  65 +# storage_benchmark
  66 +PRODUCT_PACKAGES += f157cda0-550c-11e5-a6fa-0002a5d5c51b.ta
  67 +# socket
  68 +PRODUCT_PACKAGES += 873bcd08-c2c3-11e6-a937-d0bf9c45c61c.ta
  69 +# sdp-basic
  70 +PRODUCT_PACKAGES += 12345678-5b69-11e4-9dbb-101f74f00099.ta
imx8m/smarc_mx8mq/AndroidBoard.mk
... ... @@ -0,0 +1,8 @@
  1 +LOCAL_PATH := $(call my-dir)
  2 +
  3 +include device/embedian/common/EmbPathConfig.mk
  4 +include device/fsl/common/build/dtbo.mk
  5 +include device/fsl/common/build/imx-recovery.mk
  6 +include device/fsl/common/build/gpt.mk
  7 +include $(FSL_PROPRIETARY_PATH)/fsl-proprietary/media-profile/media-profile.mk
  8 +include $(FSL_PROPRIETARY_PATH)/fsl-proprietary/sensor/fsl-sensor.mk
imx8m/smarc_mx8mq/AndroidTee.mk
... ... @@ -0,0 +1,12 @@
  1 +# uboot.imx in android combine scfw.bin and uboot.bin
  2 +MAKE += SHELL=/bin/bash
  3 +
  4 +define build_uboot_w_tee
  5 + $(MAKE) -C bootable/bootloader/arm-trusted-firmware/ -B CROSS_COMPILE=aarch64-linux-android- PLAT=imx8mq V=1 SPD=opteed DECRYPTED_BUFFER_START=$(DECRYPTED_BUFFER_START) DECRYPTED_BUFFER_LEN=$(DECRYPTED_BUFFER_LEN) DECODED_BUFFER_START=$(DECODED_BUFFER_START) DECODED_BUFFER_LEN=$(DECODED_BUFFER_LEN) bl31; \
  6 + cp bootable/bootloader/arm-trusted-firmware/build/imx8mq/release/bl31.bin $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.;\
  7 + aarch64-linux-android-objcopy -O binary out/target/product/smarc_mx8mq/optee/arm-plat-imx/core/tee.elf $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/tee.bin; \
  8 + $(MAKE) -C $(IMX_MKIMAGE_PATH)/imx-mkimage/ clean; \
  9 + $(MAKE) -C $(IMX_MKIMAGE_PATH)/imx-mkimage/ SOC=iMX8M flash_hdmi_spl_uboot; \
  10 + cp $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/flash.bin $(PRODUCT_OUT)/u-boot-$(strip $(2)).imx;
  11 +endef
  12 +
imx8m/smarc_mx8mq/AndroidUboot.mk
... ... @@ -0,0 +1,37 @@
  1 +# uboot.imx in android combine scfw.bin and uboot.bin
  2 +MAKE += SHELL=/bin/bash
  3 +
  4 +ATF_TOOLCHAIN_ABS := $(realpath prebuilts/gcc/$(HOST_PREBUILT_TAG)/aarch64/aarch64-linux-android-4.9/bin)
  5 +ATF_CROSS_COMPILE := $(ATF_TOOLCHAIN_ABS)/aarch64-linux-androidkernel-
  6 +IMX_DEVICE_PATH := device/embedian/imx8m/smarc_mx8mq
  7 +
  8 +define build_imx_uboot
  9 + $(hide) echo Building i.MX U-Boot with firmware; \
  10 + cp $(UBOOT_OUT)/u-boot-nodtb.$(strip $(1)) $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.; \
  11 + cp $(UBOOT_OUT)/spl/u-boot-spl.bin $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.; \
  12 + cp $(UBOOT_OUT)/tools/mkimage $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/mkimage_uboot; \
  13 + cp $(FSL_PROPRIETARY_PATH)/linux-firmware-imx/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.; \
  14 + cp $(UBOOT_OUT)/arch/arm/dts/fsl-smarcimx8mq.dtb $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.; \
  15 + cp $(FSL_PROPRIETARY_PATH)/fsl-proprietary/uboot-firmware/imx8m/signed_hdmi_imx8m.bin $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.; \
  16 + cp $(FSL_PROPRIETARY_PATH)/linux-firmware-imx/firmware/ddr/synopsys/lpddr4_pmu_train* $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.; \
  17 + $(MAKE) -C $(IMX_PATH)/arm-trusted-firmware/ PLAT=`echo $(2) | cut -d '-' -f1` clean; \
  18 + if [ `echo $(2) | cut -d '-' -f2` = "trusty" ] && [ `echo $(2) | rev | cut -d '-' -f1` != "uuu" ]; then \
  19 + cp $(FSL_PROPRIETARY_PATH)/fsl-proprietary/uboot-firmware/imx8m/tee-imx8mq.bin $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/tee.bin; \
  20 + $(MAKE) -C $(IMX_PATH)/arm-trusted-firmware/ CROSS_COMPILE="$(ATF_CROSS_COMPILE)" PLAT=`echo $(2) | cut -d '-' -f1` bl31 -B SPD=trusty 1>/dev/null || exit 1; \
  21 + else \
  22 + if [ -f $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/tee.bin ] ; then \
  23 + rm -rf $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/tee.bin; \
  24 + fi; \
  25 + $(MAKE) -C $(IMX_PATH)/arm-trusted-firmware/ CROSS_COMPILE="$(ATF_CROSS_COMPILE)" PLAT=`echo $(2) | cut -d '-' -f1` bl31 -B 1>/dev/null || exit 1; \
  26 + fi; \
  27 + cp $(IMX_PATH)/arm-trusted-firmware/build/`echo $(2) | cut -d '-' -f1`/release/bl31.bin $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/bl31.bin; \
  28 + $(MAKE) -C $(IMX_MKIMAGE_PATH)/imx-mkimage/ clean; \
  29 + $(MAKE) -C $(IMX_MKIMAGE_PATH)/imx-mkimage/ SOC=iMX8M flash_hdmi_spl_uboot 1>/dev/null || exit 1; \
  30 + $(MAKE) -C $(IMX_MKIMAGE_PATH)/imx-mkimage/ SOC=iMX8M print_fit_hab || exit 1; \
  31 + cp $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/flash.bin $(UBOOT_COLLECTION)/u-boot-$(strip $(2)).imx; \
  32 + cp $(IMX_DEVICE_PATH)/signed_dp_imx8m.bin $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/.; \
  33 + $(MAKE) -C $(IMX_MKIMAGE_PATH)/imx-mkimage/ SOC=iMX8M flash_dp_spl_uboot 1>/dev/null || exit 1; \
  34 + cp $(IMX_MKIMAGE_PATH)/imx-mkimage/iMX8M/flash.bin $(UBOOT_COLLECTION)/u-boot-$(strip $(2))-dp.imx;
  35 +endef
  36 +
  37 +
imx8m/smarc_mx8mq/BoardConfig.mk
... ... @@ -0,0 +1,146 @@
  1 +#
  2 +# SoC-specific compile-time definitions.
  3 +#
  4 +
  5 +BOARD_SOC_TYPE := IMX8MQ
  6 +BOARD_TYPE := SMARC-IMX8MQ
  7 +BOARD_HAVE_VPU := true
  8 +BOARD_VPU_TYPE := hantro
  9 +HAVE_FSL_IMX_GPU2D := false
  10 +HAVE_FSL_IMX_GPU3D := true
  11 +HAVE_FSL_IMX_IPU := false
  12 +HAVE_FSL_IMX_PXP := false
  13 +BOARD_KERNEL_BASE := 0x40400000
  14 +TARGET_GRALLOC_VERSION := v3
  15 +TARGET_HIGH_PERFORMANCE := true
  16 +TARGET_USES_HWC2 := true
  17 +TARGET_HWCOMPOSER_VERSION := v2.0
  18 +USE_OPENGL_RENDERER := true
  19 +TARGET_HAVE_VULKAN := true
  20 +ENABLE_CFI=false
  21 +
  22 +SOONG_CONFIG_IMXPLUGIN += \
  23 + BOARD_HAVE_VPU \
  24 + BOARD_VPU_TYPE
  25 +
  26 +SOONG_CONFIG_IMXPLUGIN_BOARD_SOC_TYPE = IMX8MQ
  27 +SOONG_CONFIG_IMXPLUGIN_BOARD_HAVE_VPU = true
  28 +SOONG_CONFIG_IMXPLUGIN_BOARD_VPU_TYPE = hantro
  29 +
  30 +#
  31 +# Product-specific compile-time definitions.
  32 +#
  33 +
  34 +IMX_DEVICE_PATH := device/embedian/imx8m/smarc_mx8mq
  35 +
  36 +include device/fsl/imx8m/BoardConfigCommon.mk
  37 +ifeq ($(PREBUILT_FSL_IMX_CODEC),true)
  38 +-include $(FSL_CODEC_PATH)/fsl-codec/fsl-codec.mk
  39 +endif
  40 +
  41 +BUILD_TARGET_FS ?= ext4
  42 +TARGET_USERIMAGES_USE_EXT4 := true
  43 +
  44 +TARGET_RECOVERY_FSTAB = $(IMX_DEVICE_PATH)/fstab.freescale
  45 +
  46 +# Support gpt
  47 +ifeq ($(IMX_NO_PRODUCT_PARTITION),true)
  48 +BOARD_BPT_INPUT_FILES += device/fsl/common/partition/device-partitions-13GB-ab-no-product.bpt
  49 +ADDITION_BPT_PARTITION = partition-table-28GB:device/fsl/common/partition/device-partitions-28GB-ab-no-product.bpt \
  50 + partition-table-dual:device/fsl/common/partition/device-partitions-13GB-ab-dual-bootloader-no-product.bpt \
  51 + partition-table-28GB-dual:device/fsl/common/partition/device-partitions-28GB-ab-dual-bootloader-no-product.bpt
  52 +else
  53 +BOARD_BPT_INPUT_FILES += device/fsl/common/partition/device-partitions-13GB-ab.bpt
  54 +ADDITION_BPT_PARTITION = partition-table-28GB:device/fsl/common/partition/device-partitions-28GB-ab.bpt \
  55 + partition-table-dual:device/fsl/common/partition/device-partitions-13GB-ab-dual-bootloader.bpt \
  56 + partition-table-28GB-dual:device/fsl/common/partition/device-partitions-28GB-ab-dual-bootloader.bpt
  57 +endif
  58 +
  59 +# Vendor Interface manifest and compatibility
  60 +DEVICE_MANIFEST_FILE := $(IMX_DEVICE_PATH)/manifest.xml
  61 +DEVICE_MATRIX_FILE := $(IMX_DEVICE_PATH)/compatibility_matrix.xml
  62 +
  63 +TARGET_BOOTLOADER_BOARD_NAME := SMARC
  64 +
  65 +USE_OPENGL_RENDERER := true
  66 +
  67 +BOARD_WLAN_DEVICE := bcmdhd
  68 +WPA_SUPPLICANT_VERSION := VER_0_8_X
  69 +BOARD_WPA_SUPPLICANT_DRIVER := NL80211
  70 +BOARD_HOSTAPD_DRIVER := NL80211
  71 +BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
  72 +BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
  73 +
  74 +WIFI_DRIVER_FW_PATH_PARAM := "/sys/module/brcmfmac/parameters/alternative_fw_path"
  75 +
  76 +#WIFI_HIDL_FEATURE_DUAL_INTERFACE := true
  77 +
  78 +BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(IMX_DEVICE_PATH)/bluetooth
  79 +
  80 +# BCM 1CX BT
  81 +BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(IMX_DEVICE_PATH)/bluetooth
  82 +BOARD_CUSTOM_BT_CONFIG := $(BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR)/vnd_config.txt
  83 +BOARD_HAVE_BLUETOOTH_BCM := true
  84 +
  85 +BOARD_USE_SENSOR_FUSION := true
  86 +
  87 +# we don't support sparse image.
  88 +TARGET_USERIMAGES_SPARSE_EXT_DISABLED := false
  89 +
  90 +BOARD_HAVE_USB_CAMERA := true
  91 +
  92 +USE_ION_ALLOCATOR := true
  93 +USE_GPU_ALLOCATOR := false
  94 +
  95 +BOARD_AVB_ENABLE := true
  96 +TARGET_USES_MKE2FS := true
  97 +BOARD_AVB_ALGORITHM := SHA256_RSA4096
  98 +# The testkey_rsa4096.pem is copied from external/avb/test/data/testkey_rsa4096.pem
  99 +BOARD_AVB_KEY_PATH := device/fsl/common/security/testkey_rsa4096.pem
  100 +
  101 +# define frame buffer count
  102 +NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
  103 +
  104 +ifeq ($(PRODUCT_IMX_DRM),true)
  105 +CMASIZE=736M
  106 +else
  107 +CMASIZE=1280M
  108 +endif
  109 +
  110 +BOARD_KERNEL_CMDLINE := console=ttymxc0,115200 earlycon=imxuart,0x30860000,115200 init=/init androidboot.gui_resolution=1080p androidboot.console=ttymxc0 androidboot.hardware=freescale androidboot.fbTileSupport=enable cma=$(CMASIZE) androidboot.primary_display=imx-drm firmware_class.path=/vendor/firmware transparent_hugepage=never loop.max_part=7
  111 +
  112 +# Set the density to 213 tvdpi to match CDD.
  113 +BOARD_KERNEL_CMDLINE += androidboot.lcd_density=213
  114 +
  115 +# Default wificountrycode
  116 +BOARD_KERNEL_CMDLINE += androidboot.wificountrycode=CN
  117 +
  118 +ifeq ($(TARGET_USERIMAGES_USE_UBIFS),true)
  119 +ifeq ($(TARGET_USERIMAGES_USE_EXT4),true)
  120 +$(error "TARGET_USERIMAGES_USE_UBIFS and TARGET_USERIMAGES_USE_EXT4 config open in same time, please only choose one target file system image")
  121 +endif
  122 +endif
  123 +
  124 +BOARD_PREBUILT_DTBOIMAGE := out/target/product/smarc_mx8mq/dtbo-smarcimx8mq-hdmi.img
  125 +TARGET_BOARD_DTS_CONFIG := \
  126 + smarcimx8mq-dcss-lvds:fsl-smarcimx8mq-dcss-lvds.dtb \
  127 + smarcimx8mq-dp:fsl-smarcimx8mq-dp.dtb \
  128 + smarcimx8mq:fsl-smarcimx8mq.dtb \
  129 + smarcimx8mq-dual-display:fsl-smarcimx8mq-dual-display.dtb \
  130 + smarcimx8mq-edp:fsl-smarcimx8mq-edp.dtb \
  131 + smarcimx8mq-hdmi:fsl-smarcimx8mq-hdmi.dtb \
  132 + smarcimx8mq-lcdif-lvds:fsl-smarcimx8mq-lcdif-lvds.dtb
  133 +
  134 +BOARD_SEPOLICY_DIRS := \
  135 + device/fsl/imx8m/sepolicy \
  136 + $(IMX_DEVICE_PATH)/sepolicy
  137 +
  138 +ifeq ($(PRODUCT_IMX_DRM),true)
  139 +BOARD_SEPOLICY_DIRS += \
  140 + $(IMX_DEVICE_PATH)/sepolicy_drm
  141 +endif
  142 +
  143 +TARGET_BOARD_KERNEL_HEADERS := device/fsl/common/kernel-headers
  144 +
  145 +ALL_DEFAULT_INSTALLED_MODULES += $(BOARD_VENDOR_KERNEL_MODULES)
  146 +
imx8m/smarc_mx8mq/SharedBoardConfig.mk
... ... @@ -0,0 +1,13 @@
  1 +KERNEL_NAME := Image
  2 +TARGET_KERNEL_ARCH := arm64
  3 +
  4 +#Enable this to include trusty support
  5 +PRODUCT_IMX_TRUSTY := true
  6 +
  7 +#Enable this to disable product partition build.
  8 +#IMX_NO_PRODUCT_PARTITION := true
  9 +
  10 +# BCM fmac wifi driver module
  11 +BOARD_VENDOR_KERNEL_MODULES += \
  12 + $(KERNEL_OUT)/drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil.ko \
  13 + $(KERNEL_OUT)/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko
imx8m/smarc_mx8mq/UbootKernelBoardConfig.mk
... ... @@ -0,0 +1,20 @@
  1 +TARGET_BOOTLOADER_POSTFIX := bin
  2 +UBOOT_POST_PROCESS := true
  3 +
  4 +TARGET_BOOTLOADER_CONFIG := \
  5 + imx8mq-smarcimx8mq_2g:smarcimx8mq_2g_ser3_android_defconfig \
  6 + imx8mq-smarcimx8mq_4g:smarcimx8mq_4g_ser3_android_defconfig \
  7 + imx8mq-smarcimx8mq_2g_uuu:smarcimx8mq_2g_ser3_android_uuu_defconfig \
  8 + imx8mq-smarcimx8mq_4g_uuu:smarcimx8mq_4g_ser3_android_uuu_defconfig
  9 +
  10 +# imx8mq kernel defconfig
  11 +TARGET_KERNEL_DEFCONFIG := smarcimx8m_android_defconfig
  12 +# TARGET_KERNEL_ADDITION_DEFCONF ?= android_addition_defconfig
  13 +
  14 +
  15 +# absolute path is used, not the same as relative path used in AOSP make
  16 +TARGET_DEVICE_DIR := $(patsubst %/, %, $(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
  17 +
  18 +# define bootloader rollback index
  19 +BOOTLOADER_RBINDEX ?= 0
  20 +
imx8m/smarc_mx8mq/app_whitelist.xml
... ... @@ -0,0 +1,36 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
  2 +
  3 +<!--
  4 +/* Copyright (c) 2017, The Linux Foundation. All rights reserved.
  5 + *
  6 + * Redistribution and use in source and binary forms, with or without
  7 + * modification, are permitted provided that the following conditions are
  8 + * met:
  9 + * * Redistributions of source code must retain the above copyright
  10 + * notice, this list of conditions and the following disclaimer.
  11 + * * Redistributions in binary form must reproduce the above
  12 + * copyright notice, this list of conditions and the following
  13 + * disclaimer in the documentation and/or other materials provided
  14 + * with the distribution.
  15 + * * Neither the name of The Linux Foundation nor the names of its
  16 + * contributors may be used to endorse or promote products derived
  17 + * from this software without specific prior written permission.
  18 + *
  19 + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
  20 + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  21 + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
  22 + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
  23 + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  24 + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  25 + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  26 + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  27 + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  28 + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  29 + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  30 + */
  31 +-->
  32 +
  33 +<config>
  34 + <!-- deskclock need to freely run in the background -->
  35 + <allow-in-power-save package="com.android.deskclock" />
  36 +</config>
imx8m/smarc_mx8mq/audio_effects.xml
... ... @@ -0,0 +1,26 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<audio_effects_conf version="2.0" xmlns="http://schemas.android.com/audio/audio_effects_conf/v2_0">
  3 + <libraries>
  4 + <library name="bundle" path="libbundlewrapper.so"/>
  5 + <library name="reverb" path="libreverbwrapper.so"/>
  6 + <library name="visualizer" path="libvisualizer.so"/>
  7 + <library name="downmix" path="libdownmix.so"/>
  8 + <library name="loudness_enhancer" path="libldnhncr.so"/>
  9 + <library name="dynamics_processing" path="libdynproc.so"/>
  10 + </libraries>
  11 +
  12 + <effects>
  13 + <effect name="bassboost" library="bundle" uuid="8631f300-72e2-11df-b57e-0002a5d5c51b"/>
  14 + <effect name="virtualizer" library="bundle" uuid="1d4033c0-8557-11df-9f2d-0002a5d5c51b"/>
  15 + <effect name="equalizer" library="bundle" uuid="ce772f20-847d-11df-bb17-0002a5d5c51b"/>
  16 + <effect name="volume" library="bundle" uuid="119341a0-8469-11df-81f9-0002a5d5c51b"/>
  17 + <effect name="reverb_env_aux" library="reverb" uuid="4a387fc0-8ab3-11df-8bad-0002a5d5c51b"/>
  18 + <effect name="reverb_env_ins" library="reverb" uuid="c7a511a0-a3bb-11df-860e-0002a5d5c51b"/>
  19 + <effect name="reverb_pre_aux" library="reverb" uuid="f29a1400-a3bb-11df-8ddc-0002a5d5c51b"/>
  20 + <effect name="reverb_pre_ins" library="reverb" uuid="172cdf00-a3bc-11df-a72f-0002a5d5c51b"/>
  21 + <effect name="visualizer" library="visualizer" uuid="d069d9e0-8329-11df-9168-0002a5d5c51b"/>
  22 + <effect name="downmix" library="downmix" uuid="93f04452-e4fe-41cc-91f9-e475b6d1d69f"/>
  23 + <effect name="loudness_enhancer" library="loudness_enhancer" uuid="fa415329-2034-4bea-b5dc-5b381c8d1e2c"/>
  24 + <effect name="dynamics_processing" library="dynamics_processing" uuid="e0e6539b-1781-7261-676f-6d7573696340"/>
  25 + </effects>
  26 +</audio_effects_conf>
imx8m/smarc_mx8mq/audio_policy_configuration.xml
... ... @@ -0,0 +1,99 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2 +<!-- Copyright (C) 2017 The Android Open Source Project
  3 +
  4 + Licensed under the Apache License, Version 2.0 (the "License");
  5 + you may not use this file except in compliance with the License.
  6 + You may obtain a copy of the License at
  7 +
  8 + http://www.apache.org/licenses/LICENSE-2.0
  9 +
  10 + Unless required by applicable law or agreed to in writing, software
  11 + distributed under the License is distributed on an "AS IS" BASIS,
  12 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + See the License for the specific language governing permissions and
  14 + limitations under the License.
  15 +-->
  16 +
  17 +<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
  18 + <globalConfiguration speaker_drc_enabled="true"/>
  19 +
  20 + <modules>
  21 + <module name="primary" halVersion="2.0">
  22 + <attachedDevices>
  23 + <item>Speaker</item>
  24 + <item>Built-In Mic</item>
  25 + </attachedDevices>
  26 + <defaultOutputDevice>Speaker</defaultOutputDevice>
  27 + <mixPorts>
  28 + <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY">
  29 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  30 + samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
  31 + </mixPort>
  32 + <mixPort name="hdmi output" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT">
  33 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  34 + samplingRates="32000,44100,48000,88200,96000,176400,192000" channelMasks="AUDIO_CHANNEL_NONE"/>
  35 + </mixPort>
  36 + <mixPort name="esai output" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_HW_AV_SYNC">
  37 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  38 + samplingRates="48000,96000,192000,384000,768000"
  39 + channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
  40 + <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
  41 + samplingRates="48000,96000,192000,384000,768000"
  42 + channelMasks="AUDIO_CHANNEL_OUT_STEREO,AUDIO_CHANNEL_OUT_QUAD,AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
  43 + </mixPort>
  44 + <mixPort name="dsd output" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD">
  45 + <profile name="" format="AUDIO_FORMAT_DSD"
  46 + samplingRates="2822400,5644800,11289600,22579200" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
  47 + </mixPort>
  48 + <mixPort name="primary input" role="sink">
  49 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  50 + samplingRates="8000,11025,16000,22050,24000,32000,44100,48000"
  51 + channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
  52 + </mixPort>
  53 + </mixPorts>
  54 + <devicePorts>
  55 + <devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink" >
  56 + </devicePort>
  57 + <devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
  58 + </devicePort>
  59 + <devicePort tagName="HDMI Out" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
  60 + </devicePort>
  61 + <devicePort tagName="Line-Out" type="AUDIO_DEVICE_OUT_LINE" role="sink">
  62 + </devicePort>
  63 +
  64 + <devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
  65 + </devicePort>
  66 + <devicePort tagName="Line-In" type="AUDIO_DEVICE_IN_AUX_DIGITAL" role="source">
  67 + </devicePort>
  68 + </devicePorts>
  69 + <routes>
  70 + <route type="mix" sink="Speaker"
  71 + sources="primary output"/>
  72 + <route type="mix" sink="Wired Headphones"
  73 + sources="dsd output,esai output,primary output"/>
  74 + <route type="mix" sink="HDMI Out"
  75 + sources="hdmi output,primary output"/>
  76 + <route type="mix" sink="Line-Out"
  77 + sources="dsd output,esai output,primary output"/>
  78 +
  79 + <route type="mix" sink="primary input"
  80 + sources="Built-In Mic,Line-In"/>
  81 + </routes>
  82 + </module>
  83 +
  84 + <!-- A2dp Audio HAL -->
  85 + <xi:include href="a2dp_audio_policy_configuration.xml"/>
  86 +
  87 + <!-- Usb Audio HAL -->
  88 + <xi:include href="usb_audio_policy_configuration.xml"/>
  89 +
  90 + <!-- Remote Submix Audio HAL -->
  91 + <xi:include href="r_submix_audio_policy_configuration.xml"/>
  92 +
  93 + </modules>
  94 +
  95 + <!-- Volume section -->
  96 + <xi:include href="audio_policy_volumes.xml"/>
  97 + <xi:include href="default_volume_tables.xml"/>
  98 +
  99 +</audioPolicyConfiguration>
imx8m/smarc_mx8mq/audio_policy_configuration_drm.xml
... ... @@ -0,0 +1,93 @@
  1 +<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2 +<!-- Copyright (C) 2017 The Android Open Source Project
  3 +
  4 + Licensed under the Apache License, Version 2.0 (the "License");
  5 + you may not use this file except in compliance with the License.
  6 + You may obtain a copy of the License at
  7 +
  8 + http://www.apache.org/licenses/LICENSE-2.0
  9 +
  10 + Unless required by applicable law or agreed to in writing, software
  11 + distributed under the License is distributed on an "AS IS" BASIS,
  12 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + See the License for the specific language governing permissions and
  14 + limitations under the License.
  15 +-->
  16 +
  17 +<audioPolicyConfiguration version="1.0" xmlns:xi="http://www.w3.org/2001/XInclude">
  18 + <globalConfiguration speaker_drc_enabled="true"/>
  19 +
  20 + <modules>
  21 + <module name="primary" halVersion="2.0">
  22 + <attachedDevices>
  23 + <item>HDMI Out</item>
  24 + <item>Built-In Mic</item>
  25 + </attachedDevices>
  26 + <defaultOutputDevice>HDMI Out</defaultOutputDevice>
  27 + <mixPorts>
  28 + <mixPort name="primary output" role="source" flags="AUDIO_OUTPUT_FLAG_PRIMARY">
  29 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  30 + samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
  31 + </mixPort>
  32 + <mixPort name="hdmi output" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT">
  33 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  34 + samplingRates="32000,44100,48000,88200,96000,176400,192000" channelMasks="AUDIO_CHANNEL_NONE"/>
  35 + </mixPort>
  36 + <mixPort name="esai output" role="source" flags="AUDIO_OUTPUT_FLAG_DIRECT">
  37 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  38 + samplingRates="44100" channelMasks="AUDIO_CHANNEL_OUT_5POINT1,AUDIO_CHANNEL_OUT_7POINT1"/>
  39 + </mixPort>
  40 + <mixPort name="primary input" role="sink">
  41 + <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
  42 + samplingRates="8000,11025,16000,22050,24000,32000,44100,48000"
  43 + channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO"/>
  44 + </mixPort>
  45 + </mixPorts>
  46 + <devicePorts>
  47 + <devicePort tagName="Speaker" type="AUDIO_DEVICE_OUT_SPEAKER" role="sink" >
  48 + </devicePort>
  49 + <devicePort tagName="Wired Headset" type="AUDIO_DEVICE_OUT_WIRED_HEADSET" role="sink">
  50 + </devicePort>
  51 + <devicePort tagName="Wired Headphones" type="AUDIO_DEVICE_OUT_WIRED_HEADPHONE" role="sink">
  52 + </devicePort>
  53 + <devicePort tagName="HDMI Out" type="AUDIO_DEVICE_OUT_AUX_DIGITAL" role="sink">
  54 + </devicePort>
  55 +
  56 + <devicePort tagName="Built-In Mic" type="AUDIO_DEVICE_IN_BUILTIN_MIC" role="source">
  57 + </devicePort>
  58 + <devicePort tagName="Wired Headset Mic" type="AUDIO_DEVICE_IN_WIRED_HEADSET" role="source">
  59 + </devicePort>
  60 + <devicePort tagName="Spdif-In" type="AUDIO_DEVICE_IN_AUX_DIGITAL" role="source">
  61 + </devicePort>
  62 + </devicePorts>
  63 + <routes>
  64 + <route type="mix" sink="Speaker"
  65 + sources="esai output,primary output"/>
  66 + <route type="mix" sink="Wired Headset"
  67 + sources="primary output"/>
  68 + <route type="mix" sink="Wired Headphones"
  69 + sources="primary output"/>
  70 + <route type="mix" sink="HDMI Out"
  71 + sources="hdmi output,primary output"/>
  72 +
  73 + <route type="mix" sink="primary input"
  74 + sources="Built-In Mic,Wired Headset Mic,Spdif-In"/>
  75 + </routes>
  76 + </module>
  77 +
  78 + <!-- A2dp Audio HAL -->
  79 + <xi:include href="a2dp_audio_policy_configuration.xml"/>
  80 +
  81 + <!-- Usb Audio HAL -->
  82 + <xi:include href="usb_audio_policy_configuration.xml"/>
  83 +
  84 + <!-- Remote Submix Audio HAL -->
  85 + <xi:include href="r_submix_audio_policy_configuration.xml"/>
  86 +
  87 + </modules>
  88 +
  89 + <!-- Volume section -->
  90 + <xi:include href="audio_policy_volumes.xml"/>
  91 + <xi:include href="default_volume_tables.xml"/>
  92 +
  93 +</audioPolicyConfiguration>
imx8m/smarc_mx8mq/bluetooth/bdroid_buildcfg.h
... ... @@ -0,0 +1,37 @@
  1 +/*
  2 + * Copyright (C) 2012 The Android Open Source Project
  3 + * Copyright (C) 2020 Variscite Ltd
  4 + *
  5 + * Licensed under the Apache License, Version 2.0 (the "License");
  6 + * you may not use this file except in compliance with the License.
  7 + * You may obtain a copy of the License at
  8 + *
  9 + * http://www.apache.org/licenses/LICENSE-2.0
  10 + *
  11 + * Unless required by applicable law or agreed to in writing, software
  12 + * distributed under the License is distributed on an "AS IS" BASIS,
  13 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14 + * See the License for the specific language governing permissions and
  15 + * limitations under the License.
  16 + */
  17 +
  18 +#ifndef _BDROID_BUILDCFG_H
  19 +#define _BDROID_BUILDCFG_H
  20 +
  21 +#define BTM_DEF_LOCAL_NAME "SMARC-MX8M"
  22 +
  23 +// Wide-band speech support
  24 +#define BTM_WBS_INCLUDED TRUE
  25 +#define BTIF_HF_WBS_PREFERRED TRUE
  26 +
  27 +// Disables Interleave scan
  28 +#define BTA_HOST_INTERLEAVE_SEARCH FALSE
  29 +// skips conn update at conn completion
  30 +#define BTA_BLE_SKIP_CONN_UPD TRUE
  31 +// Disables read remote device feature
  32 +#define BTA_SKIP_BLE_READ_REMOTE_FEAT TRUE
  33 +
  34 +//Enable A2DPSink AVRCPController
  35 +#define BTA_AV_SINK_INCLUDED TRUE
  36 +
  37 +#endif
imx8m/smarc_mx8mq/bluetooth/bt_vendor.conf
... ... @@ -0,0 +1,2 @@
  1 +# UART device port where Bluetooth controller is attached
  2 +UartPort = /dev/ttymxc2
imx8m/smarc_mx8mq/bluetooth/vnd_config.txt
... ... @@ -0,0 +1,10 @@
  1 +BLUETOOTH_UART_DEVICE_PORT = "/dev/ttymxc2"
  2 +FW_PATCHFILE_LOCATION = "/vendor/firmware/"
  3 +LPM_IDLE_TIMEOUT_MULTIPLE = 5
  4 +SCO_USE_I2S_INTERFACE = FALSE
  5 +BTVND_DBG = TRUE
  6 +BTHW_DBG = TRUE
  7 +VNDUSERIAL_DBG = TRUE
  8 +UPIO_DBG = TRUE
  9 +LPM_SLEEP_MODE = 0
  10 +UART_TARGET_BAUD_RATE = 3000000
imx8m/smarc_mx8mq/camera_config_imx8mq.json
... ... @@ -0,0 +1,56 @@
  1 +{
  2 + "__readme": [
  3 + "Basic Camera HAL v3 configuration."
  4 + ],
  5 +
  6 + "hal_version": "3",
  7 + "cam_blit_copy": "GPU_3D",
  8 + "cam_blit_csc": "GPU_3D",
  9 +
  10 + "camera_metadata": [
  11 + {
  12 + "camera_type": "back",
  13 + "camera_name": "mx6s-csi",
  14 + "orientation": "0",
  15 + "buffer_type": "mmap",
  16 + "ActiveArrayWidth": "2592",
  17 + "ActiveArrayHeight": "1944",
  18 + "PixelArrayWidth": "2592",
  19 + "PixelArrayHeight": "1944",
  20 + "PhysicalWidth": "3.6288",
  21 + "PhysicalHeight": "2.7216",
  22 + "FocalLength": "3.37",
  23 + "MaxJpegSize": "8388608",
  24 + "MinFrameDuration": "33331760",
  25 + "MaxFrameDuration": "300000000",
  26 + "OmitFrame": [
  27 + {
  28 + "width": "2592",
  29 + "height": "1944",
  30 + "omit_num": "3"
  31 + },
  32 + {
  33 + "width": "1920",
  34 + "height": "1080",
  35 + "omit_num": "2"
  36 + }
  37 + ]
  38 + },
  39 + {
  40 + "camera_type": "front",
  41 + "camera_name": "uvc",
  42 + "orientation": "0",
  43 + "buffer_type": "dma",
  44 + "ActiveArrayWidth": "1920",
  45 + "ActiveArrayHeight": "1080",
  46 + "PixelArrayWidth": "1920",
  47 + "PixelArrayHeight": "1080",
  48 + "PhysicalWidth": "2.688",
  49 + "PhysicalHeight": "1.512",
  50 + "FocalLength": "3.42",
  51 + "MaxJpegSize": "4194304",
  52 + "MinFrameDuration": "33331760",
  53 + "MaxFrameDuration": "300000000"
  54 + }
  55 + ]
  56 +}
imx8m/smarc_mx8mq/compatibility_matrix.xml
... ... @@ -0,0 +1,62 @@
  1 +<compatibility-matrix version="1.0" type="device">
  2 + <hal format="hidl" optional="false">
  3 + <name>android.frameworks.schedulerservice</name>
  4 + <version>1.0</version>
  5 + <interface>
  6 + <name>ISchedulingPolicyService</name>
  7 + <instance>default</instance>
  8 + </interface>
  9 + </hal>
  10 + <hal format="hidl" optional="false">
  11 + <name>android.frameworks.sensorservice</name>
  12 + <version>1.0</version>
  13 + <interface>
  14 + <name>ISensorManager</name>
  15 + <instance>default</instance>
  16 + </interface>
  17 + </hal>
  18 + <hal format="hidl" optional="false">
  19 + <name>android.hidl.allocator</name>
  20 + <version>1.0</version>
  21 + <interface>
  22 + <name>IAllocator</name>
  23 + <instance>ashmem</instance>
  24 + </interface>
  25 + </hal>
  26 + <hal format="hidl" optional="false">
  27 + <name>android.hidl.manager</name>
  28 + <version>1.0</version>
  29 + <interface>
  30 + <name>IServiceManager</name>
  31 + <instance>default</instance>
  32 + </interface>
  33 + </hal>
  34 + <hal format="hidl" optional="false">
  35 + <name>android.hidl.memory</name>
  36 + <version>1.0</version>
  37 + <interface>
  38 + <name>IMapper</name>
  39 + <instance>ashmem</instance>
  40 + </interface>
  41 + </hal>
  42 + <hal format="hidl" optional="false">
  43 + <name>android.hidl.token</name>
  44 + <version>1.0</version>
  45 + <interface>
  46 + <name>ITokenManager</name>
  47 + <instance>default</instance>
  48 + </interface>
  49 + </hal>
  50 + <hal format="hidl" optional="false">
  51 + <name>android.system.wifi.keystore</name>
  52 + <version>1.0</version>
  53 + <interface>
  54 + <name>IKeystore</name>
  55 + <instance>default</instance>
  56 + </interface>
  57 + </hal>
  58 + <hal format="native" optional="false">
  59 + <name>netutils-wrapper</name>
  60 + <version>1.0</version>
  61 + </hal>
  62 +</compatibility-matrix>
imx8m/smarc_mx8mq/early.init.cfg
... ... @@ -0,0 +1,3 @@
  1 +insmod vendor/lib/modules/brcmutil.ko
  2 +insmod vendor/lib/modules/brcmfmac.ko
  3 +insmod vendor/lib/modules/wlan.ko
imx8m/smarc_mx8mq/fstab.freescale
... ... @@ -0,0 +1,16 @@
  1 +# Android fstab file.
  2 +#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
  3 +# The filesystem that contains the filesystem checker binary (typically /system) cannot
  4 +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
  5 +
  6 +/devices/platform/usb@38100000/38100000.dwc3/* auto auto defaults voldmanaged=usb:auto
  7 +/devices/platform/usb@38200000/38200000.dwc3/* auto auto defaults voldmanaged=usb:auto
  8 +
  9 +/devices/platform/38200000.usb/xhci-hcd.0.auto/* auto auto defaults voldmanaged=usb:auto
  10 +/devices/platform/38100000.usb/xhci-hcd.1.auto/* auto auto defaults voldmanaged=usb:auto
  11 +
  12 +/dev/block/by-name/system / ext4 ro,barrier=1 wait,slotselect
  13 +/dev/block/by-name/userdata /data ext4 nosuid,nodev,nodiratime,noatime,nomblk_io_submit,noauto_da_alloc,errors=panic wait,formattable,quota,fileencryption=software,reservedsize=128M
  14 +/dev/block/by-name/misc /misc emmc defaults defaults
  15 +/dev/block/zram0 none swap defaults zramsize=629145600
  16 +
imx8m/smarc_mx8mq/init.imx8mq.drm.rc
... ... @@ -0,0 +1,20 @@
  1 +import /vendor/etc/init/hw/init.${ro.hardware}.${ro.boot.soc_type}.main.rc
  2 +
  3 +on property:init.svc.mediadrm=running
  4 + mkdir /data/vendor/mediadrm 0770 media mediadrm
  5 +
  6 +on post-fs-data
  7 + # create for OP-TEE test
  8 + mkdir /data/vendor/tee 0660 media media
  9 + mkdir /data/vendor/tee/optee_armtz 0660 media media
  10 + restorecon_recursive /data/vendor/tee
  11 +
  12 +
  13 +on boot
  14 + # optee device
  15 + chmod 0660 /dev/tee0
  16 + chown media media /dev/tee0
  17 +
  18 + chmod 0660 /dev/teepriv0
  19 + chown media media /dev/teepriv0
  20 +
imx8m/smarc_mx8mq/init.imx8mq.rc
... ... @@ -0,0 +1,41 @@
  1 +on early-boot
  2 +
  3 + # Set OpenGLES version
  4 + setprop ro.opengles.version 196609
  5 +
  6 + # Set GPU 3D minimum clock to 3/64
  7 + write /sys/bus/platform/drivers/galcore/gpu3DMinClock 3
  8 +
  9 + # change for FSL specific service
  10 + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  11 + chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
  12 + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  13 + chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
  14 + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  15 + chmod 0664 /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
  16 + chown root system /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
  17 + chmod 0440 /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
  18 + chown root system /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
  19 +
  20 +on property:sys.boot_completed=1
  21 + # Set default CPU frequency governor
  22 + # configure governor settings for little cluster
  23 + write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor "schedutil"
  24 + write /sys/devices/system/cpu/cpufreq/schedutil/up_rate_limit_us 500
  25 + write /sys/devices/system/cpu/cpufreq/schedutil/down_rate_limit_us 2000
  26 +
  27 +on property:sys.boot_completed=1
  28 + # update cpuset now that processors are up
  29 + write /dev/cpuset/foreground/cpus 0-3
  30 +
  31 + # top-app gets all cpus
  32 + write /dev/cpuset/top-app/cpus 0-3
  33 +
  34 + #background contains a small subset (generally one little core)
  35 + write /dev/cpuset/background/cpus 0
  36 +
  37 + # add system-background cpuset, a new cpuset for system services
  38 + # that should not run on larger cores
  39 + # system-background is for system tasks that should only run on
  40 + # little cores, not on bigs to be used only by init
  41 + write /dev/cpuset/system-background/cpus 0-2
imx8m/smarc_mx8mq/init.rc
... ... @@ -0,0 +1,285 @@
  1 +import /vendor/etc/init/hw/init.${ro.hardware}.usb.rc
  2 +import /vendor/etc/init/hw/init.${ro.hardware}.${ro.boot.soc_type}.rc
  3 +
  4 +on early-init
  5 + # mount the debugfs
  6 + mount debugfs none /sys/kernel/debug/ mode=0755
  7 +
  8 +on early-init
  9 + start early_init_sh
  10 +
  11 + # Due keymaster start very early so set prop here
  12 + # Also gatekeeper share same role for keymaster
  13 + setprop ro.hardware.keystore ${ro.boot.keystore}
  14 + setprop ro.hardware.gatekeeper ${ro.boot.keystore}
  15 + setprop vendor.storageproxyd ${ro.boot.keystore}
  16 +
  17 +on init
  18 + start watchdogd
  19 +
  20 + # Support legacy paths
  21 + symlink /sdcard /mnt/sdcard
  22 + symlink /sdcard /storage/sdcard0
  23 +
  24 + # setup the global environment
  25 + export CORE_REGISTER_FILE /vendor/etc/core_register
  26 + export COMPONENT_REGISTER_FILE /vendor/etc/component_register
  27 + export CONTENTPIPE_REGISTER_FILE /vendor/etc/contentpipe_register
  28 +
  29 + # disable cursor blink for fbcon, if no splash screen support
  30 + write /sys/class/graphics/fbcon/cursor_blink 0
  31 +
  32 + # deattch the fbcon as hdmi hotplug conflict with fbcon
  33 + write /sys/class/vtconsole/vtcon1/bind 0
  34 +
  35 + chown system system /dev/stune/top-app/schedtune.boost
  36 + chmod 664 /dev/stune/top-app/schedtune.boost
  37 + chown system system /dev/stune/top-app/schedtune.prefer_idle
  38 + chmod 664 /dev/stune/top-app/schedtune.prefer_idle
  39 + chown system system /dev/stune/foreground/schedtune.boost
  40 + chmod 664 /dev/stune/foreground/schedtune.boost
  41 + chown system system /dev/stune/foreground/schedtune.prefer_idle
  42 + chmod 664 /dev/stune/foreground/schedtune.prefer_idle
  43 + chown system system /dev/stune/schedtune.boost
  44 + chmod 664 /dev/stune/schedtune.boost
  45 +
  46 + # set default schedTune value for foreground/top-app (only affects EAS)
  47 + write /dev/stune/foreground/schedtune.boost 10
  48 + write /dev/stune/foreground/schedtune.prefer_idle 1
  49 + write /dev/stune/top-app/schedtune.boost 40
  50 + write /dev/stune/top-app/schedtune.prefer_idle 1
  51 + write /dev/stune/rt/schedtune.boost 50
  52 + write /dev/stune/rt/schedtune.prefer_idle 1
  53 +
  54 + # force USB2514 autosuspend
  55 + write /sys/devices/platform/usb@38200000/38200000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.5/power/control auto
  56 +
  57 +on late-fs
  58 + # Start keymaster service
  59 + start vendor.keymaster-3-0-${ro.boot.keystore}
  60 + setprop vendor.powerhal.init 1
  61 +
  62 +on late-fs && property:vendor.storageproxyd=trusty
  63 + start vendor.oemlock-1-0
  64 +
  65 +on early-boot
  66 + # For evk_8mq, when swap used about 400M, upgrade the level.
  67 + setprop ro.lmk.upgrade_pressure 87
  68 + setprop ro.lmk.downgrade_pressure 95
  69 + setprop ro.lmk.critical_upgrade true
  70 +
  71 + # Set the host name which used in console
  72 + export HOSTNAME smarc-imx8mq
  73 +
  74 + # Set permission for IIM node
  75 + symlink /dev/mxs_viim /dev/mxc_mem
  76 +
  77 + # Enable Tethering in the Settings
  78 + setprop ro.tether.denied false
  79 +
  80 + setprop sys.hwc.disable 1
  81 + setprop vendor.2d.composition 0
  82 + setprop hwc.stretch.filter 1
  83 +
  84 + #viv sdk dir
  85 + setprop VIVANTE_SDK_DIR /vendor/etc/viv_sdk
  86 +
  87 + # fsl omx graphic manager media framework property
  88 + setprop rw.VIDEO_RENDER_NAME video_render.surface
  89 + setprop media.fsl_codec.flag 7
  90 + setprop debug.stagefright.ccodec 0
  91 +
  92 + setprop camera.disable_zsl_mode 1
  93 +
  94 + # Tweak the mmc device read ahead buffer size
  95 + write /sys/block/mmcblk0/queue/read_ahead_kb 2048
  96 + write /sys/block/mmcblk1/queue/read_ahead_kb 2048
  97 +
  98 + # Set period_us for usb audio
  99 + setprop ro.audio.usb.period_us 20000
  100 +
  101 + # Prepare for wifi
  102 + setprop wifi.interface wlan0
  103 +
  104 + setprop persist.service.bdroid.bdaddr 22:22:67:C6:69:73
  105 +
  106 + # Prepare for bluetooth
  107 + chmod 665 /sys/class/rfkill/rfkill0/state
  108 + chown bluetooth bluetooth /sys/class/rfkill/rfkill0/state
  109 + write /sys/class/rfkill/rfkill0/state 0
  110 +
  111 + # Prepare for RIL
  112 + setprop ro.ril.wake_lock_timeout 300
  113 +
  114 + # Use ro.boot.lcd_density to override ro.sf.lcd_density
  115 + setprop ro.sf.lcd_density ${ro.boot.lcd_density}
  116 +
  117 + # Disable surfaceflinger back pressure propagate
  118 + setprop debug.sf.disable_backpressure 1
  119 +
  120 + # Set tracefs permission to 755
  121 + chmod 0755 /sys/kernel/debug/tracing
  122 +
  123 + # Set sw_sync group to graphics and set permission to 664
  124 + chown root graphics /sys/kernel/debug/sync/sw_sync
  125 + chmod 0664 /sys/kernel/debug/sync/sw_sync
  126 +
  127 + # Default backlight device
  128 + setprop hw.backlight.dev "backlight"
  129 + # Chmod/chown FSL specific sys entry
  130 + chown system system /sys/class/backlight/backlight/brightness
  131 + chmod 0660 /sys/class/backlight/backlight/brightness
  132 +
  133 + # Set light sensor sysfs path and light sensor threshold lux value
  134 + setprop ro.hardware.lightsensor "/sys/class/i2c-dev/i2c-0/device/0-0044/"
  135 + setprop ro.lightsensor.threshold 20
  136 +
  137 + # Dectect DSF streams when scanning media
  138 + setprop ro.FSL_DSF_PARSER 1
  139 +
  140 + # Allow DSD file(duration larger than 10s) can play
  141 + setprop audio.offload.min.duration.secs 10
  142 +
  143 + # Enlarge limition of audio buffer allocation
  144 + setprop ro.af.client_heap_size_kbyte 32768
  145 +
  146 + # enlarge media max memory size to 3G.
  147 + setprop ro.media.maxmem 3221225471
  148 +
  149 + setprop wlan.interface wlan0
  150 + start vendor.wifi_hal_legacy
  151 +
  152 +on boot
  153 + start audioserver
  154 + start mediadrm
  155 + start media
  156 + start drm
  157 +
  158 +service wpa_supplicant /vendor/bin/hw/wpa_supplicant \
  159 + -O/data/vendor/wifi/wpa/sockets -puse_p2p_group_interface=1 \
  160 + -g@android:wpa_wlan0
  161 + interface android.hardware.wifi.supplicant@1.0::ISupplicant default
  162 + interface android.hardware.wifi.supplicant@1.1::ISupplicant default
  163 + interface android.hardware.wifi.supplicant@1.2::ISupplicant default
  164 + class main
  165 + socket wpa_wlan0 dgram 660 wifi wifi
  166 + disabled
  167 + oneshot
  168 +
  169 +service sensor_fusion /vendor/bin/fsl_sensor_fusion
  170 + class late_start
  171 + seclabel u:r:sensors:s0
  172 + user system
  173 + group input
  174 + oneshot
  175 +
  176 +# Set watchdog timer to 30 seconds and pet it every 10 seconds to get a 20 second margin
  177 +service watchdogd /sbin/watchdogd 10 20
  178 + class core
  179 + seclabel u:r:watchdogd:s0
  180 +
  181 +service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL
  182 + class main
  183 + disabled
  184 + oneshot
  185 +
  186 +service dhcpcd_p2p /system/bin/dhcpcd -aABKL
  187 + class main
  188 + disabled
  189 + oneshot
  190 +
  191 +service dhcpcd_eth0 /system/bin/dhcpcd -ABKL eth0
  192 + class main
  193 + disabled
  194 + oneshot
  195 +
  196 +service dhcpcd_bt-pan /system/bin/dhcpcd -ABKL
  197 + class main
  198 + disabled
  199 + oneshot
  200 +
  201 +service iprenew_wlan0 /system/bin/dhcpcd -n
  202 + class main
  203 + disabled
  204 + oneshot
  205 +
  206 +service iprenew_p2p /system/bin/dhcpcd -n
  207 + class main
  208 + disabled
  209 + oneshot
  210 +
  211 +service iprenew_eth0 /system/bin/dhcpcd -n eth0
  212 + class main
  213 + disabled
  214 + oneshot
  215 +
  216 +service iprenew_bt-pan /system/bin/dhcpcd -n
  217 + class main
  218 + disabled
  219 + oneshot
  220 +
  221 +# bugreport is triggered by holding down volume down, volume up and power
  222 +service bugreport /system/bin/dumpstate -d -p -B -z \
  223 + -o /data/user_de/0/com.android.shell/files/bugreports/bugreport
  224 + class main
  225 + disabled
  226 + oneshot
  227 + keycodes 114 115 116
  228 +
  229 +on fs
  230 +# mount ext4 partitions
  231 + mount_all /vendor/etc/fstab.freescale
  232 +
  233 + # Adjust parameters for dm-verity device
  234 + write /sys/block/dm-0/queue/read_ahead_kb 4096
  235 +
  236 + # Update dm-verity state and set partition.*.verified properties
  237 + verity_update_state
  238 +
  239 +on verity-logging
  240 + exec u:r:slideshow:s0 -- /sbin/slideshow warning/verity_red_1 warning/verity_red_2
  241 +
  242 +on post-fs
  243 + # Set netd memlock rlimit to 8MB
  244 + setrlimit 8 8388608 8388608
  245 +
  246 + # Turn on swap
  247 + swapon_all /vendor/etc/fstab.freescale
  248 +
  249 + # Swap in only 1 page at a time
  250 + write /proc/sys/vm/page-cluster 0
  251 +
  252 +on post-fs-data
  253 + setprop vold.post_fs_data_done 1
  254 + # create temp node for secure storage proxy
  255 + mkdir /data/vendor/ss 0700 system system
  256 +
  257 + # tmp dir for opencl Compiler
  258 + setprop TMPDIR /data/vendor/.opencl-cache
  259 + mkdir /data/vendor/.opencl-cache 0771 camera camera
  260 +
  261 +on zygote-start
  262 + # Create the directories used by the Wireless subsystem
  263 + mkdir /data/misc/wifi 0770 wifi wifi
  264 + mkdir /data/misc/wifi/wpa_supplicant 0770 wifi wifi
  265 + mkdir /data/vendor/wifi 0771 wifi wifi
  266 + mkdir /data/vendor/wifi/wpa 0770 wifi wifi
  267 + mkdir /data/vendor/wifi/wpa/sockets 0770 wifi wifi
  268 + mkdir /data/misc/dhcp 0770 dhcp dhcp
  269 + chown dhcp dhcp /data/misc/dhcp
  270 +
  271 +service early_init_sh /vendor/bin/init.insmod.sh /vendor/etc/early.init.cfg sys.all.early_init.ready
  272 + class main
  273 + user root
  274 + group root system
  275 + disabled
  276 + oneshot
  277 +
  278 +on property:sys.boot_completed=1 && property:vendor.storageproxyd=trusty
  279 + start storageproxyd
  280 +
  281 +service storageproxyd /vendor/bin/storageproxyd -p /data/vendor/ss -r /dev/mmcblk0rpmb -d /dev/trusty-ipc-dev0
  282 + group system
  283 +
  284 +on property:ro.boot.vendor.sysrq=1
  285 + write /proc/sys/kernel/sysrq 1
imx8m/smarc_mx8mq/init.usb.rc
... ... @@ -0,0 +1,52 @@
  1 +#
  2 +# Copyright (C) 2016 The Android Open-Source Project
  3 +# Copyright 2018 NXP
  4 +# Licensed under the Apache License, Version 2.0 (the "License");
  5 +# you may not use this file except in compliance with the License.
  6 +# You may obtain a copy of the License at
  7 +#
  8 +# http://www.apache.org/licenses/LICENSE-2.0
  9 +#
  10 +# Unless required by applicable law or agreed to in writing, software
  11 +# distributed under the License is distributed on an "AS IS" BASIS,
  12 +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 +# See the License for the specific language governing permissions and
  14 +# limitations under the License.
  15 +#
  16 +
  17 +on early-boot
  18 + mount configfs none /config
  19 + mkdir /config/usb_gadget/g1 0770
  20 + mkdir /config/usb_gadget/g1/strings/0x409 0770
  21 + write /config/usb_gadget/g1/bcdUSB 0x0200
  22 + write /config/usb_gadget/g1/idVendor 0x18d1
  23 + write /config/usb_gadget/g1/bcdDevice 0x0440
  24 + write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
  25 + write /config/usb_gadget/g1/strings/0x409/manufacturer ${ro.product.manufacturer}
  26 + write /config/usb_gadget/g1/strings/0x409/product ${ro.product.model}
  27 + mkdir /config/usb_gadget/g1/functions/mass_storage.0
  28 + mkdir /config/usb_gadget/g1/functions/accessory.gs2
  29 + mkdir /config/usb_gadget/g1/functions/audio_source.gs3
  30 + mkdir /config/usb_gadget/g1/functions/rndis.gs4
  31 + mkdir /config/usb_gadget/g1/functions/midi.gs5
  32 + mkdir /config/usb_gadget/g1/functions/ffs.adb
  33 + mkdir /config/usb_gadget/g1/functions/ffs.mtp
  34 + mkdir /config/usb_gadget/g1/functions/ffs.ptp
  35 + mkdir /config/usb_gadget/g1/configs/b.1 0770
  36 + mkdir /config/usb_gadget/g1/configs/b.1/strings/0x409 0770
  37 + write /config/usb_gadget/g1/os_desc/b_vendor_code 0x1
  38 + write /config/usb_gadget/g1/os_desc/qw_sign "MSFT100"
  39 + mkdir /dev/usb-ffs 0775 shell shell
  40 + mkdir /dev/usb-ffs/adb 0770 shell shell
  41 + mount functionfs adb /dev/usb-ffs/adb rmode=0770,fmode=0660,uid=2000,gid=2000
  42 + mkdir /dev/usb-ffs/mtp 0770 mtp mtp
  43 + mkdir /dev/usb-ffs/ptp 0770 mtp mtp
  44 + mount functionfs mtp /dev/usb-ffs/mtp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
  45 + mount functionfs ptp /dev/usb-ffs/ptp rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1
  46 + setprop sys.usb.mtp.device_type 3
  47 + setprop vendor.usb.config "38100000.usb"
  48 + write /sys/module/libcomposite/parameters/disable_l1_for_hs "y"
  49 + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1
  50 +
  51 +on boot
  52 + setprop sys.usb.configfs 2
imx8m/smarc_mx8mq/input-port-associations.xml
... ... @@ -0,0 +1,22 @@
  1 +<!-- Use below commands to get display port number:
  2 +# dumpsys SurfaceFlinger - -display-id
  3 +Display 4692921138614785 (HWC display 1): port=1 pnpId=DEL displayName="DELL S2740L"
  4 +Display 4693505326422272 (HWC display 0): port=0 pnpId=DEL displayName="DELL P2314T"
  5 +
  6 +Use below commands to get touch input location:
  7 +# getevent -i | grep location
  8 +location: "usb-xhci-hcd.0.auto-1.1.4/input0"
  9 +location: "usb-xhci-hcd.0.auto-1.2.4/input0"
  10 +
  11 +Then bind the display port and input location with below table. This table need
  12 +to modify according to actual connection.
  13 +One display can link with multi-input.
  14 +-->
  15 +<ports>
  16 + <port display="0" input="usb-xhci-hcd.1.auto-1.1.4/input0" />
  17 + <port display="1" input="usb-xhci-hcd.1.auto-1.2.4/input0" />
  18 + <port display="0" input="usb-xhci-hcd.0.auto-1.1.4/input0" />
  19 + <port display="1" input="usb-xhci-hcd.0.auto-1.2.4/input0" />
  20 + <port display="0" input="usb-xhci-hcd.0.auto-1.4/input0" />
  21 + <port display="1" input="usb-xhci-hcd.1.auto-1.4/input0" />
  22 +</ports>
imx8m/smarc_mx8mq/manifest.xml
... ... @@ -0,0 +1,249 @@
  1 +<manifest version="1.0" type="device" target-level="4">
  2 + <hal format="hidl">
  3 + <name>android.hardware.graphics.allocator</name>
  4 + <transport>hwbinder</transport>
  5 + <impl level="generic"></impl>
  6 + <version>2.0</version>
  7 + <interface>
  8 + <name>IAllocator</name>
  9 + <instance>default</instance>
  10 + </interface>
  11 + </hal>
  12 + <hal format="hidl">
  13 + <name>android.hardware.graphics.composer</name>
  14 + <transport>hwbinder</transport>
  15 + <version>2.3</version>
  16 + <interface>
  17 + <name>IComposer</name>
  18 + <instance>default</instance>
  19 + </interface>
  20 + </hal>
  21 + <hal format="hidl">
  22 + <name>android.hardware.keymaster</name>
  23 + <transport>hwbinder</transport>
  24 + <version>3.0</version>
  25 + <interface>
  26 + <name>IKeymasterDevice</name>
  27 + <instance>default</instance>
  28 + </interface>
  29 + </hal>
  30 + <hal format="hidl">
  31 + <name>android.hardware.drm</name>
  32 + <transport>hwbinder</transport>
  33 + <version>1.0</version>
  34 + <interface>
  35 + <name>ICryptoFactory</name>
  36 + <instance>default</instance>
  37 + </interface>
  38 + <interface>
  39 + <name>IDrmFactory</name>
  40 + <instance>default</instance>
  41 + </interface>
  42 + <fqname>@1.2::ICryptoFactory/clearkey</fqname>
  43 + <fqname>@1.2::IDrmFactory/clearkey</fqname>
  44 + </hal>
  45 + <hal format="hidl">
  46 + <name>android.hardware.gatekeeper</name>
  47 + <transport>hwbinder</transport>
  48 + <version>1.0</version>
  49 + <interface>
  50 + <name>IGatekeeper</name>
  51 + <instance>default</instance>
  52 + </interface>
  53 + </hal>
  54 + <hal format="hidl">
  55 + <name>android.hardware.graphics.mapper</name>
  56 + <transport arch="32+64">passthrough</transport>
  57 + <impl level="generic"></impl>
  58 + <version>2.1</version>
  59 + <interface>
  60 + <name>IMapper</name>
  61 + <instance>default</instance>
  62 + </interface>
  63 + </hal>
  64 + <hal format="hidl">
  65 + <name>android.hardware.renderscript</name>
  66 + <transport arch="32+64">passthrough</transport>
  67 + <version>1.0</version>
  68 + <interface>
  69 + <name>IDevice</name>
  70 + <instance>default</instance>
  71 + </interface>
  72 + </hal>
  73 + <hal format="hidl">
  74 + <name>android.hardware.configstore</name>
  75 + <transport>hwbinder</transport>
  76 + <version>1.1</version>
  77 + <interface>
  78 + <name>ISurfaceFlingerConfigs</name>
  79 + <instance>default</instance>
  80 + </interface>
  81 + </hal>
  82 + <hal format="hidl">
  83 + <name>android.hardware.media.omx</name>
  84 + <transport>hwbinder</transport>
  85 + <version>1.0</version>
  86 + <interface>
  87 + <name>IOmx</name>
  88 + <instance>default</instance>
  89 + </interface>
  90 + <interface>
  91 + <name>IOmxStore</name>
  92 + <instance>default</instance>
  93 + </interface>
  94 + </hal>
  95 + <hal format="hidl">
  96 + <name>android.hardware.wifi</name>
  97 + <transport>hwbinder</transport>
  98 + <version>1.3</version>
  99 + <interface>
  100 + <name>IWifi</name>
  101 + <instance>default</instance>
  102 + </interface>
  103 + </hal>
  104 + <hal format="hidl">
  105 + <name>android.hardware.wifi.supplicant</name>
  106 + <transport>hwbinder</transport>
  107 + <version>1.2</version>
  108 + <interface>
  109 + <name>ISupplicant</name>
  110 + <instance>default</instance>
  111 + </interface>
  112 + </hal>
  113 + <hal format="hidl">
  114 + <name>android.hardware.wifi.hostapd</name>
  115 + <transport>hwbinder</transport>
  116 + <version>1.1</version>
  117 + <interface>
  118 + <name>IHostapd</name>
  119 + <instance>default</instance>
  120 + </interface>
  121 + </hal>
  122 + <hal format="hidl">
  123 + <name>android.hardware.camera.provider</name>
  124 + <transport>hwbinder</transport>
  125 + <impl level="generic"></impl>
  126 + <version>2.4</version>
  127 + <interface>
  128 + <name>ICameraProvider</name>
  129 + <instance>legacy/0</instance>
  130 + </interface>
  131 + </hal>
  132 + <hal format="hidl">
  133 + <name>android.hardware.light</name>
  134 + <transport>hwbinder</transport>
  135 + <version>2.0</version>
  136 + <interface>
  137 + <name>ILight</name>
  138 + <instance>default</instance>
  139 + </interface>
  140 + </hal>
  141 + <hal format="hidl">
  142 + <name>android.hardware.memtrack</name>
  143 + <transport>hwbinder</transport>
  144 + <version>1.0</version>
  145 + <interface>
  146 + <name>IMemtrack</name>
  147 + <instance>default</instance>
  148 + </interface>
  149 + </hal>
  150 + <hal format="hidl">
  151 + <name>android.hardware.audio</name>
  152 + <transport>hwbinder</transport>
  153 + <version>5.0</version>
  154 + <interface>
  155 + <name>IDevicesFactory</name>
  156 + <instance>default</instance>
  157 + </interface>
  158 + </hal>
  159 + <hal format="hidl">
  160 + <name>android.hardware.audio.effect</name>
  161 + <transport>hwbinder</transport>
  162 + <version>5.0</version>
  163 + <interface>
  164 + <name>IEffectsFactory</name>
  165 + <instance>default</instance>
  166 + </interface>
  167 + </hal>
  168 + <hal format="hidl">
  169 + <name>android.hardware.usb</name>
  170 + <transport>hwbinder</transport>
  171 + <version>1.1</version>
  172 + <interface>
  173 + <name>IUsb</name>
  174 + <instance>default</instance>
  175 + </interface>
  176 + </hal>
  177 + <hal format="hidl">
  178 + <name>android.hardware.usb.gadget</name>
  179 + <transport>hwbinder</transport>
  180 + <version>1.0</version>
  181 + <interface>
  182 + <name>IUsbGadget</name>
  183 + <instance>default</instance>
  184 + </interface>
  185 + </hal>
  186 + <hal format="hidl">
  187 + <name>android.hardware.bluetooth</name>
  188 + <transport>hwbinder</transport>
  189 + <version>1.0</version>
  190 + <interface>
  191 + <name>IBluetoothHci</name>
  192 + <instance>default</instance>
  193 + </interface>
  194 + </hal>
  195 + <hal format="hidl">
  196 + <name>android.hardware.boot</name>
  197 + <transport>hwbinder</transport>
  198 + <version>1.0</version>
  199 + <interface>
  200 + <name>IBootControl</name>
  201 + <instance>default</instance>
  202 + </interface>
  203 + </hal>
  204 + <hal format="hidl">
  205 + <name>android.hardware.dumpstate</name>
  206 + <transport>hwbinder</transport>
  207 + <version>1.0</version>
  208 + <interface>
  209 + <name>IDumpstateDevice</name>
  210 + <instance>default</instance>
  211 + </interface>
  212 + </hal>
  213 + <hal format="hidl">
  214 + <name>android.hardware.oemlock</name>
  215 + <transport>hwbinder</transport>
  216 + <version>1.0</version>
  217 + <interface>
  218 + <name>IOemLock</name>
  219 + <instance>default</instance>
  220 + </interface>
  221 + </hal>
  222 + <hal format="hidl">
  223 + <name>android.hardware.health</name>
  224 + <transport>hwbinder</transport>
  225 + <version>2.0</version>
  226 + <interface>
  227 + <name>IHealth</name>
  228 + <instance>default</instance>
  229 + </interface>
  230 + </hal>
  231 + <hal format="hidl">
  232 + <name>nxp.hardware.display</name>
  233 + <transport>hwbinder</transport>
  234 + <version>1.0</version>
  235 + <interface>
  236 + <name>IDisplay</name>
  237 + <instance>default</instance>
  238 + </interface>
  239 + </hal>
  240 + <hal format="hidl">
  241 + <name>android.hardware.neuralnetworks</name>
  242 + <transport>hwbinder</transport>
  243 + <version>1.2</version>
  244 + <interface>
  245 + <name>IDevice</name>
  246 + <instance>vsi-npu</instance>
  247 + </interface>
  248 + </hal>
  249 +</manifest>
imx8m/smarc_mx8mq/overlay/frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.png