blob: 6646bbc5e3cbad33f27ccb41dd38e74276d64dc5 [file] [log] [blame]
Bharath831e6d32021-08-07 20:19:03 +05301# config.mk
2#
3# Product-specific compile-time definitions.
4#
5
Bharath831e6d32021-08-07 20:19:03 +05306# Architecture
7TARGET_ARCH := arm64
8TARGET_ARCH_VARIANT := armv8-a
9TARGET_CPU_ABI := arm64-v8a
10TARGET_CPU_ABI2 :=
11TARGET_CPU_VARIANT := generic
12TARGET_CPU_VARIANT_RUNTIME := kryo
13
14TARGET_2ND_ARCH := arm
15TARGET_2ND_ARCH_VARIANT := armv8-a
16TARGET_2ND_CPU_ABI := armeabi-v7a
17TARGET_2ND_CPU_ABI2 := armeabi
18TARGET_2ND_CPU_VARIANT := generic
19TARGET_2ND_CPU_VARIANT_RUNTIME := cortex-a53
20TARGET_CPU_CORTEX_A53 := true
21
22
23# Adreno
24BOARD_USES_ADRENO := true
25
26
27# Audio
28# QC Audio
29#AUDIO_FEATURE_ENABLED_MULTIPLE_TUNNEL := true
30#AUDIO_FEATURE_ENABLED_VOICE_CONCURRENCY := true
31AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD := true
Bharath4f88fa42022-06-16 15:26:15 +053032AUDIO_FEATURE_ENABLED_ALAC_OFFLOAD := false
Bharath831e6d32021-08-07 20:19:03 +053033AUDIO_FEATURE_ENABLED_APE_OFFLOAD := true
34AUDIO_FEATURE_ENABLED_AUDIOSPHERE := true
35AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE := false
36AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := false
37AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
38AUDIO_FEATURE_ENABLED_DTS_EAGLE := false
39AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
40AUDIO_FEATURE_ENABLED_EXTN_FORMATS := true
41AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := true
42AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD := true
43AUDIO_FEATURE_ENABLED_FM_POWER_OPT := true
44AUDIO_FEATURE_ENABLED_HW_ACCELERATED_EFFECTS := false
45AUDIO_FEATURE_ENABLED_PCM_OFFLOAD := true
46AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24 := true
47AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true
48AUDIO_FEATURE_ENABLED_SSR := true
49AUDIO_FEATURE_ENABLED_VORBIS_OFFLOAD := true
50AUDIO_FEATURE_ENABLED_WMA_OFFLOAD := true
51AUDIO_FEATURE_QSSI_COMPLIANCE := true
52BOARD_USES_ALSA_AUDIO := true
53BOARD_USES_SRS_TRUEMEDIA := false
54DOLBY_ENABLE := false
55DTS_CODEC_M_ := true
56MM_AUDIO_ENABLED_SAFX := true
57USE_CUSTOM_AUDIO_POLICY := 1
58
59AUDIO_FEATURE_ENABLED_ACDB_LICENSE := true
60AUDIO_FEATURE_ENABLED_ANC_HEADSET := true
61AUDIO_FEATURE_ENABLED_CUSTOMSTEREO := true
62AUDIO_FEATURE_ENABLED_DEV_ARBI := false
63AUDIO_FEATURE_ENABLED_DLKM := true
64AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := false # TODO: Check if this is required, has proprietary depepndency
65AUDIO_FEATURE_ENABLED_EXT_HDMI := false # TODO: Check if this is required, has proprietary depepndency
66AUDIO_FEATURE_ENABLED_FLUENCE := true
67AUDIO_FEATURE_ENABLED_HDMI_EDID := true
68AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH := true
69AUDIO_FEATURE_ENABLED_HDMI_SPK := true
70AUDIO_FEATURE_ENABLED_HFP := true
71AUDIO_FEATURE_ENABLED_HIFI_AUDIO := true
72AUDIO_FEATURE_ENABLED_INCALL_MUSIC := true
73AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
74AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
75AUDIO_FEATURE_ENABLED_NT_PAUSE_TIMEOUT := true
76AUDIO_FEATURE_ENABLED_SND_MONITOR := true
77AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
78AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := true
79AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
80AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
81AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true
82BOARD_SUPPORTS_QAHW := false
83BOARD_SUPPORTS_SOUND_TRIGGER := true
84MM_AUDIO_ENABLED_FTM := true
85TARGET_USES_QCOM_MM_AUDIO := true
86USE_XML_AUDIO_POLICY_CONF := 1
87
88
89# Bluetooth
Bharatha3224922021-08-16 18:53:43 +053090BLUETOOTH_HCI_USE_MCT := true
91BOARD_ANT_WIRELESS_DEVICE := "vfs-prerelease"
kevinchao(181562)51e79de2020-05-14 16:37:27 +080092BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := $(FP_PATH)/bluetooth
Bharatha3224922021-08-16 18:53:43 +053093BOARD_HAVE_BLUETOOTH := true
Bharath831e6d32021-08-07 20:19:03 +053094
95
96#Board
97BOOTLOADER_PLATFORM := msm8953 # use msm8953 LK configuration
98TARGET_BOARD_PLATFORM := msm8953
99TARGET_BOOTLOADER_BOARD_NAME := FP3
100TARGET_BOOTLOADER_PLATFORM_OVERRIDE := $(TARGET_DEVICE)
101TARGET_NO_BOOTLOADER := false
102
103
Bharath831e6d32021-08-07 20:19:03 +0530104# Camera
105BOARD_QTI_CAMERA_32BIT_ONLY := true
Bharath82796e82021-08-19 21:09:05 +0530106USE_CAMERA_STUB := false
Bharath831e6d32021-08-07 20:19:03 +0530107
108
Bharath831e6d32021-08-07 20:19:03 +0530109# Dexpreopt
110# Enable dex pre-opt to speed up initial boot
111ifeq ($(HOST_OS),linux)
112 ifeq ($(WITH_DEXPREOPT),)
113 WITH_DEXPREOPT := true
114 WITH_DEXPREOPT_PIC := true
115 ifneq ($(TARGET_BUILD_VARIANT),user)
116 # Retain classes.dex in APK's for non-user builds
117 DEX_PREOPT_DEFAULT := nostripping
118 endif
119 endif
120endif
121
122
123# File systems and Partitions
Bharath831e6d32021-08-07 20:19:03 +0530124BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
Bharath831e6d32021-08-07 20:19:03 +0530125BOARD_USES_RECOVERY_AS_BOOT := true
126BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
127TARGET_COPY_OUT_VENDOR := vendor
128TARGET_NO_RECOVERY := true
129TARGET_USERIMAGES_USE_EXT4 := true
130
131# Note: Support for Product partition is intentionally removed
132# because of the limited size of the partition(125MB).
133# It will be system/product/ instead.
134
135BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
136BOARD_DTBOIMG_PARTITION_SIZE := 8388608
137BOARD_FLASH_BLOCK_SIZE := 131072
Bharath831e6d32021-08-07 20:19:03 +0530138BOARD_OEMIMAGE_PARTITION_SIZE := 268435456
139BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432
Bharath831e6d32021-08-07 20:19:03 +0530140BOARD_USERDATAIMAGE_PARTITION_SIZE := 51808043008
Bharathe21246e2022-03-18 00:00:28 +0530141
142# Dynamic Partitions
143ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS), true)
144BOARD_SUPER_PARTITION_GROUPS := fairphone_dynamic_partitions
145BOARD_FAIRPHONE_DYNAMIC_PARTITIONS_PARTITION_LIST := \
146 system \
147 vendor \
148 odm \
149 product \
150 system_ext
151
152ifeq ($(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS), true)
153BOARD_SUPER_PARTITION_SIZE := 4429185024 # system + vendor + product
154BOARD_SUPER_PARTITION_METADATA_DEVICE := system
155BOARD_SUPER_PARTITION_BLOCK_DEVICES := system vendor product
156BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE := 3221225472
157BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE := 1073741824
158BOARD_SUPER_PARTITION_PRODUCT_DEVICE_SIZE := 134217728
159BOARD_FAIRPHONE_DYNAMIC_PARTITIONS_SIZE := 4412407808 # system + vendor + product - 16 MiB overhead
160
161# Introduce new file systems
162BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := ext4
163BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
164BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
165
166# Explicitely fix partition path
167TARGET_COPY_OUT_ODM := odm
168TARGET_COPY_OUT_PRODUCT := product
169TARGET_COPY_OUT_SYSTEM_EXT := system_ext
170
171endif # PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
172else
173BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
174BOARD_SYSTEMIMAGE_PARTITION_SIZE := 3221225472
Bharath831e6d32021-08-07 20:19:03 +0530175BOARD_VENDORIMAGE_PARTITION_SIZE := 1073741824
Bharathe21246e2022-03-18 00:00:28 +0530176endif # PRODUCT_USE_DYNAMIC_PARTITIONS
Bharath831e6d32021-08-07 20:19:03 +0530177
178
179# Filesystem
180TARGET_FS_CONFIG_GEN := $(FP_PATH)/configs/config.fs
181
182
Anton Hansson8e7837e2019-01-18 14:10:45 +0000183# Display Density
184TARGET_SCREEN_DENSITY := 420
185
186
Bharath831e6d32021-08-07 20:19:03 +0530187# Graphics
188# MAX_VIRTUAL_DISPLAY_DIMENSION := 4096
189MAX_EGL_CACHE_KEY_SIZE := 12*1024
190MAX_EGL_CACHE_SIZE := 2048*1024
191NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
192OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
193TARGET_FORCE_HWC_FOR_VIRTUAL_DISPLAYS := true
194TARGET_USES_C2D_COMPOSITION := true
195TARGET_USES_COLOR_METADATA := true
196TARGET_USES_GRALLOC1 := true
197TARGET_USES_HWC2 := true
198TARGET_USES_ION := true
199
200
201# HIDL
202DEVICE_FRAMEWORK_MANIFEST_FILE := $(FP_PATH)/framework_manifest.xml
203DEVICE_MANIFEST_FILE := $(FP_PATH)/manifest.xml
204DEVICE_MATRIX_FILE := $(FP_PATH)/compatibility_matrix.xml
205DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \
206 vendor/qcom/opensource/core-utils/vendor_framework_compatibility_matrix.xml
207
208
209# Kernel
210BOARD_KERNEL_BASE := 0x80000000
211BOARD_KERNEL_PAGESIZE := 2048
212BOARD_KERNEL_OFFSET := 0x00008000
213BOARD_KERNEL_TAGS_OFFSET := 0x00000100
214BOARD_RAMDISK_OFFSET := 0x01000000
215TARGET_COMPILE_WITH_MSM_KERNEL := true
216TARGET_KERNEL_VERSION ?= 4.9
217TARGET_KERNEL_SOURCE ?= kernel/msm-$(TARGET_KERNEL_VERSION)
218TARGET_KERNEL_ARCH := arm64
219TARGET_KERNEL_HEADER_ARCH := arm64
220TARGET_KERNEL_APPEND_DTB := true
lijuang5df53d22018-12-21 15:46:05 +0800221TARGET_KERNEL_CROSS_COMPILE_PREFIX := $(shell pwd)/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-androidkernel-
Bharath831e6d32021-08-07 20:19:03 +0530222TARGET_USES_UNCOMPRESSED_KERNEL := false
223BOARD_KERNEL_IMAGE_NAME := Image.gz-dtb
224BOARD_KERNEL_SEPARATED_DTBO := true
225
226BOARD_KERNEL_CMDLINE := androidboot.console=ttyMSM0
227BOARD_KERNEL_CMDLINE += androidboot.hardware=qcom
228BOARD_KERNEL_CMDLINE += msm_rtb.filter=0x237
229BOARD_KERNEL_CMDLINE += ehci-hcd.park=3
230BOARD_KERNEL_CMDLINE += lpm_levels.sleep_disabled=1
231BOARD_KERNEL_CMDLINE += androidboot.bootdevice=7824900.sdhci
232BOARD_KERNEL_CMDLINE += earlycon=msm_serial_dm,0x78af000
233BOARD_KERNEL_CMDLINE += androidboot.usbconfigfs=true
234BOARD_KERNEL_CMDLINE += loop.max_part=7
Bharathe21246e2022-03-18 00:00:28 +0530235BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/7824900.sdhci
Bharath960f46e2022-09-20 12:32:04 +0530236ifneq (,$(filter eng,$(TARGET_BUILD_VARIANT)))
Bharath831e6d32021-08-07 20:19:03 +0530237BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200,n8
238BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
239endif
240
241# Declare boot header
242BOARD_BOOT_HEADER_VERSION := 1
243BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
244
245
246# Kernel modules
247BOARD_VENDOR_KERNEL_MODULES := \
248 $(KERNEL_MODULES_OUT)/audio_apr.ko \
249 $(KERNEL_MODULES_OUT)/audio_q6_notifier.ko \
250 $(KERNEL_MODULES_OUT)/audio_adsp_loader.ko \
251 $(KERNEL_MODULES_OUT)/audio_q6.ko \
252 $(KERNEL_MODULES_OUT)/audio_usf.ko \
253 $(KERNEL_MODULES_OUT)/audio_pinctrl_wcd.ko \
254 $(KERNEL_MODULES_OUT)/audio_swr.ko \
255 $(KERNEL_MODULES_OUT)/audio_wcd_core.ko \
256 $(KERNEL_MODULES_OUT)/audio_swr_ctrl.ko \
257 $(KERNEL_MODULES_OUT)/audio_wsa881x.ko \
258 $(KERNEL_MODULES_OUT)/audio_wsa881x_analog.ko \
259 $(KERNEL_MODULES_OUT)/audio_platform.ko \
260 $(KERNEL_MODULES_OUT)/audio_cpe_lsm.ko \
261 $(KERNEL_MODULES_OUT)/audio_hdmi.ko \
262 $(KERNEL_MODULES_OUT)/audio_stub.ko \
263 $(KERNEL_MODULES_OUT)/audio_wcd9xxx.ko \
264 $(KERNEL_MODULES_OUT)/audio_mbhc.ko \
265 $(KERNEL_MODULES_OUT)/audio_wcd9335.ko \
266 $(KERNEL_MODULES_OUT)/audio_wcd_cpe.ko \
267 $(KERNEL_MODULES_OUT)/audio_digital_cdc.ko \
268 $(KERNEL_MODULES_OUT)/audio_analog_cdc.ko \
269 $(KERNEL_MODULES_OUT)/audio_native.ko \
270 $(KERNEL_MODULES_OUT)/audio_machine_sdm450.ko \
271 $(KERNEL_MODULES_OUT)/audio_machine_ext_sdm450.ko
272
Bharath177fda82021-08-14 20:30:27 +0530273BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/pronto_wlan.ko
274
Bharath831e6d32021-08-07 20:19:03 +0530275
Bharath831e6d32021-08-07 20:19:03 +0530276# NFC
Bharathe53322f2021-08-20 18:17:49 +0530277BOARD_NFC_CHIPSET := pn553
Bharath831e6d32021-08-07 20:19:03 +0530278
279
280# Others
281BOARD_CHARGER_DISABLE_INIT_BLANK := true # Disable the init blank to avoid flicker
282BOARD_CHARGER_ENABLE_SUSPEND := true # Enable suspend during charger mode
283BOARD_DO_NOT_STRIP_VENDOR_MODULES := true
284BOARD_USES_GENERIC_AUDIO := true
285KASLRSEED_SUPPORT := true # Enable kaslr seed support
286TARGET_USES_AOSP := false
287TARGET_USES_AOSP_FOR_AUDIO := false
288TARGET_USE_MDTP := true # Enable MDTP during recovery
289TARGET_USES_QCOM_BSP := false
290TARGET_USES_MEDIA_EXTENSIONS := true
291
292
293# QCOM hardware
294BOARD_USES_QCOM_HARDWARE := true
295
296
297# Recovery
Bharathe21246e2022-03-18 00:00:28 +0530298ifneq ($(PRODUCT_USE_DYNAMIC_PARTITIONS), true)
Bharath831e6d32021-08-07 20:19:03 +0530299TARGET_RECOVERY_FSTAB := $(FP_PATH)/fstabs-4.9/recovery_AB_split_variant.fstab
Bharathe21246e2022-03-18 00:00:28 +0530300else
301# Use single fstab file for both
302# system and recovery partitions
303# when dynamic partition is enabled.
304TARGET_RECOVERY_FSTAB := $(FP_PATH)/fstabs-4.9/fstab_AB_dynamic_partition_variant.qti
305endif
Bharath831e6d32021-08-07 20:19:03 +0530306
307
308# SELinux
309include device/qcom/sepolicy/SEPolicy.mk
310BOARD_VENDOR_SEPOLICY_DIRS += $(FP_PATH)/sepolicy/vendor
Bharatha9af2a92021-08-06 19:45:38 +0530311BOARD_PLAT_PRIVATE_SEPOLICY_DIR += $(FP_PATH)/sepolicy/private
312BOARD_PLAT_PUBLIC_SEPOLICY_DIR += $(FP_PATH)/sepolicy/public
Bharath8f1d1802021-08-20 00:37:40 +0530313#TODO: clean up elan policies
314BOARD_VENDOR_SEPOLICY_DIRS += $(FP_PATH)/elan_lib/fingerprint/sepolicy
Luca Weiss883f9882021-10-05 12:01:05 +0200315BOARD_VENDOR_SEPOLICY_DIRS += $(FP_PATH)/sepolicy/vendor/automation_setup
Bharath831e6d32021-08-07 20:19:03 +0530316
317
318# Seccomp
319BOARD_SECCOMP_POLICY := $(FP_PATH)/seccomp
320
321
322# Sensors
Bharath00a0ca22021-08-19 09:43:30 +0530323USE_SENSOR_MULTI_HAL := true
Bharath831e6d32021-08-07 20:19:03 +0530324
325
326# Treble
327BOARD_SYSTEMSDK_VERSIONS := 28
328BOARD_VNDK_VERSION := current
329
330
331# WiFi
Bharath177fda82021-08-14 20:30:27 +0530332BOARD_HAS_QCOM_WLAN := true
333BOARD_HOSTAPD_DRIVER := NL80211
334BOARD_WLAN_DEVICE := qcwcn
335BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
336BOARD_WPA_SUPPLICANT_DRIVER := NL80211
337BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
338WIFI_DRIVER_MODULE_NAME := "wlan"
339WIFI_DRIVER_MODULE_PATH := "vendor/lib/modules/pronto_wlan.ko"
340WIFI_DRIVER_FW_PATH_AP := "ap"
341WIFI_DRIVER_FW_PATH_P2P := "p2p"
342WIFI_DRIVER_FW_PATH_STA := "sta"
343WIFI_DRIVER_INSTALL_TO_KERNEL_OUT := true# Part of proprietary code
344WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
345WPA_SUPPLICANT_VERSION := VER_0_8_X
Bharath831e6d32021-08-07 20:19:03 +0530346
347# Vendor-specific definitions
348-include vendor/fairphone/fp3/BoardConfigVendor.mk