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