1# 2# Copyright (C) 2016 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 17include build/make/target/board/BoardConfigMainlineCommon.mk 18include build/make/target/board/BoardConfigPixelCommon.mk 19 20TARGET_BOARD_PLATFORM := sm6150 21TARGET_BOARD_INFO_FILE := device/google/sunfish/board-info.txt 22USES_DEVICE_GOOGLE_SUNFISH := true 23 24TARGET_ARCH := arm64 25TARGET_ARCH_VARIANT := armv8-a 26TARGET_CPU_ABI := arm64-v8a 27TARGET_CPU_ABI2 := 28TARGET_CPU_VARIANT := generic 29TARGET_CPU_VARIANT_RUNTIME := cortex-a76 30 31TARGET_2ND_ARCH := arm 32TARGET_2ND_ARCH_VARIANT := armv8-a 33TARGET_2ND_CPU_ABI := armeabi-v7a 34TARGET_2ND_CPU_ABI2 := armeabi 35TARGET_2ND_CPU_VARIANT := generic 36TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a76 37 38BUILD_BROKEN_DUP_RULES := true 39BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true 40 41TARGET_BOARD_COMMON_PATH := device/google/sunfish/sm7150 42 43BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8 androidboot.console=ttyMSM0 printk.devkmsg=on 44BOARD_KERNEL_CMDLINE += msm_rtb.filter=0x237 45BOARD_KERNEL_CMDLINE += ehci-hcd.park=3 46BOARD_KERNEL_CMDLINE += service_locator.enable=1 47BOARD_KERNEL_CMDLINE += androidboot.memcg=1 cgroup.memory=nokmem 48BOARD_KERNEL_CMDLINE += lpm_levels.sleep_disabled=1 #STOPSHIP 49BOARD_KERNEL_CMDLINE += usbcore.autosuspend=7 50BOARD_KERNEL_CMDLINE += loop.max_part=7 51BOARD_KERNEL_CMDLINE += androidboot.usbcontroller=a600000.dwc3 swiotlb=1 52BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/1d84000.ufshc 53 54#BOARD_KERNEL_CMDLINE += video=vfb:640x400,bpp=32,memsize=3072000 service_locator.enable=1 earlycon=msm_geni_serial,0x880000 55 56BOARD_KERNEL_BASE := 0x00000000 57BOARD_KERNEL_PAGESIZE := 4096 58BOARD_KERNEL_TAGS_OFFSET := 0x01E00000 59BOARD_RAMDISK_OFFSET := 0x02000000 60 61BOARD_INCLUDE_DTB_IN_BOOTIMG := true 62BOARD_BOOT_HEADER_VERSION := 2 63BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) 64 65# DTBO partition definitions 66BOARD_PREBUILT_DTBOIMAGE := device/google/sunfish-kernel/dtbo.img 67BOARD_DTBOIMG_PARTITION_SIZE := 8388608 68 69TARGET_NO_KERNEL := false 70BOARD_USES_RECOVERY_AS_BOOT := true 71BOARD_USES_METADATA_PARTITION := true 72 73AB_OTA_UPDATER := true 74 75AB_OTA_PARTITIONS += \ 76 boot \ 77 system \ 78 vbmeta \ 79 dtbo \ 80 product \ 81 system_ext \ 82 vbmeta_system 83 84# Partitions (listed in the file) to be wiped under recovery. 85TARGET_RECOVERY_WIPE := device/google/sunfish/recovery.wipe 86TARGET_RECOVERY_FSTAB := device/google/sunfish/fstab.hardware 87TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888 88TARGET_RECOVERY_UI_LIB := \ 89 librecovery_ui_pixel \ 90 libfstab 91 92# Enable chain partition for system. 93BOARD_AVB_VBMETA_SYSTEM := system system_ext product 94BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem 95BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048 96BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 97BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 98 99# product.img 100BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 101 102# system_ext.img 103BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 104 105# userdata.img 106TARGET_USERIMAGES_USE_F2FS := true 107BOARD_USERDATAIMAGE_PARTITION_SIZE := 10737418240 108BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs 109 110# persist.img 111BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432 112BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4 113 114# boot.img 115BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000 116 117BOARD_FLASH_BLOCK_SIZE := 131072 118 119BOARD_ROOT_EXTRA_SYMLINKS := /vendor/dsp:/dsp 120BOARD_ROOT_EXTRA_SYMLINKS += /mnt/vendor/persist:/persist 121 122include device/google/sunfish-sepolicy/sunfish-sepolicy.mk 123 124TARGET_FS_CONFIG_GEN := device/google/sunfish/config.fs 125 126QCOM_BOARD_PLATFORMS += sm6150 127MSMSTEPPE = sm6150 128QC_PROP_ROOT := vendor/qcom/sm8150/proprietary 129QC_PROP_PATH := $(QC_PROP_ROOT) 130BOARD_HAVE_BLUETOOTH_QCOM := true 131BOARD_HAVE_QCOM_FM := false 132TARGET_USE_QTI_BT_SAR := true 133TARGET_USE_QTI_BT_CHANNEL_AVOIDANCE := true 134BOARD_USES_COMMON_BLUETOOTH_HAL := true 135 136# Camera 137TARGET_USES_AOSP := true 138BOARD_QTI_CAMERA_32BIT_ONLY := false 139CAMERA_DAEMON_NOT_PRESENT := true 140TARGET_USES_ION := true 141 142# GPS 143TARGET_NO_RPC := true 144TARGET_USES_HARDWARE_QCOM_GPS := false 145BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := default 146BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET := true 147 148# RenderScript 149OVERRIDE_RS_DRIVER := libRSDriver_adreno.so 150 151# Sensors 152USE_SENSOR_MULTI_HAL := true 153TARGET_SUPPORT_DIRECT_REPORT := true 154# Enable sensor Version V_2 155USE_SENSOR_HAL_VER := 2.0 156 157# CHRE 158CHRE_DAEMON_ENABLED := true 159CHRE_DAEMON_LPMA_ENABLED := true 160CHRE_DAEMON_LOAD_INTO_SENSORSPD := true 161 162# wlan 163BOARD_WLAN_DEVICE := qcwcn 164BOARD_WPA_SUPPLICANT_DRIVER := NL80211 165BOARD_HOSTAPD_DRIVER := NL80211 166WIFI_DRIVER_DEFAULT := qca_cld3 167WPA_SUPPLICANT_VERSION := VER_0_8_X 168BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) 169BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) 170WIFI_HIDL_FEATURE_AWARE := true 171WIFI_HIDL_FEATURE_DUAL_INTERFACE:= true 172WIFI_FEATURE_WIFI_EXT_HAL := true 173WIFI_FEATURE_IMU_DETECTION := true 174WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true 175 176# Audio 177BOARD_USES_ALSA_AUDIO := true 178AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true 179AUDIO_FEATURE_ENABLED_SND_MONITOR := true 180AUDIO_FEATURE_ENABLED_USB_TUNNEL := true 181BOARD_SUPPORTS_SOUND_TRIGGER := true 182AUDIO_FEATURE_FLICKER_SENSOR_INPUT := true 183AUDIO_FEATURE_ENABLED_MAXX_AUDIO := true 184BOARD_SUPPORTS_SOUND_TRIGGER_5514 := true 185AUDIO_FEATURE_ENABLED_24BITS_CAMCORDER := true 186AUDIO_FEATURE_ENABLED_INSTANCE_ID := true 187#Cirrus cs35l41 speaker amp 188AUDIO_FEATURE_ENABLED_CS35L41 := true 189AUDIO_FEATURE_ENABLED_CS35L41_CALIBRATION_TOOL := true 190 191# Graphics 192TARGET_USES_GRALLOC1 := true 193TARGET_USES_HWC2 := true 194TARGET_USES_NV21_CAMERA_PREVIEW := true 195 196# Display 197TARGET_HAS_WIDE_COLOR_DISPLAY := true 198TARGET_HAS_HDR_DISPLAY := true 199TARGET_USES_DISPLAY_RENDER_INTENTS := true 200TARGET_USES_COLOR_METADATA := true 201TARGET_USES_DRM_PP := true 202 203# Vendor Interface Manifest 204DEVICE_MANIFEST_FILE := device/google/sunfish/manifest.xml 205DEVICE_MATRIX_FILE := device/google/sunfish/compatibility_matrix.xml 206# Install product specific framework compatibility matrix 207# (TODO: b/169535506) This includes the FCM for system_ext and product partition. 208# It must be split into the FCM of each partition. 209DEVICE_PRODUCT_COMPATIBILITY_MATRIX_FILE += device/google/sunfish/device_framework_matrix_product.xml 210 211# Use mke2fs to create ext4 images 212TARGET_USES_MKE2FS := true 213 214# Kernel modules 215ifeq (,$(filter-out sunfish_kasan, $(TARGET_PRODUCT))) 216BOARD_VENDOR_KERNEL_MODULES += \ 217 $(wildcard device/google/sunfish-kernel/kasan/*.ko) 218else ifeq (,$(filter-out sunfish_kernel_debug_memory, $(TARGET_PRODUCT))) 219BOARD_VENDOR_KERNEL_MODULES += \ 220 $(wildcard device/google/sunfish-kernel/debug_memory/*.ko) 221else ifeq (,$(filter-out sunfish_kernel_debug_memory_accounting, $(TARGET_PRODUCT))) 222BOARD_VENDOR_KERNEL_MODULES += \ 223 $(wildcard device/google/sunfish-kernel/debug_memory_accounting/*.ko) 224BOARD_KERNEL_CMDLINE += page_owner=on 225else ifeq (,$(filter-out sunfish_kernel_debug_locking, $(TARGET_PRODUCT))) 226BOARD_VENDOR_KERNEL_MODULES += \ 227 $(wildcard device/google/sunfish-kernel/debug_locking/*.ko) 228else ifeq (,$(filter-out sunfish_kernel_debug_hang, $(TARGET_PRODUCT))) 229BOARD_VENDOR_KERNEL_MODULES += \ 230 $(wildcard device/google/sunfish-kernel/debug_hang/*.ko) 231else ifeq (,$(filter-out sunfish_kernel_debug_api, $(TARGET_PRODUCT))) 232BOARD_VENDOR_KERNEL_MODULES += \ 233 $(wildcard device/google/sunfish-kernel/debug_api/*.ko) 234else 235BOARD_VENDOR_KERNEL_MODULES += \ 236 $(wildcard device/google/sunfish-kernel/*.ko) 237endif 238 239# dynamic partition 240BOARD_SUPER_PARTITION_SIZE := 9755951104 241BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions 242BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \ 243 system \ 244 vendor \ 245 product \ 246 system_ext 247 248#BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE is set to BOARD_SUPER_PARTITION_SIZE / 2 - 4MB 249BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 4873781248 250 251# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB 252BOARD_SUPER_PARTITION_ERROR_LIMIT := 9231663104 253 254# DTB 255ifeq (,$(filter-out sunfish_kasan, $(TARGET_PRODUCT))) 256BOARD_PREBUILT_DTBIMAGE_DIR := device/google/sunfish-kernel/kasan 257else ifeq (,$(filter-out sunfish_kernel_debug_memory, $(TARGET_PRODUCT))) 258BOARD_PREBUILT_DTBIMAGE_DIR := device/google/sunfish-kernel/debug_memory 259else ifeq (,$(filter-out sunfish_kernel_debug_memory_accounting, $(TARGET_PRODUCT))) 260BOARD_PREBUILT_DTBIMAGE_DIR := device/google/sunfish-kernel/debug_memory_accounting 261else ifeq (,$(filter-out sunfish_kernel_debug_locking, $(TARGET_PRODUCT))) 262BOARD_PREBUILT_DTBIMAGE_DIR := device/google/sunfish-kernel/debug_locking 263else ifeq (,$(filter-out sunfish_kernel_debug_hang, $(TARGET_PRODUCT))) 264BOARD_PREBUILT_DTBIMAGE_DIR := device/google/sunfish-kernel/debug_hang 265else ifeq (,$(filter-out sunfish_kernel_debug_api, $(TARGET_PRODUCT))) 266BOARD_PREBUILT_DTBIMAGE_DIR := device/google/sunfish-kernel/debug_api 267else 268BOARD_PREBUILT_DTBIMAGE_DIR := device/google/sunfish-kernel 269endif 270 271# Testing related defines 272#BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/s5-setup.sh 273 274-include vendor/google_devices/sunfish/proprietary/BoardConfigVendor.mk 275