blob: 4909b61865b8d8fbbdaa160200c52567fc43c849 [file] [log] [blame]
Robin Pengc2b5ca92021-02-23 20:00:28 +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
17
18# Should be uncommented after fixing vndk-sp violation is fixed.
19PRODUCT_FULL_TREBLE_OVERRIDE := true
20
21# HACK : To fix up after bring up multimedia devices.
22TARGET_SOC := gs101
23
24TARGET_SOC_NAME := google
25
26USES_DEVICE_GOOGLE_GS101 := true
27
28TARGET_ARCH := arm64
29TARGET_ARCH_VARIANT := armv8-a
30TARGET_CPU_ABI := arm64-v8a
31TARGET_CPU_VARIANT := generic
32TARGET_CPU_VARIANT_RUNTIME := cortex-a53
33
34ifeq (,$(filter %_64,$(TARGET_PRODUCT)))
35TARGET_2ND_ARCH := arm
36TARGET_2ND_ARCH_VARIANT := armv8-a
37TARGET_2ND_CPU_ABI := armeabi-v7a
38TARGET_2ND_CPU_ABI2 := armeabi
39TARGET_2ND_CPU_VARIANT := generic
40TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a53
41endif
42
43BOARD_KERNEL_CMDLINE += earlycon=exynos4210,0x10A00000 console=ttySAC0,115200 androidboot.console=ttySAC0 printk.devkmsg=on
44BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
45BOARD_KERNEL_CMDLINE += androidboot.boot_devices=14700000.ufs
46
47TARGET_NO_BOOTLOADER := true
48TARGET_NO_KERNEL := false
49TARGET_NO_RADIOIMAGE := true
50BOARD_USES_GENERIC_KERNEL_IMAGE := true
51BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
52BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true
53TARGET_RECOVERY_WIPE := device/google/gs101/conf/recovery.wipe
54TARGET_RECOVERY_FSTAB := device/google/gs101/conf/fstab.gs101
55TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
56TARGET_RECOVERY_UI_MARGIN_HEIGHT := 165
57TARGET_RECOVERY_UI_LIB := \
58 librecovery_ui_pixel \
59 libfstab
60
61AB_OTA_UPDATER := true
62
63AB_OTA_PARTITIONS += \
64 system \
65 system_ext \
66 product \
67 vbmeta_system
68
69ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false)
70AB_OTA_PARTITIONS += boot
71endif
72ifneq ($(PRODUCT_BUILD_VENDOR_BOOT_IMAGE),false)
73AB_OTA_PARTITIONS += vendor_boot
74AB_OTA_PARTITIONS += dtbo
75endif
76ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false)
77AB_OTA_PARTITIONS += vbmeta
78endif
79
80# EMULATOR common modules
81BOARD_EMULATOR_COMMON_MODULES := liblight
82
83OVERRIDE_RS_DRIVER := libRSDriverArm.so
84BOARD_EGL_CFG := device/google/gs101/conf/egl.cfg
85#BOARD_USES_HGL := true
86USE_OPENGL_RENDERER := true
87NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
88BOARD_USES_EXYNOS5_COMMON_GRALLOC := true
89BOARD_USES_EXYNOS_GRALLOC_VERSION := $(DEVICE_USES_EXYNOS_GRALLOC_VERSION)
90BOARD_USES_ALIGN_RESTRICTION := false
91
92# This should be the same value as USE_SWIFTSHADER in device.mk
93BOARD_USES_SWIFTSHADER := false
94
95# Gralloc4
96ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
97SOONG_CONFIG_NAMESPACES += arm_gralloc
98SOONG_CONFIG_arm_gralloc := \
99 gralloc_arm_no_external_afbc \
100 mali_gpu_support_afbc_basic \
101 mali_gpu_support_afbc_wideblk \
102 gralloc_init_afbc \
103 gralloc_ion_sync_on_lock \
104 dpu_support_1010102_afbc
105
106ifeq ($(BOARD_USES_SWIFTSHADER),true)
107SOONG_CONFIG_arm_gralloc_gralloc_arm_no_external_afbc := true
108SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_basic := false
109SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_wideblk := false
110SOONG_CONFIG_arm_gralloc_gralloc_init_afbc := false
111SOONG_CONFIG_arm_gralloc_dpu_support_1010102_afbc := false
112else
113SOONG_CONFIG_arm_gralloc_gralloc_arm_no_external_afbc := false
114SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_basic := true
115SOONG_CONFIG_arm_gralloc_mali_gpu_support_afbc_wideblk := true
116SOONG_CONFIG_arm_gralloc_gralloc_init_afbc := true
117SOONG_CONFIG_arm_gralloc_dpu_support_1010102_afbc := true
118endif # ifeq ($(BOARD_USES_SWIFTSHADER),true)
119SOONG_CONFIG_arm_gralloc_gralloc_ion_sync_on_lock := $(BOARD_USES_GRALLOC_ION_SYNC)
120endif # ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
121
122# libVendorGraphicbuffer
123SOONG_CONFIG_NAMESPACES += vendorgraphicbuffer
124SOONG_CONFIG_vendorgraphicbuffer := \
125 gralloc_version
126
127ifeq ($(BOARD_USES_EXYNOS_GRALLOC_VERSION),4)
128SOONG_CONFIG_vendorgraphicbuffer_gralloc_version := four
129else
130SOONG_CONFIG_vendorgraphicbuffer_gralloc_version := three
131endif
132
133# Graphics
134#BOARD_USES_EXYNOS_DATASPACE_FEATURE := true
135
136# Storage options
137BOARD_USES_VENDORIMAGE := true
138TARGET_COPY_OUT_VENDOR := vendor
139
140# Enable chain partition for system.
141BOARD_AVB_VBMETA_SYSTEM := system system_ext product
142BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
143BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
144BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
145BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
146
147TARGET_USERIMAGES_USE_EXT4 := true
148TARGET_USERIMAGES_USE_F2FS := true
149BOARD_USERDATAIMAGE_PARTITION_SIZE := 11796480000
150BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
151PRODUCT_FS_COMPRESSION := 1
152BOARD_FLASH_BLOCK_SIZE := 4096
153BOARD_MOUNT_SDCARD_RW := true
154
155# product.img
156BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
157TARGET_COPY_OUT_PRODUCT := product
158
159# system_ext.img
160BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
161TARGET_COPY_OUT_SYSTEM_EXT := system_ext
162
163########################
164# Video Codec
165########################
166# 1. Exynos C2
167BOARD_USE_CSC_FILTER := false
168BOARD_USE_DEC_SW_CSC := true
169BOARD_USE_ENC_SW_CSC := true
170BOARD_SUPPORT_MFC_ENC_RGB := true
171BOARD_USE_BLOB_ALLOCATOR := false
172########################
173
174BOARD_SUPER_PARTITION_SIZE := 8531214336
175BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions
176BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 8531214336
177BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \
178 system \
179 system_ext \
180 product \
181 vendor
182
183# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB
184BOARD_SUPER_PARTITION_ERROR_LIMIT := 8006926336
185
186#
187# AUDIO & VOICE
188#
189BOARD_USES_GENERIC_AUDIO := true
190
191SOONG_CONFIG_NAMESPACES += aoc_audio_func
192
193SOONG_CONFIG_aoc_audio_func += \
194 ext_hidl
195
196SOONG_CONFIG_aoc_audio_func_ext_hidl := true
197
198ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
199SOONG_CONFIG_aoc_audio_func += \
200 dump_usecase_data \
201 hal_socket_control \
202 record_tunning_keys
203
204SOONG_CONFIG_aoc_audio_func_dump_usecase_data := true
205SOONG_CONFIG_aoc_audio_func_hal_socket_control := true
206SOONG_CONFIG_aoc_audio_func_record_tunning_keys := true
207endif
208
209# Primary AudioHAL Configuration
210#BOARD_USE_COMMON_AUDIOHAL := true
211#BOARD_USE_CALLIOPE_AUDIOHAL := false
212#BOARD_USE_AUDIOHAL := true
213
214# Compress Offload Configuration
215#BOARD_USE_OFFLOAD_AUDIO := true
216#BOARD_USE_OFFLOAD_EFFECT := false
217
218# SoundTriggerHAL Configuration
219#BOARD_USE_SOUNDTRIGGER_HAL := false
220
221# HWComposer
222BOARD_HWC_VERSION := libhwc2.1
223TARGET_RUNNING_WITHOUT_SYNC_FRAMEWORK := false
224BOARD_HDMI_INCAPABLE := true
225TARGET_USES_HWC2 := true
226HWC_SKIP_VALIDATE := true
227HWC_SUPPORT_RENDER_INTENT := true
228HWC_SUPPORT_COLOR_TRANSFORM := true
229#BOARD_USES_DISPLAYPORT := true
230# if AFBC is enabled, must set ro.vendor.ddk.set.afbc=1
231BOARD_USES_EXYNOS_AFBC_FEATURE := true
232#BOARD_USES_HDRUI_GLES_CONVERSION := true
233
234BOARD_LIBACRYL_DEFAULT_COMPOSITOR := fimg2d_gs101
235BOARD_LIBACRYL_G2D_HDR_PLUGIN := libacryl_hdr_plugin
236
237# HWCServices
238BOARD_USES_HWC_SERVICES := true
239
240# WiFiDisplay
241# BOARD_USES_VIRTUAL_DISPLAY := true
242# BOARD_USES_VDS_EXYNOS_HWC := true
243# BOARD_USES_WIFI_DISPLAY:= true
244# BOARD_USES_EGL_SURFACE_FOR_COMPOSITION_MIXED := true
245# BOARD_USES_VDS_YUV420SPM := true
246# BOARD_USES_VDS_OTHERFORMAT := true
247# BOARD_USES_VDS_DEBUG_FLAG := true
248# BOARD_USES_DISABLE_COMPOSITIONTYPE_GLES := true
249# BOARD_USES_SECURE_ENCODER_ONLY := true
250# BOARD_USES_TSMUX := true
251
252# SCALER
253BOARD_USES_DEFAULT_CSC_HW_SCALER := true
254BOARD_DEFAULT_CSC_HW_SCALER := 4
255BOARD_USES_SCALER_M2M1SHOT := true
256
257# Device Tree
258BOARD_USES_DT := true
259BOARD_INCLUDE_DTB_IN_BOOTIMG := true
260BOARD_PREBUILT_DTBIMAGE_DIR := $(TARGET_KERNEL_DIR)
261BOARD_PREBUILT_DTBOIMAGE := $(BOARD_PREBUILT_DTBIMAGE_DIR)/dtbo.img
262
263# PLATFORM LOG
264TARGET_USES_LOGD := true
265
266# LIBHWJPEG
267#TARGET_USES_UNIVERSAL_LIBHWJPEG := true
268#LIBHWJPEG_HWSCALER_ID := 0
269
270#Keymaster
271#BOARD_USES_KEYMASTER_VER1 := true
272
273#FMP
274#BOARD_USES_FMP_DM_CRYPT := true
275#BOARD_USES_FMP_FSCRYPTO := true
276BOARD_USES_METADATA_PARTITION := true
277
278# SELinux Platform Private policy for gs101
279SYSTEM_EXT_PRIVATE_SEPOLICY_DIR := device/google/sepolicy/private
280
281# SKIA
282#BOARD_USES_SKIA_MULTITHREADING := true
283#BOARD_USES_FIMGAPI_V5X := true
284
285# SECCOMP Policy
286BOARD_SECCOMP_POLICY = device/google/gs101/seccomp_policy
287
288#CURL
289BOARD_USES_CURL := true
290
291# Sensor HAL
292BOARD_USES_EXYNOS_SENSORS_DUMMY := true
293
294# VISION
295# Exynos vision framework (EVF)
296#TARGET_USES_EVF := true
297# HW acceleration
298#TARGET_USES_VPU_KERNEL := true
299#TARGET_USES_SCORE_KERNEL := true
300#TARGET_USES_CL_KERNEL := false
301
302# exynos RIL
303TARGET_EXYNOS_RIL_SOURCE := true
304ENABLE_VENDOR_RIL_SERVICE := true
305
306# GNSS
307# BOARD_USES_EXYNOS_GNSS_DUMMY := true
308
309# Bluetooth defines
310# TODO(b/123695868): Remove the need for this
311BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := \
312 build/make/target/board/mainline_arm64/bluetooth
313
314TARGET_BOARD_KERNEL_HEADERS := $(TARGET_KERNEL_DIR)/kernel-headers
315
316#VNDK
317BOARD_PROPERTY_OVERRIDES_SPLIT_ENABLED := true
318BOARD_VNDK_VERSION := current
319
320# H/W align restriction of MM IPs
321BOARD_EXYNOS_S10B_FORMAT_ALIGN := 64
322
323# WiFi
324BOARD_WLAN_DEVICE := bcmdhd
325BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_bcmdhd
326BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_bcmdhd
327WPA_SUPPLICANT_VERSION := VER_0_8_X
328BOARD_WPA_SUPPLICANT_DRIVER := NL80211
329BOARD_HOSTAPD_DRIVER := NL80211
330# Wifi interface combination - {1 STA + 1 AP (bridged or single)} or {2 STA + 1 of (P2P or NAN)}
331WIFI_HAL_INTERFACE_COMBINATIONS := {{{STA}, 1}, {{AP}, 1}}, {{{STA}, 2}, {{P2P, NAN}, 1}}
332WIFI_FEATURE_WIFI_EXT_HAL := true
333WIFI_FEATURE_IMU_DETECTION := true
334# Avoid Wifi reset on MAC Address change
335WIFI_AVOID_IFACE_RESET_MAC_CHANGE := true
336WIFI_FEATURE_HOSTAPD_11AX := true
337
338# NeuralNetworks
339GPU_SOURCE_PRESENT := $(wildcard vendor/arm/mali/valhall)
340GPU_PREBUILD_PRESENT := $(wildcard vendor/google_devices/zebu/prebuilts/libs)
341ifneq "$(or $(GPU_SOURCE_PRESENT),$(GPU_PREBUILD_PRESENT))" ""
342ARMNN_COMPUTE_CL_ENABLE := 1
343else
344ARMNN_COMPUTE_CL_ENABLE := 0
345endif
346ARMNN_COMPUTE_NEON_ENABLE := 1
347
348# Boot.img
349BOARD_RAMDISK_USE_LZ4 := true
350#BOARD_KERNEL_BASE := 0x80000000
351#BOARD_KERNEL_PAGESIZE := 2048
352#BOARD_KERNEL_OFFSET := 0x80000
353#BOARD_RAMDISK_OFFSET := 0x4000000
354BOARD_BOOT_HEADER_VERSION := 3
355BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
356
357# Enable AVB2.0
358BOARD_AVB_ENABLE := true
359BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
360BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 0x04000000
361BOARD_DTBOIMG_PARTITION_SIZE := 0x01000000
362
363# System As Root
364BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
365
366# Kernel modules
367BOARD_VENDOR_KERNEL_MODULES += \
368 $(wildcard $(TARGET_KERNEL_DIR)/*.ko)
369
370BOARD_VENDOR_RAMDISK_KERNEL_MODULES_FILTER += \
371 $(TARGET_KERNEL_DIR)/bcmdhd43752.ko \
372 $(TARGET_KERNEL_DIR)/bcmdhd4389.ko \
373 $(TARGET_KERNEL_DIR)/lwis.ko \
374 $(TARGET_KERNEL_DIR)/pinctrl-slg51000.ko \
375 $(TARGET_KERNEL_DIR)/pktgen.ko \
376 $(TARGET_KERNEL_DIR)/slg51000-core.ko \
377 $(TARGET_KERNEL_DIR)/slg51000-regulator.ko \
378 $(TARGET_KERNEL_DIR)/stmvl53l1.ko \
379 $(TARGET_KERNEL_DIR)/ftm5.ko \
380 $(TARGET_KERNEL_DIR)/haptics-cs40l2x.ko \
381 $(TARGET_KERNEL_DIR)/sec_touch.ko
382
383BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \
384 $(filter-out $(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_FILTER), $(foreach module, $(notdir \
385 $(shell cat $(TARGET_KERNEL_DIR)/modules.load)), \
386 $(TARGET_KERNEL_DIR)/$(module)))
387
388# Using BUILD_COPY_HEADERS
389BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true
390
391include device/google/gs101-sepolicy/gs101-sepolicy.mk
392-include device/google/gs101/soong/pixel_soong_config.mk
393
394# Battery options
395BOARD_KERNEL_CMDLINE += at24.write_timeout=100