• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2016 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#
16
17include build/make/target/board/BoardConfigMainlineCommon.mk
18include build/make/target/board/BoardConfigPixelCommon.mk
19
20TARGET_BOARD_PLATFORM := sdm845
21TARGET_BOARD_INFO_FILE := device/google/crosshatch/board-info.txt
22USES_DEVICE_GOOGLE_B1C1 := true
23
24TARGET_ARCH := arm64
25TARGET_ARCH_VARIANT := armv8-a
26TARGET_CPU_ABI := arm64-v8a
27TARGET_CPU_ABI2 :=
28TARGET_CPU_VARIANT := generic
29TARGET_CPU_VARIANT_RUNTIME := kryo385
30
31TARGET_2ND_ARCH := arm
32TARGET_2ND_ARCH_VARIANT := armv8-a
33TARGET_2ND_CPU_ABI := armeabi-v7a
34TARGET_2ND_CPU_ABI2 := armeabi
35TARGET_2ND_CPU_VARIANT := generic
36TARGET_2ND_CPU_VARIANT_RUNTIME := kryo385
37
38TARGET_BOARD_COMMON_PATH := device/google/crosshatch/sdm845
39
40BUILD_BROKEN_DUP_RULES := true
41
42BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8 androidboot.console=ttyMSM0 printk.devkmsg=on
43BOARD_KERNEL_CMDLINE += msm_rtb.filter=0x237
44BOARD_KERNEL_CMDLINE += ehci-hcd.park=3
45BOARD_KERNEL_CMDLINE += service_locator.enable=1
46BOARD_KERNEL_CMDLINE += cgroup.memory=nokmem
47BOARD_KERNEL_CMDLINE += lpm_levels.sleep_disabled=1
48BOARD_KERNEL_CMDLINE += usbcore.autosuspend=7
49BOARD_KERNEL_CMDLINE += loop.max_part=7
50BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/1d84000.ufshc
51
52BOARD_KERNEL_BASE        := 0x00000000
53BOARD_KERNEL_PAGESIZE    := 4096
54
55BOARD_INCLUDE_DTB_IN_BOOTIMG := true
56BOARD_BOOT_HEADER_VERSION := 2
57BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
58
59# DTBO partition definitions
60BOARD_PREBUILT_DTBOIMAGE := device/google/crosshatch-kernel/dtbo.img
61BOARD_DTBOIMG_PARTITION_SIZE := 8388608
62
63TARGET_NO_KERNEL := false
64BOARD_USES_RECOVERY_AS_BOOT := true
65BOARD_USES_METADATA_PARTITION := true
66
67# Board uses A/B OTA.
68AB_OTA_UPDATER := true
69
70AB_OTA_PARTITIONS += \
71    system \
72    dtbo
73
74ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false)
75AB_OTA_PARTITIONS += boot
76endif
77ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false)
78AB_OTA_PARTITIONS += vbmeta
79endif
80
81# Skip product and system_ext partition for nodap build
82ifeq ($(filter %_nodap,$(TARGET_PRODUCT)),)
83AB_OTA_PARTITIONS += \
84    product \
85    system_ext
86endif
87
88ifneq ($(filter %_mainline,$(TARGET_PRODUCT)),)
89AB_OTA_PARTITIONS += \
90    vbmeta_system
91endif
92
93# Partitions (listed in the file) to be wiped under recovery.
94TARGET_RECOVERY_WIPE := device/google/crosshatch/recovery.wipe
95ifneq ($(filter %_mainline,$(TARGET_PRODUCT)),)
96TARGET_RECOVERY_FSTAB := device/google/crosshatch/fstab.mainline.hardware
97else
98TARGET_RECOVERY_FSTAB := device/google/crosshatch/fstab.hardware
99endif
100TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
101TARGET_RECOVERY_UI_LIB := \
102    librecovery_ui_pixel \
103    libfstab
104
105ifneq ($(filter %_mainline,$(TARGET_PRODUCT)),)
106BOARD_AVB_VBMETA_SYSTEM := system system_ext product
107BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
108BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
109BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
110BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
111endif
112
113# product.img
114ifneq ($(PRODUCT_NO_PRODUCT_PARTITION), true)
115ifneq ($(PRODUCT_USE_DYNAMIC_PARTITIONS), true)
116  BOARD_PRODUCTIMAGE_PARTITION_SIZE := 314572800
117endif
118BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4
119else
120TARGET_COPY_OUT_PRODUCT := system/product
121endif
122
123# system.img
124ifneq ($(PRODUCT_USE_DYNAMIC_PARTITIONS), true)
125  BOARD_SYSTEMIMAGE_PARTITION_SIZE := 2952790016
126ifeq ($(PRODUCT_NO_PRODUCT_PARTITION), true)
127  # Increase inode count to add product modules
128  BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := 8192
129else
130  BOARD_SYSTEMIMAGE_EXTFS_INODE_COUNT := 4096
131endif
132endif
133BOARD_SYSTEMIMAGE_JOURNAL_SIZE := 0
134
135# userdata.img
136BOARD_USERDATAIMAGE_PARTITION_SIZE := 10737418240
137BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs
138
139# persist.img
140BOARD_PERSISTIMAGE_PARTITION_SIZE := 41943040
141BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4
142
143# boot.img
144BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
145
146# system_ext.img
147ifneq ($(PRODUCT_USE_DYNAMIC_PARTITIONS), true)
148TARGET_COPY_OUT_SYSTEM_EXT := system/system_ext
149else
150BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4
151endif
152ifeq ($(PRODUCT_NO_PRODUCT_PARTITION), true)
153# no system_ext partition as well
154TARGET_COPY_OUT_SYSTEM_EXT := system/system_ext
155endif
156
157ifeq ($(PRODUCT_USE_DYNAMIC_PARTITIONS), true)
158BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions
159BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST := \
160    system \
161    vendor \
162    product \
163    system_ext
164
165ifeq ($(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS), true)
166# Normal Pixel 3 must retrofit dynamic partitions.
167BOARD_SUPER_PARTITION_SIZE := 4072669184
168BOARD_SUPER_PARTITION_METADATA_DEVICE := system
169BOARD_SUPER_PARTITION_BLOCK_DEVICES := system vendor product
170BOARD_SUPER_PARTITION_SYSTEM_DEVICE_SIZE := 2952790016
171BOARD_SUPER_PARTITION_VENDOR_DEVICE_SIZE := 805306368
172BOARD_SUPER_PARTITION_PRODUCT_DEVICE_SIZE := 314572800
173# Assume 4MB metadata size.
174# TODO(b/117997386): Use correct metadata size.
175BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 4069523456
176else
177# Mainline Pixel 3 has an actual super partition.
178
179BOARD_SUPER_PARTITION_SIZE := 12884901888
180# Assume 1MB metadata size.
181# TODO(b/117997386): Use correct metadata size.
182BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 6441402368
183
184endif # PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
185endif # PRODUCT_USE_DYNAMIC_PARTITIONS
186
187BOARD_FLASH_BLOCK_SIZE := 131072
188
189BOARD_ROOT_EXTRA_SYMLINKS := /vendor/dsp:/dsp
190BOARD_ROOT_EXTRA_SYMLINKS += /mnt/vendor/persist:/persist
191
192# Add QC specific symlinks for backward compatibility
193# Move the symlinks here instead of removing them
194ifeq ($(PRODUCT_USE_QC_SPECIFIC_SYMLINKS), true)
195BOARD_ROOT_EXTRA_SYMLINKS += /vendor/firmware_mnt:/firmware
196endif
197
198include device/google/crosshatch-sepolicy/crosshatch-sepolicy.mk
199
200TARGET_FS_CONFIG_GEN := device/google/crosshatch/config.fs
201
202QCOM_BOARD_PLATFORMS += sdm845
203BOARD_HAVE_BLUETOOTH_QCOM := true
204BOARD_HAVE_QCOM_FM := false
205BOARD_USES_COMMON_BLUETOOTH_HAL := true
206
207# Camera
208TARGET_USES_AOSP := true
209BOARD_QTI_CAMERA_32BIT_ONLY := false
210CAMERA_DAEMON_NOT_PRESENT := true
211TARGET_USES_ION := true
212TARGET_USES_EASEL := true
213BOARD_USES_EASEL := true
214
215# GPS
216TARGET_NO_RPC := true
217BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := default
218BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET := true
219
220# RenderScript
221OVERRIDE_RS_DRIVER := libRSDriver_adreno.so
222
223# Sensors
224USE_SENSOR_MULTI_HAL := true
225TARGET_SUPPORT_DIRECT_REPORT := true
226# Enable sensor Version V_2
227USE_SENSOR_HAL_VER := 2.0
228
229# CHRE
230CHRE_DAEMON_ENABLED := true
231CHRE_DAEMON_LPMA_ENABLED := true
232CHRE_DAEMON_USE_SDSPRPC := true
233
234# wlan
235BOARD_WLAN_DEVICE := qcwcn
236BOARD_WPA_SUPPLICANT_DRIVER := NL80211
237BOARD_HOSTAPD_DRIVER := NL80211
238WIFI_DRIVER_DEFAULT := qca_cld3
239WPA_SUPPLICANT_VERSION := VER_0_8_X
240BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
241BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE)
242WIFI_HIDL_FEATURE_AWARE := true
243WIFI_HIDL_FEATURE_DUAL_INTERFACE:= true
244WIFI_FEATURE_WIFI_EXT_HAL := true
245WIFI_FEATURE_IMU_DETECTION := false
246WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true
247
248# Audio
249BOARD_USES_ALSA_AUDIO := true
250AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
251AUDIO_FEATURE_ENABLED_SND_MONITOR := true
252AUDIO_FEATURE_ENABLED_USB_TUNNEL := true
253AUDIO_FEATURE_ENABLED_CIRRUS_SPKR_PROTECTION := true
254BOARD_SUPPORTS_SOUND_TRIGGER := true
255AUDIO_FEATURE_FLICKER_SENSOR_INPUT := true
256SOUND_TRIGGER_FEATURE_LPMA_ENABLED := true
257AUDIO_FEATURE_ENABLED_MAXX_AUDIO := true
258AUDIO_FEATURE_ENABLED_24BITS_CAMCORDER := true
259
260# Graphics
261TARGET_USES_GRALLOC1 := true
262TARGET_USES_HWC2 := true
263
264VSYNC_EVENT_PHASE_OFFSET_NS := 2000000
265SF_VSYNC_EVENT_PHASE_OFFSET_NS := 6000000
266
267# Display
268TARGET_HAS_WIDE_COLOR_DISPLAY := true
269TARGET_HAS_HDR_DISPLAY := true
270TARGET_USES_DISPLAY_RENDER_INTENTS := true
271TARGET_USES_COLOR_METADATA := true
272TARGET_USES_DRM_PP := true
273
274# Vendor Interface Manifest
275DEVICE_MANIFEST_FILE := device/google/crosshatch/manifest.xml
276DEVICE_MATRIX_FILE := device/google/crosshatch/compatibility_matrix.xml
277DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := device/google/crosshatch/device_framework_matrix.xml
278
279# Userdebug only Vendor Interface Manifest
280ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
281DEVICE_FRAMEWORK_MANIFEST_FILE += device/google/crosshatch/framework_manifest_userdebug.xml
282DEVICE_MATRIX_FILE += device/google/crosshatch/compatibility_matrix_userdebug.xml
283endif
284
285ODM_MANIFEST_SKUS += \
286    G013A \
287    G013B \
288    G013C \
289    G013D \
290
291ODM_MANIFEST_G013A_FILES := device/google/crosshatch/nfc/manifest_se_SIM1.xml
292ODM_MANIFEST_G013B_FILES := device/google/crosshatch/nfc/manifest_se_eSE1.xml
293ODM_MANIFEST_G013C_FILES := device/google/crosshatch/nfc/manifest_se_SIM1.xml
294ODM_MANIFEST_G013D_FILES := device/google/crosshatch/nfc/manifest_se_eSE1.xml
295
296# Use mke2fs to create ext4 images
297TARGET_USES_MKE2FS := true
298
299# Kernel modules
300ifeq (,$(filter-out blueline_kasan crosshatch_kasan, $(TARGET_PRODUCT)))
301BOARD_VENDOR_KERNEL_MODULES += \
302    $(wildcard device/google/crosshatch-kernel/kasan/*.ko)
303else ifeq (,$(filter-out blueline_kernel_debug_memory crosshatch_kernel_debug_memory, $(TARGET_PRODUCT)))
304BOARD_VENDOR_KERNEL_MODULES += \
305    $(wildcard device/google/crosshatch-kernel/debug_memory/*.ko)
306else ifeq (,$(filter-out blueline_kernel_debug_memory_accounting crosshatch_kernel_debug_memory_accounting, $(TARGET_PRODUCT)))
307BOARD_VENDOR_KERNEL_MODULES += \
308    $(wildcard device/google/crosshatch-kernel/debug_memory_accounting/*.ko)
309BOARD_KERNEL_CMDLINE += page_owner=on
310else ifeq (,$(filter-out blueline_kernel_debug_locking crosshatch_kernel_debug_locking, $(TARGET_PRODUCT)))
311BOARD_VENDOR_KERNEL_MODULES += \
312    $(wildcard device/google/crosshatch-kernel/debug_locking/*.ko)
313else ifeq (,$(filter-out blueline_kernel_debug_hang crosshatch_kernel_debug_hang, $(TARGET_PRODUCT)))
314BOARD_VENDOR_KERNEL_MODULES += \
315    $(wildcard device/google/crosshatch-kernel/debug_hang/*.ko)
316else ifeq (,$(filter-out blueline_kernel_debug_api crosshatch_kernel_debug_api, $(TARGET_PRODUCT)))
317BOARD_VENDOR_KERNEL_MODULES += \
318    $(wildcard device/google/crosshatch-kernel/debug_api/*.ko)
319else ifneq (,$(TARGET_PREBUILT_KERNEL))
320    # If TARGET_PREBUILT_KERNEL is set, check whether there are modules packaged with that kernel
321    # image. If so, use them, otherwise fall back to the default directory.
322    TARGET_PREBUILT_KERNEL_PREBUILT_VENDOR_KERNEL_MODULES := \
323        $(wildcard $(dir $(TARGET_PREBUILT_KERNEL))/*.ko)
324    ifneq (,$(TARGET_PREBUILT_KERNEL_PREBUILT_VENDOR_KERNEL_MODULES))
325        BOARD_VENDOR_KERNEL_MODULES += $(TARGET_PREBUILT_KERNEL_PREBUILT_VENDOR_KERNEL_MODULES)
326    else
327        BOARD_VENDOR_KERNEL_MODULES += $(wildcard device/google/crosshatch-kernel/*.ko)
328    endif
329    # Do NOT delete TARGET_PREBUILT..., it will lead to empty BOARD_VENDOR_KERNEL_MODULES.
330else
331BOARD_VENDOR_KERNEL_MODULES += \
332    $(wildcard device/google/crosshatch-kernel/*.ko)
333endif
334
335# DTB
336ifeq (,$(filter-out blueline_kasan crosshatch_kasan, $(TARGET_PRODUCT)))
337BOARD_PREBUILT_DTBIMAGE_DIR := device/google/crosshatch-kernel/kasan
338else ifeq (,$(filter-out blueline_kernel_debug_memory crosshatch_kernel_debug_memory, $(TARGET_PRODUCT)))
339BOARD_PREBUILT_DTBIMAGE_DIR := device/google/crosshatch-kernel/debug_memory
340else ifeq (,$(filter-out blueline_kernel_debug_memory_accounting crosshatch_kernel_debug_memory_accounting, $(TARGET_PRODUCT)))
341BOARD_PREBUILT_DTBIMAGE_DIR := device/google/crosshatch-kernel/debug_memory_accounting
342else ifeq (,$(filter-out blueline_kernel_debug_locking crosshatch_kernel_debug_locking, $(TARGET_PRODUCT)))
343BOARD_PREBUILT_DTBIMAGE_DIR := device/google/crosshatch-kernel/debug_locking
344else ifeq (,$(filter-out blueline_kernel_debug_hang crosshatch_kernel_debug_hang, $(TARGET_PRODUCT)))
345BOARD_PREBUILT_DTBIMAGE_DIR := device/google/crosshatch-kernel/debug_hang
346else ifeq (,$(filter-out blueline_kernel_debug_api crosshatch_kernel_debug_api, $(TARGET_PRODUCT)))
347BOARD_PREBUILT_DTBIMAGE_DIR := device/google/crosshatch-kernel/debug_api
348else ifneq (,$(TARGET_PREBUILT_KERNEL))
349    # If TARGET_PREBUILT_KERNEL is set, check whether there are dtb files packaged with that kernel
350    # image. If so, use them, otherwise fall back to the default directory.
351    PREBUILT_PREBUILT_DTBIMAGE_DIR := $(wildcard $(dir $(TARGET_PREBUILT_KERNEL))/*.dtb)
352    ifneq (,$(PREBUILT_PREBUILT_DTBIMAGE_DIR)
353        BOARD_PREBUILT_DTBIMAGE_DIR := $(dir $(TARGET_PREBUILT_KERNEL))
354    else
355        BOARD_PREBUILT_DTBIMAGE_DIR += device/google/crosshatch-kernel
356    endif
357    PREBUILT_VENDOR_KERNEL_MODULES :=
358else
359BOARD_PREBUILT_DTBIMAGE_DIR := device/google/crosshatch-kernel
360endif
361
362# Testing related defines
363BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/b1c1-setup.sh
364-include vendor/google_devices/crosshatch/proprietary/BoardConfigVendor.mk
365