blob: e1a38b4ba5483c9f4c04e072fa8ad467f1c68d4d [file] [log] [blame]
Aaron Dingd88f9a92022-04-15 13:16:16 +08001#
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# Should be uncommented after fixing vndk-sp violation is fixed.
20PRODUCT_FULL_TREBLE_OVERRIDE := true
21
22# HACK : To fix up after bring up multimedia devices.
Aaron Ding66befd82022-04-15 18:52:04 +080023TARGET_SOC := zuma
Aaron Dingd88f9a92022-04-15 13:16:16 +080024
25TARGET_SOC_NAME := google
26
Aaron Ding66befd82022-04-15 18:52:04 +080027USES_DEVICE_GOOGLE_ZUMA := true
Aaron Dingd88f9a92022-04-15 13:16:16 +080028
29TARGET_ARCH := arm64
30TARGET_ARCH_VARIANT := armv8-2a
31TARGET_CPU_ABI := arm64-v8a
32TARGET_CPU_VARIANT := cortex-a55
33TARGET_CPU_VARIANT_RUNTIME := cortex-a55
34
35BOARD_KERNEL_CMDLINE += dyndbg=\"func alloc_contig_dump_pages +p\"
36BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on
37BOARD_KERNEL_CMDLINE += cma_sysfs.experimental=Y
38BOARD_KERNEL_CMDLINE += cgroup_disable=memory
39BOARD_KERNEL_CMDLINE += rcupdate.rcu_expedited=1 rcu_nocbs=all
40BOARD_KERNEL_CMDLINE += stack_depot_disable=off page_pinner=on
41BOARD_KERNEL_CMDLINE += swiotlb=1024
42BOARD_BOOTCONFIG += androidboot.boot_devices=14700000.ufs
43
44TARGET_NO_BOOTLOADER := true
45TARGET_NO_RADIOIMAGE := true
46ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))
47BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot.img)
48else
49BOARD_PREBUILT_BOOTIMAGE := $(wildcard $(TARGET_KERNEL_DIR)/boot-user.img)
50endif
51ifneq (,$(BOARD_PREBUILT_BOOTIMAGE))
52TARGET_NO_KERNEL := true
53else
54TARGET_NO_KERNEL := false
55endif
56BOARD_USES_GENERIC_KERNEL_IMAGE := true
57BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
58BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true
Aaron Ding66befd82022-04-15 18:52:04 +080059TARGET_RECOVERY_WIPE := device/google/zuma/conf/recovery.wipe
Aaron Dingd88f9a92022-04-15 13:16:16 +080060
61# This is the fstab file that will be included in the recovery image. Note that
62# recovery doesn't care about the encryption settings, so it doesn't matter
63# whether we use the normal or the fips fstab here.
Aaron Ding66befd82022-04-15 18:52:04 +080064TARGET_RECOVERY_FSTAB_GENRULE := gen_fstab.zuma
Aaron Dingd88f9a92022-04-15 13:16:16 +080065
66TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
67TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
68TARGET_RECOVERY_UI_LIB := \
69 librecovery_ui_pixel \
70 libfstab
71
72AB_OTA_UPDATER := true
73
74AB_OTA_PARTITIONS += \
75 system \
76 system_dlkm \
77 system_ext \
78 product \
79 vbmeta_system
80
81ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false)
82AB_OTA_PARTITIONS += boot
83endif
84ifneq ($(PRODUCT_BUILD_INIT_BOOT_IMAGE), false)
85AB_OTA_PARTITIONS += init_boot
86endif
87ifneq ($(PRODUCT_BUILD_VENDOR_BOOT_IMAGE),false)
88AB_OTA_PARTITIONS += vendor_boot
89AB_OTA_PARTITIONS += dtbo
90endif
Lucas Weibac1bc52022-06-09 17:17:30 +080091ifeq ($(PRODUCT_BUILD_VENDOR_KERNEL_BOOT_IMAGE),true)
92AB_OTA_PARTITIONS += vendor_kernel_boot
93endif
Aaron Dingd88f9a92022-04-15 13:16:16 +080094ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false)
95AB_OTA_PARTITIONS += vbmeta
96endif
97ifneq ($(PRODUCT_BUILD_PVMFW_IMAGE),false)
98AB_OTA_PARTITIONS += pvmfw
99endif
100
101# EMULATOR common modules
102BOARD_EMULATOR_COMMON_MODULES := liblight
103
104OVERRIDE_RS_DRIVER := libRSDriverArm.so
Aaron Ding66befd82022-04-15 18:52:04 +0800105BOARD_EGL_CFG := device/google/zuma/conf/egl.cfg
Aaron Dingd88f9a92022-04-15 13:16:16 +0800106#BOARD_USES_HGL := true
107USE_OPENGL_RENDERER := true
108NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
109BOARD_USES_EXYNOS5_COMMON_GRALLOC := true
110BOARD_USES_EXYNOS_GRALLOC_VERSION := $(DEVICE_USES_EXYNOS_GRALLOC_VERSION)
111BOARD_USES_ALIGN_RESTRICTION := false
112BOARD_USES_GRALLOC_ION_SYNC := true
113
114# This should be the same value as USE_SWIFTSHADER in device.mk
115BOARD_USES_SWIFTSHADER := false
116
117# Gralloc4
118ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
119
120ifeq ($(BOARD_USES_SWIFTSHADER),true)
121$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,true)
122$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,false)
123$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,false)
124$(call soong_config_set,arm_gralloc,gralloc_init_afbc,false)
125$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,false)
126else
127$(call soong_config_set,arm_gralloc,gralloc_arm_no_external_afbc,false)
128$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_basic,true)
129$(call soong_config_set,arm_gralloc,mali_gpu_support_afbc_wideblk,true)
130$(call soong_config_set,arm_gralloc,gralloc_init_afbc,true)
131$(call soong_config_set,arm_gralloc,dpu_support_1010102_afbc,true)
132endif # ifeq ($(BOARD_USES_SWIFTSHADER),true)
133$(call soong_config_set,arm_gralloc,gralloc_ion_sync_on_lock,$(BOARD_USES_GRALLOC_ION_SYNC))
134endif # ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
135
136# libVendorGraphicbuffer
137ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
138$(call soong_config_set,vendorgraphicbuffer,gralloc_version,four)
139else
140$(call soong_config_set,vendorgraphicbuffer,gralloc_version,three)
141endif
142
143# Graphics
144#BOARD_USES_EXYNOS_DATASPACE_FEATURE := true
145
146# Enable chain partition for system.
147BOARD_AVB_VBMETA_SYSTEM := system system_dlkm system_ext product
148BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
149BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
150BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
151BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
152
153# Enable chained vbmeta for boot images
154BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
155BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048
156BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
157BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2
158
159# Enable chained vbmeta for init_boot images
160BOARD_AVB_INIT_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
161BOARD_AVB_INIT_BOOT_ALGORITHM := SHA256_RSA2048
162BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
163BOARD_AVB_INIT_BOOT_ROLLBACK_INDEX_LOCATION := 4
164
165TARGET_USERIMAGES_USE_EXT4 := true
166TARGET_USERIMAGES_USE_F2FS := true
167BOARD_USERDATAIMAGE_PARTITION_SIZE := 11796480000
168BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
169PRODUCT_FS_COMPRESSION := 1
170BOARD_FLASH_BLOCK_SIZE := 4096
171BOARD_MOUNT_SDCARD_RW := true
172
173# system.img
174BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := erofs
175
176# product.img
177BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := erofs
178TARGET_COPY_OUT_PRODUCT := product
179
180# system_ext.img
181BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := erofs
182TARGET_COPY_OUT_SYSTEM_EXT := system_ext
183
184# persist.img
185BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := f2fs
186
187########################
188# Video Codec
189########################
190# 1. Exynos C2
191BOARD_USE_CSC_FILTER := false
192BOARD_USE_DEC_SW_CSC := true
193BOARD_USE_ENC_SW_CSC := true
194BOARD_SUPPORT_MFC_ENC_RGB := true
195BOARD_USE_BLOB_ALLOCATOR := false
196########################
197
198BOARD_SUPER_PARTITION_SIZE := 8531214336
199BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions
200# Set size to BOARD_SUPER_PARTITION_SIZE - overhead (4MiB) (b/182237294)
201BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 8527020032
202BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \
203 system \
204 system_dlkm \
205 system_ext \
206 product \
207 vendor \
208 vendor_dlkm
209
210# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB
211BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336
212
213# Build a separate system_dlkm partition
214BOARD_USES_SYSTEM_DLKMIMAGE := true
215BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE := erofs
216TARGET_COPY_OUT_SYSTEM_DLKM := system_dlkm
217
218#
219# AUDIO & VOICE
220#
221BOARD_USES_GENERIC_AUDIO := true
222
223$(call soong_config_set,aoc_audio_func,ext_hidl,true)
224
225ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
226$(call soong_config_set,aoc_audio_func,dump_usecase_data,true)
227$(call soong_config_set,aoc_audio_func,hal_socket_control,true)
228$(call soong_config_set,aoc_audio_func,record_tunning_keys,true)
229endif
230
231ifneq (,$(filter aosp_%,$(TARGET_PRODUCT)))
232$(call soong_config_set,aoc_audio_func,aosp_build,true)
233endif
234
235# Primary AudioHAL Configuration
236#BOARD_USE_COMMON_AUDIOHAL := true
237#BOARD_USE_CALLIOPE_AUDIOHAL := false
238#BOARD_USE_AUDIOHAL := true
239
240# Compress Offload Configuration
241#BOARD_USE_OFFLOAD_AUDIO := true
242#BOARD_USE_OFFLOAD_EFFECT := false
243
244# SoundTriggerHAL Configuration
245#BOARD_USE_SOUNDTRIGGER_HAL := false
246
247# HWComposer
248BOARD_HWC_VERSION := hwc3
249TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := false
250BOARD_HDMI_INCAPABLE := true
251TARGET_USES_HWC2 := true
252HWC_SKIP_VALIDATE := true
253HWC_SUPPORT_RENDER_INTENT := true
254HWC_SUPPORT_COLOR_TRANSFORM := true
255#BOARD_USES_DISPLAYPORT := true
256# if AFBC is enabled, must set ro.vendor.ddk.set.afbc=1
257BOARD_USES_EXYNOS_AFBC_FEATURE := true
258#BOARD_USES_HDRUI_GLES_CONVERSION := true
259
Aaron Ding66befd82022-04-15 18:52:04 +0800260BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_zuma
Aaron Dingd88f9a92022-04-15 13:16:16 +0800261BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin
262
263# HWCServices
264BOARD_USES_HWC_SERVICES := true
265
266# WiFiDisplay
267# BOARD_USES_VIRTUAL_DISPLAY := true
268# BOARD_USES_VDS_EXYNOS_HWC := true
269# BOARD_USES_WIFI_DISPLAY:= true
270# BOARD_USES_EGL_SURFACE_FOR_COMPOSITION_MIXED := true
271# BOARD_USES_VDS_YUV420SPM := true
272# BOARD_USES_VDS_OTHERFORMAT := true
273# BOARD_USES_VDS_DEBUG_FLAG := true
274# BOARD_USES_DISABLE_COMPOSITIONTYPE_GLES := true
275# BOARD_USES_SECURE_ENCODER_ONLY := true
276# BOARD_USES_TSMUX := true
277
278# SCALER
279BOARD_USES_DEFAULT_CSC_HW_SCALER := true
280BOARD_DEFAULT_CSC_HW_SCALER := 4
281BOARD_USES_SCALER_M2M1SHOT := true
282
283# Device Tree
284BOARD_USES_DT := true
285BOARD_INCLUDE_DTB_IN_BOOTIMG := true
286BOARD_PREBUILT_DTBIMAGE_DIR := $(TARGET_KERNEL_DIR)
287BOARD_PREBUILT_DTBOIMAGE := $(BOARD_PREBUILT_DTBIMAGE_DIR)/dtbo.img
288
289# PLATFORM LOG
290TARGET_USES_LOGD := true
291
292# LIBHWJPEG
293#TARGET_USES_UNIVERSAL_LIBHWJPEG := true
294#LIBHWJPEG_HWSCALER_ID := 0
295
296#Keymaster
297#BOARD_USES_KEYMASTER_VER1 := true
298
299#FMP
300#BOARD_USES_FMP_DM_CRYPT := true
301#BOARD_USES_FMP_FSCRYPTO := true
302BOARD_USES_METADATA_PARTITION := true
303
304# SKIA
305#BOARD_USES_SKIA_MULTITHREADING := true
306#BOARD_USES_FIMGAPI_V5X := true
307
308# SECCOMP Policy
Aaron Ding66befd82022-04-15 18:52:04 +0800309BOARD_SECCOMP_POLICY = device/google/zuma/seccomp_policy
Aaron Dingd88f9a92022-04-15 13:16:16 +0800310
311#CURL
312BOARD_USES_CURL := true
313
314# Sensor HAL
315BOARD_USES_EXYNOS_SENSORS_DUMMY := true
316
317# VISION
318# Exynos vision framework (EVF)
319#TARGET_USES_EVF := true
320# HW acceleration
321#TARGET_USES_VPU_KERNEL := true
322#TARGET_USES_SCORE_KERNEL := true
323#TARGET_USES_CL_KERNEL := false
324
325# exynos RIL
326TARGET_EXYNOS_RIL_SOURCE := true
327ENABLE_VENDOR_RIL_SERVICE := true
328
329# GNSS
330# BOARD_USES_EXYNOS_GNSS_DUMMY := true
331
332# Bluetooth defines
333# TODO(b/123695868): Remove the need for this
334BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := \
335 build/make/target/board/mainline_arm64/bluetooth
336
337#VNDK
338BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
339BOARD_VNDK_VERSION := current
340
341# H/W align restriction of MM IPs
342BOARD_EXYNOS_S10B_FORMAT_ALIGN := 64
343
344# NeuralNetworks
345GPU_SOURCE_PRESENT := $(wildcard vendor/arm/mali/valhall)
346GPU_PREBUILD_PRESENT := $(wildcard vendor/google_devices/zebu/prebuilts/libs)
347ifneq (,$(strip $(GPU_SOURCE_PRESENT) $(GPU_PREBUILD_PRESENT)))
Aaron Ding6b9a1e02022-04-24 12:39:56 +0800348ARMNN_COMPUTE_CL_ENABLE := 1
Aaron Dingd88f9a92022-04-15 13:16:16 +0800349else
350ARMNN_COMPUTE_CL_ENABLE := 0
351endif
352ARMNN_COMPUTE_NEON_ENABLE := 1
353
354# Boot.img
355BOARD_RAMDISK_USE_LZ4 := true
356#BOARD_KERNEL_BASE := 0x80000000
357#BOARD_KERNEL_PAGESIZE := 2048
358#BOARD_KERNEL_OFFSET := 0x80000
359#BOARD_RAMDISK_OFFSET := 0x4000000
360BOARD_BOOT_HEADER_VERSION := 4
361BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
362
363BOARD_INIT_BOOT_HEADER_VERSION := 4
364BOARD_MKBOOTIMG_INIT_ARGS += --header_version $(BOARD_INIT_BOOT_HEADER_VERSION)
365
Aaron Dingd88f9a92022-04-15 13:16:16 +0800366# Enable AVB2.0
367BOARD_AVB_ENABLE := true
368BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
369BOARD_INIT_BOOT_IMAGE_PARTITION_SIZE := 0x800000
370BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 0x04000000
371BOARD_DTBOIMG_PARTITION_SIZE := 0x01000000
372
Lucas Weibac1bc52022-06-09 17:17:30 +0800373# Build vendor kernel boot image
374BOARD_VENDOR_KERNEL_BOOTIMAGE_PARTITION_SIZE := 0x04000000
375
Aaron Dingd88f9a92022-04-15 13:16:16 +0800376# System As Root
377BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
378
379# Vendor ramdisk image for kernel development
380BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true
381
382KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)
383KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko)
384
Aaron Ding3d63c9d2022-05-16 18:51:23 +0800385# BOARD_VENDOR_KERNEL_MODULES_BLOCKLIST_FILE := $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.blocklist
Aaron Dingd88f9a92022-04-15 13:16:16 +0800386
Lucas Weibac1bc52022-06-09 17:17:30 +0800387BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_kernel_boot.modules.load))
388ifndef BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD
389$(error vendor_kernel_boot.modules.load not found or empty)
Aaron Dingd88f9a92022-04-15 13:16:16 +0800390endif
Lucas Weibac1bc52022-06-09 17:17:30 +0800391BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES := $(addprefix $(KERNEL_MODULE_DIR)/, $(notdir $(BOARD_VENDOR_KERNEL_RAMDISK_KERNEL_MODULES_LOAD)))
Aaron Dingd88f9a92022-04-15 13:16:16 +0800392
393BOARD_VENDOR_KERNEL_MODULES_LOAD := $(strip $(shell cat $(KERNEL_MODULE_DIR)/vendor_dlkm.modules.load))
394ifndef BOARD_VENDOR_KERNEL_MODULES_LOAD
395$(error vendor_dlkm.modules.load not found or empty)
396endif
397BOARD_VENDOR_KERNEL_MODULES := $(KERNEL_MODULES)
398
399# Using BUILD_COPY_HEADERS
400BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
401
Aaron Ding66befd82022-04-15 18:52:04 +0800402include device/google/zuma-sepolicy/zuma-sepolicy.mk
Aaron Dingd88f9a92022-04-15 13:16:16 +0800403
404# Battery options
405BOARD_KERNEL_CMDLINE += at24.write_timeout=100
406
407# Enable larger logbuf
408BOARD_KERNEL_CMDLINE += log_buf_len=1024K
409
410# Enable load module in parallel
411BOARD_BOOTCONFIG += androidboot.load_modules_parallel=true
412
413# Protected VM firmware
414BOARD_PVMFWIMAGE_PARTITION_SIZE := 0x00100000