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