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