1# 2# Copyright (C) 2019 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# 16include build/make/target/board/BoardConfigMainlineCommon.mk 17include build/make/target/board/BoardConfigPixelCommon.mk 18 19# HACK : To fix up after bring up multimedia devices. 20TARGET_SOC := gs201 21 22TARGET_SOC_NAME := google 23 24USES_DEVICE_GOOGLE_GS201 := true 25$(call soong_config_set,CitadelProvision,target_soc,gs201) 26 27TARGET_ARCH := arm64 28TARGET_ARCH_VARIANT := armv8-2a 29TARGET_CPU_ABI := arm64-v8a 30TARGET_CPU_VARIANT := cortex-a55 31 32# Enable 64-bit for non-zygote. 33ZYGOTE_FORCE_64 := true 34 35# Force any prefer32 targets to be compiled as 64 bit. 36IGNORE_PREFER32_ON_DEVICE := true 37 38# Build the 32 bit targets 39TARGET_2ND_ARCH := arm 40TARGET_2ND_ARCH_VARIANT := armv8-a 41TARGET_2ND_CPU_ABI := armeabi-v7a 42TARGET_2ND_CPU_ABI2 := armeabi 43TARGET_2ND_CPU_VARIANT := generic 44TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a53 45 46BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\" 47BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on 48BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y 49BOARD_KERNEL_CMDLINE += cgroup_disable=memory 50BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all rcutree.enable_rcu_lazy 51BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on 52BOARD_KERNEL_CMDLINE += swiotlb=1024 53BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem 54BOARD_KERNEL_CMDLINE += disable_dma32=on 55BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs 56 57TARGET_NO_BOOTLOADER := true 58TARGET_NO_RADIOIMAGE := true 59BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot.img) 60ifneq (,$(BOARD_PREBUILT_BOOTIMAGE)) 61TARGET_NO_KERNEL := true 62else 63TARGET_NO_KERNEL := false 64endif 65BOARD_USES_GENERIC_KERNEL_IMAGE := true 66BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true 67BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true 68TARGET_RECOVERY_WIPE := device/google/gs201/conf/recovery.wipe 69 70# This is the fstab file that will be included in the recovery image. Note that 71# recovery doesn't care about the encryption settings, so it doesn't matter 72# whether we use the normal or the fips fstab here. 73TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.gs201 74 75TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888 76TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165 77TARGET_RECOVERY_UI_LIB := \ 78 //hardware/google/pixel/recovery:librecovery_ui_pixel \ 79 libfstab 80 81AB_OTA_UPDATER := true 82 83AB_OTA_PARTITIONS += \ 84 system \ 85 system_dlkm \ 86 system_ext \ 87 product \ 88 vbmeta_system 89 90ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false) 91AB_OTA_PARTITIONS += boot 92endif 93ifneq ($(PRODUCT_BUILD_INIT_BOOT_IMAGE), false) 94AB_OTA_PARTITIONS += init_boot 95endif 96ifneq ($(PRODUCT_BUILD_VENDOR_BOOT_IMAGE),false) 97AB_OTA_PARTITIONS += vendor_boot 98AB_OTA_PARTITIONS += dtbo 99endif 100ifeq ($(PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE),true) 101AB_OTA_PARTITIONS += vendor_kernel_boot 102endif 103ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false) 104AB_OTA_PARTITIONS += vbmeta 105endif 106ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false) 107AB_OTA_PARTITIONS += pvmfw 108endif 109 110# EMULATOR common modules 111BOARD_EMULATOR_COMMON_MODULES := liblight 112 113OVERRIDE_RS_DRIVER := libRSDriverArm.so 114BOARD_EGL_CFG := device/google/gs201/conf/egl.cfg 115#BOARD_USES_HGL := true 116USE_OPENGL_RENDERER := true 117NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3 118BOARD_USES_EXYNOS5_COMMON_GRALLOC := true 119BOARD_USES_ALIGN_RESTRICTION := false 120BOARD_USES_GRALLOC_ION_SYNC := true 121 122# This should be the same value as USE_SWIFTSHADER in device.mk 123BOARD_USES_SWIFTSHADER := false 124 125# Gralloc4 126ifeq ($(BOARD_USES_SWIFTSHADER),true) 127$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,true) 128$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,false) 129$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,false) 130$(call soong_config_set,arm_gralloc,gralloc_init_afbc,false) 131$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,false) 132else 133$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,false) 134$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,true) 135$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,true) 136$(call soong_config_set,arm_gralloc,gralloc_init_afbc,true) 137$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,true) 138endif # ifeq ($(BOARD_USES_SWIFTSHADER),true) 139 140$(call soong_config_set,arm_gralloc,gralloc_ion_sync_on_lock,$(BOARD_USES_GRALLOC_ION_SYNC)) 141 142# Graphics 143#BOARD_USES_EXYNOS_DATASPACE_FEATURE := true 144 145# Enable chain partition for system. 146BOARD_AVB_VBMETA_SYSTEM := system system_dlkm system_ext product 147BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem 148BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048 149BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 150BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 151 152ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false) 153BOARD_AVB_VBMETA_SYSTEM += pvmfw 154endif 155 156# Enable chained vbmeta for boot images 157BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem 158BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048 159BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 160BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2 161 162# Enable chained vbmeta for init_boot images 163BOARD_AVB_INIT_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem 164BOARD_AVB_INIT_BOOT_ALGORITHM := SHA256_RSA2048 165BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 166BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX_LOCATION := 4 167 168TARGET_USERIMAGES_USE_EXT4 := true 169TARGET_USERIMAGES_USE_F2FS := true 170BOARD_USERDATAIMAGE_PARTITION_SIZE := 11796480000 171BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs 172PRODUCT_FS_COMPRESSION := 1 173BOARD_FLASH_BLOCK_SIZE := 4096 174BOARD_MOUNT_SDCARD_RW := true 175 176# product.img 177BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 178TARGET_COPY_OUT_PRODUCT := product 179 180# system_ext.img 181BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 182TARGET_COPY_OUT_SYSTEM_EXT := system_ext 183 184# persist.img 185BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4 186 187######################## 188# Video Codec 189######################## 190# 1. Exynos C2 191BOARD_USE_CODEC2_HIDL_1_2 := true 192BOARD_USE_CSC_FILTER := false 193BOARD_USE_DEC_SW_CSC := true 194BOARD_USE_ENC_SW_CSC := true 195BOARD_SUPPORT_MFC_ENC_RGB := true 196BOARD_USE_BLOB_ALLOCATOR := false 197BOARD_SUPPORT_MFC_ENC_BT2020 := true 198BOARD_SUPPORT_FLEXIBLE_P010 := true 199$(call soong_config_set,video_codec,target_soc_name,$(TARGET_SOC_NAME)) 200$(call soong_config_set_bool,video_codec,board_use_codec2_hidl_1_2,$(BOARD_USE_CODEC2_HIDL_1_2)) 201$(call soong_config_set_bool,video_codec,board_use_csc_filter,$(BOARD_USE_CSC_FILTER)) 202$(call soong_config_set_bool,video_codec,board_use_dec_sw_csc,$(BOARD_USE_DEC_SW_CSC)) 203$(call soong_config_set_bool,video_codec,board_use_enc_sw_csc,$(BOARD_USE_ENC_SW_CSC)) 204$(call soong_config_set_bool,video_codec,board_support_mfc_enc_rgb,$(BOARD_SUPPORT_MFC_ENC_RGB)) 205$(call soong_config_set_bool,video_codec,board_use_blob_allocator,$(BOARD_USE_BLOB_ALLOCATOR)) 206$(call soong_config_set_bool,video_codec,board_support_mfc_enc_bt2020,$(BOARD_SUPPORT_MFC_ENC_BT2020)) 207$(call soong_config_set_bool,video_codec,board_support_flexible_p010,$(BOARD_SUPPORT_FLEXIBLE_P010)) 208$(call soong_config_set_bool,video_codec,board_use_codec2_aidl,$(if $(BOARD_USE_CODEC2_AIDL),true,false)) 209######################## 210 211BOARD_SUPER_PARTITION_SIZE := 8531214336 212BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions 213# Set size to BOARD_SUPER_PARTITION_SIZE - overhead (4MiB) (b/182237294) 214BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 8527020032 215BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \ 216 system \ 217 system_dlkm \ 218 system_ext \ 219 product \ 220 vendor \ 221 vendor_dlkm 222 223# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB 224BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336 225 226# Build a separate system_dlkm partition 227BOARD_USES_SYSTEM_DLKMIMAGE := true 228BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4 229TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm 230 231# Testing related defines 232BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/p10c10-setup.sh 233 234# 235# AUDIO & VOICE 236# 237BOARD_USES_GENERIC_AUDIO := true 238 239$(call soong_config_set,aoc_audio_func,ext_hidl,true) 240 241ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 242$(call soong_config_set,aoc_audio_func,dump_usecase_data,true) 243$(call soong_config_set,aoc_audio_func,hal_socket_control,true) 244$(call soong_config_set,aoc_audio_func,record_tuning_keys,true) 245endif 246 247ifneq (,$(filter aosp_%,$(TARGET_PRODUCT))) 248$(call soong_config_set,aoc_audio_func,aosp_build,true) 249endif 250 251# Primary AudioHAL Configuration 252#BOARD_USE_COMMON_AUDIOHAL := true 253#BOARD_USE_CALLIOPE_AUDIOHAL := false 254#BOARD_USE_AUDIOHAL := true 255 256# Compress Offload Configuration 257#BOARD_USE_OFFLOAD_AUDIO := true 258#BOARD_USE_OFFLOAD_EFFECT := false 259 260# SoundTriggerHAL Configuration 261#BOARD_USE_SOUNDTRIGGER_HAL := false 262 263# Vibrator HAL actuator model and adaptive haptics configuration 264$(call soong_config_set,haptics,actuator_model,$(ACTUATOR_MODEL)) 265$(call soong_config_set,haptics,adaptive_haptics_feature,$(ADAPTIVE_HAPTICS_FEATURE)) 266 267# HWComposer 268BOARD_HWC_VERSION := hwc3 269TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := false 270BOARD_HDMI_INCAPABLE := true 271TARGET_USES_HWC2 := true 272HWC_SUPPORT_RENDER_INTENT := true 273HWC_SUPPORT_COLOR_TRANSFORM := true 274#BOARD_USES_DISPLAYPORT := true 275# if AFBC is enabled, must set ro.vendor.ddk.set.afbc=1 276BOARD_USES_EXYNOS_AFBC_FEATURE := true 277#BOARD_USES_HDRUI_GLES_CONVERSION := true 278 279BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_gs201 280BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin 281$(call soong_config_set,acryl,libacryl_g2d_hdr_plugin,//hardware/google/graphics/gs201/libacryl_plugins:libacryl_hdr_plugin) 282$(call soong_config_set,acryl,libacryl_c_include,hardware/google/graphics/$(TARGET_BOARD_PLATFORM)/libcap) 283 284# HWCServices 285BOARD_USES_HWC_SERVICES := true 286 287# WiFiDisplay 288# BOARD_USES_VIRTUAL_DISPLAY := true 289# BOARD_USES_VDS_EXYNOS_HWC := true 290# BOARD_USES_WIFI_DISPLAY:= true 291# BOARD_USES_EGL_SURFACE_FOR_COMPOSITION_MIXED := true 292# BOARD_USES_VDS_YUV420SPM := true 293# BOARD_USES_VDS_OTHERFORMAT := true 294# BOARD_USES_VDS_DEBUG_FLAG := true 295# BOARD_USES_DISABLE_COMPOSITIONTYPE_GLES := true 296# BOARD_USES_SECURE_ENCODER_ONLY := true 297# BOARD_USES_TSMUX := true 298 299# SCALER 300BOARD_USES_DEFAULT_CSC_HW_SCALER := true 301BOARD_DEFAULT_CSC_HW_SCALER := 4 302BOARD_USES_SCALER_M2M1SHOT := true 303 304# Device Tree 305BOARD_USES_DT := true 306BOARD_INCLUDE_DTB_IN_BOOTIMG := true 307BOARD_PREBUILT_DTBIMAGE_DIR := $(TARGET_KERNEL_DIR) 308BOARD_PREBUILT_DTBOIMAGE := $(BOARD_PREBUILT_DTBIMAGE_DIR)/dtbo.img 309 310# PLATFORM LOG 311TARGET_USES_LOGD := true 312 313# LIBHWJPEG 314#TARGET_USES_UNIVERSAL_LIBHWJPEG := true 315#LIBHWJPEG_HWSCALER_ID := 0 316 317#Keymaster 318#BOARD_USES_KEYMASTER_VER1 := true 319 320#FMP 321#BOARD_USES_FMP_DM_CRYPT := true 322#BOARD_USES_FMP_FSCRYPTO := true 323BOARD_USES_METADATA_PARTITION := true 324 325# SKIA 326#BOARD_USES_SKIA_MULTITHREADING := true 327#BOARD_USES_FIMGAPI_V5X := true 328 329# SECCOMP Policy 330BOARD_SECCOMP_POLICY = device/google/gs201/seccomp_policy 331 332#CURL 333BOARD_USES_CURL := true 334 335# Sensor HAL 336BOARD_USES_EXYNOS_SENSORS_DUMMY := true 337 338# VISION 339# Exynos vision framework (EVF) 340#TARGET_USES_EVF := true 341# HW acceleration 342#TARGET_USES_VPU_KERNEL := true 343#TARGET_USES_SCORE_KERNEL := true 344#TARGET_USES_CL_KERNEL := false 345 346# exynos RIL 347TARGET_EXYNOS_RIL_SOURCE := true 348ENABLE_VENDOR_RIL_SERVICE := true 349 350# GNSS 351# BOARD_USES_EXYNOS_GNSS_DUMMY := true 352 353# Bluetooth defines 354# TODO(b/123695868): Remove the need for this 355BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := \ 356 build/make/target/board/mainline_arm64/bluetooth 357 358#VNDK 359BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true 360BOARD_VNDK_VERSION := current 361 362# H/W align restriction of MM IPs 363BOARD_EXYNOS_S10B_FORMAT_ALIGN := 64 364 365# Boot.img 366BOARD_RAMDISK_USE_LZ4 := true 367#BOARD_KERNEL_BASE := 0x80000000 368#BOARD_KERNEL_PAGESIZE := 2048 369#BOARD_KERNEL_OFFSET := 0x80000 370#BOARD_RAMDISK_OFFSET := 0x4000000 371BOARD_BOOT_HEADER_VERSION := 4 372BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) 373 374BOARD_INIT_BOOT_HEADER_VERSION := 4 375BOARD_MKBOOTIMG_INIT_ARGS += --header_version $(BOARD_INIT_BOOT_HEADER_VERSION) 376 377# Enable AVB2.0 378BOARD_AVB_ENABLE := true 379BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000 380BOARD_INIT_BOOT_IMAGE_PARTITION_SIZE := 0x800000 381BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 0x04000000 382BOARD_DTBOIMG_PARTITION_SIZE := 0x01000000 383 384# Build vendor kernel boot image 385BOARD_VENDOR_KERNEL_BOOTIMAGE_PARTITION_SIZE := 0x04000000 386 387# Vendor ramdisk image for kernel development 388BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true 389 390KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR) 391KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko) 392 393ifneq ($(wildcard $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist),) 394BOARD_SYSTEM_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/system_dlkm.modules.blocklist 395endif 396BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist 397 398# Prebuilt kernel modules that are *not* listed in vendor_kernel_boot.modules.load 399BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES = fips140.ko 400BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA = $(foreach k,$(BOARD_PREBUILT_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES),$(if $(wildcard $(KERNEL_MODULE_DIR)/$(k)), $(k))) 401 402# Kernel modules that are listed in vendor_kernel_boot.modules.load 403BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load)) 404ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE 405$(error vendor_kernel_boot.modules.load not found or empty) 406endif 407BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA) 408BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD += $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE) 409BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_EXTRA)) 410BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES += $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD_FILE))) 411 412BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load)) 413ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD 414$(error vendor_dlkm.modules.load not found or empty) 415endif 416 417# staging kernels might have modules split between system/vendor_dlkm. If 418# the target defined modules on the system_dlkm image, honor the split. 419# Otherwise, assume all modules are stored on the vendor_dlkm image. 420ifneq ($(BOARD_SYSTEM_KERNEL_MODULES),) 421BOARD_VENDOR_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_MODULES_LOAD))) 422else 423BOARD_VENDOR_KERNEL_MODULES := $(KERNEL_MODULES) 424endif 425 426BOARD_SYSTEM_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/system_dlkm.modules.load)) 427BOARD_SYSTEM_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_SYSTEM_KERNEL_MODULES_LOAD))) 428 429# Using BUILD_COPY_HEADERS 430BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true 431 432include device/google/gs201-sepolicy/gs201-sepolicy.mk 433 434# Battery options 435BOARD_KERNEL_CMDLINE += at24.write_timeout=100 436 437# Enable larger logbuf 438BOARD_KERNEL_CMDLINE += log_buf_len=1024K 439 440# Protected VM firmware 441BOARD_PVMFWIMAGE_PARTITION_SIZE := 0x00100000 442 443# pick up library for cleaning digital car keys on factory reset 444-include vendor/google_devices/gs-common/proprietary/BoardConfigVendor.mk 445