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