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 := lito 21USES_DEVICE_GOOGLE_REDBULL := true 22 23TARGET_ARCH := arm64 24TARGET_ARCH_VARIANT := armv8-a 25TARGET_CPU_ABI := arm64-v8a 26TARGET_CPU_ABI2 := 27TARGET_CPU_VARIANT := generic 28TARGET_CPU_VARIANT_RUNTIME := cortex-a76 29 30ifeq (,$(filter %_64,$(TARGET_PRODUCT))) 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 := cortex-a76 37endif 38 39BUILD_BROKEN_DUP_RULES := true 40BOARD_KERNEL_CMDLINE += console=ttyMSM0,115200n8 androidboot.console=ttyMSM0 printk.devkmsg=on 41BOARD_KERNEL_CMDLINE += msm_rtb.filter=0x237 42BOARD_KERNEL_CMDLINE += ehci-hcd.park=3 43BOARD_KERNEL_CMDLINE += service_locator.enable=1 44BOARD_KERNEL_CMDLINE += androidboot.memcg=1 cgroup.memory=nokmem 45BOARD_KERNEL_CMDLINE += lpm_levels.sleep_disabled=1 # STOPSHIP b/113233473 46BOARD_KERNEL_CMDLINE += usbcore.autosuspend=7 47BOARD_KERNEL_CMDLINE += androidboot.usbcontroller=a600000.dwc3 swiotlb=2048 48BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/1d84000.ufshc 49BOARD_KERNEL_CMDLINE += loop.max_part=7 50BOARD_KERNEL_CMDLINE += loop.hw_queue_depth=31 51BOARD_KERNEL_CMDLINE += snd_soc_cs35l41_i2c.async_probe=1 52BOARD_KERNEL_CMDLINE += i2c_qcom_geni.async_probe=1 53BOARD_KERNEL_CMDLINE += st21nfc.async_probe=1 54BOARD_KERNEL_CMDLINE += spmi_pmic_arb.async_probe=1 55BOARD_KERNEL_CMDLINE += ufs_qcom.async_probe=1 56BOARD_KERNEL_CMDLINE += spi-geni-qcom.async_probe=1 57BOARD_KERNEL_CMDLINE += cnss_utils.async_probe=1 58BOARD_KERNEL_CMDLINE += cgroup_disable=pressure 59 60BOARD_KERNEL_BASE := 0x00000000 61BOARD_KERNEL_PAGESIZE := 4096 62 63BOARD_INCLUDE_DTB_IN_BOOTIMG := true 64BOARD_BOOT_HEADER_VERSION := 3 65BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION) 66 67BOARD_DTBOIMG_PARTITION_SIZE := 16777216 68 69TARGET_NO_KERNEL := false 70BOARD_USES_GENERIC_KERNEL_IMAGE := true 71BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true 72ifneq ($(PRODUCT_BUILD_VENDOR_BOOT_IMAGE),false) 73BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true 74endif 75 76BOARD_USES_METADATA_PARTITION := true 77 78AB_OTA_UPDATER := true 79 80ifneq ($(PRODUCT_BUILD_SYSTEM_IMAGE),false) 81AB_OTA_PARTITIONS += system 82AB_OTA_PARTITIONS += vbmeta_system 83endif 84ifneq ($(PRODUCT_BUILD_PRODUCT_IMAGE),false) 85AB_OTA_PARTITIONS += product 86endif 87ifneq ($(PRODUCT_BUILD_SYSTEM_EXT_IMAGE),false) 88AB_OTA_PARTITIONS += system_ext 89endif 90ifneq ($(PRODUCT_BUILD_BOOT_IMAGE),false) 91AB_OTA_PARTITIONS += boot 92endif 93ifneq ($(PRODUCT_BUILD_VENDOR_BOOT_IMAGE),false) 94AB_OTA_PARTITIONS += vendor_boot 95AB_OTA_PARTITIONS += dtbo 96endif 97ifneq ($(PRODUCT_BUILD_VBMETA_IMAGE),false) 98AB_OTA_PARTITIONS += vbmeta 99endif 100 101# Partitions (listed in the file) to be wiped under recovery. 102TARGET_RECOVERY_WIPE := device/google/redbull/recovery.wipe 103TARGET_RECOVERY_FSTAB := device/google/redbull/fstab.hardware 104TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888 105TARGET_RECOVERY_UI_LIB := \ 106 librecovery_ui_pixel \ 107 libfstab 108 109# Enable chain partition for system. 110BOARD_AVB_VBMETA_SYSTEM := system system_ext product 111BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem 112BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048 113BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 114BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1 115 116# Enable chained vbmeta for boot images 117BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem 118BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048 119BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP) 120BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2 121 122# product.img 123BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 124 125# userdata.img 126TARGET_USERIMAGES_USE_F2FS := true 127BOARD_USERDATAIMAGE_PARTITION_SIZE := 10737418240 128BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := f2fs 129 130# persist.img 131BOARD_PERSISTIMAGE_PARTITION_SIZE := 33554432 132BOARD_PERSISTIMAGE_FILE_SYSTEM_TYPE := ext4 133 134# boot.img 135BOARD_BOOTIMAGE_PARTITION_SIZE := 0x06000000 136 137# vendor_boot.img 138BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 0x06000000 139 140# Allow LZ4 compression 141BOARD_RAMDISK_USE_LZ4 := true 142 143# Specify BOOT_KERNEL_MODULES 144# 145# modules for first stage in vendor_boot.img, remainder goes to vendor.img. 146# This list is a superset of all the possible modules required, and is 147# filtered and ordered as per the supplied kernel's modules.load file. 148# Any modules that do not exist will be silently dropped. This is required 149# because some kernel configurations may have extra debug or test modules, 150# make sure any required to be loaded during first stage init are listed. 151BOOT_KERNEL_MODULES := \ 152 msm_ipc_logging.ko \ 153 qtee_shm_bridge.ko \ 154 qcom_hwspinlock.ko \ 155 smem.ko \ 156 msm_minidump.ko \ 157 watchdog_v2.ko \ 158 early_random.ko \ 159 qcom-pdc.ko \ 160 cmd-db.ko \ 161 qcom_rpmh.ko \ 162 phy-qcom-ufs.ko \ 163 phy-qcom-ufs-qrbtc-sdm845.ko \ 164 phy-qcom-ufs-qmp-v4.ko \ 165 phy-qcom-ufs-qmp-v4-lito.ko \ 166 phy-qcom-ufs-qmp-v3-660.ko \ 167 phy-qcom-ufs-qmp-v3.ko \ 168 pinctrl-msm.ko \ 169 pinctrl-lito.ko \ 170 qcom-spmi-wled.ko \ 171 msm_bus.ko \ 172 clk-qcom.ko \ 173 clk-aop-qmp.ko \ 174 clk-rpmh.ko \ 175 gcc-lito.ko \ 176 clk-spmi-pmic-div.ko \ 177 qrtr.ko \ 178 qmi_helpers.ko \ 179 secure_buffer.ko \ 180 heap_mem_ext_v01.ko \ 181 subsystem_notif.ko \ 182 ramdump.ko \ 183 msm_memshare.ko \ 184 msm_bus_dbg_rpmh.ko \ 185 msm_bus_rpmh.ko \ 186 rpmh-regulator.ko \ 187 qcom-geni-se.ko \ 188 msm_geni_serial.ko \ 189 msm_dma_iommu_mapping.ko \ 190 arm-smmu-debug.ko \ 191 iommu-logger.ko \ 192 arm-smmu.ko \ 193 ufshcd-core.ko \ 194 ufshcd-pltfrm.ko \ 195 ufs_qcom.ko \ 196 spi-geni-qcom.ko \ 197 i2c-qcom-geni.ko \ 198 ion-alloc.ko \ 199 msm_rtb.ko \ 200 pinctrl-spmi-gpio.ko \ 201 pinctrl-spmi-mpp.ko \ 202 pwm-qti-lpg.ko \ 203 debugcc-lito.ko \ 204 dispcc-lito.ko \ 205 gpucc-lito.ko \ 206 npucc-lito.ko \ 207 videocc-lito.ko \ 208 virt-dma.ko \ 209 gpi.ko \ 210 msm_scm.ko \ 211 mdt_loader.ko \ 212 smem_state.ko \ 213 smp2p.ko \ 214 qcom_ipcc.ko \ 215 llcc-slice.ko \ 216 llcc-lito.ko \ 217 core_hang_detect.ko \ 218 gladiator_hang_detect.ko \ 219 minidump_log.ko \ 220 memory_dump_v2.ko \ 221 dcc_v2.ko \ 222 service-locator.ko \ 223 service-notifier.ko \ 224 subsystem-restart.ko \ 225 peripheral-loader.ko \ 226 subsys-pil-tz.ko \ 227 cdsp-loader.ko \ 228 qseecom.ko \ 229 smcinvoke.ko \ 230 microdump_collector.ko \ 231 eud.ko \ 232 qcom_socinfo.ko \ 233 fsa4480-i2c.ko \ 234 rpmsg_core.ko \ 235 qcom_glink_native.ko \ 236 qcom_glink_smem.ko \ 237 qcom_glink_spss.ko \ 238 glink_probe.ko \ 239 glink_pkt.ko \ 240 smp2p_sleepstate.ko \ 241 event_timer.ko \ 242 lpm-stats.ko \ 243 msm_pm.ko \ 244 rpmh_master_stat.ko \ 245 system_pm.ko \ 246 rpm_stats.ko \ 247 ddr_stats.ko \ 248 cdsprm.ko \ 249 msm_icnss.ko \ 250 modemsmem.ko \ 251 qpnp-amoled-regulator.ko \ 252 refgen.ko \ 253 slg51000-regulator.ko \ 254 tps-regulator.ko \ 255 msm_rng.ko \ 256 adsprpc_compat.ko \ 257 adsprpc.ko \ 258 fastcvpd.ko \ 259 rdbg.ko \ 260 qpnp-power-on.ko \ 261 msm-poweroff.ko \ 262 usb_f_diag.ko \ 263 diagchar.ko \ 264 governor_bw_vbif.ko \ 265 governor_gpubw_mon.ko \ 266 governor_msm_adreno_tz.ko \ 267 msm_adreno.ko \ 268 regmap-spmi.ko \ 269 google-bms.ko \ 270 at24.ko \ 271 hdcp_qseecom.ko \ 272 msm_hdcp.ko \ 273 citadel-spi.ko \ 274 qcom-i2c-pmic.ko \ 275 qcom-spmi-pmic.ko \ 276 st21nfc.ko \ 277 st54j_se.ko \ 278 qpnp-revid.ko \ 279 devfreq_qcom_fw.ko \ 280 adc_tm.ko \ 281 msm_sps.ko \ 282 qce50.ko \ 283 qcedev-module.ko \ 284 qcrypto.ko \ 285 spmi-pmic-arb.ko \ 286 cnss_utils.ko \ 287 cnss_prealloc.ko \ 288 cnss_nl.ko \ 289 msm_sharedmem.ko \ 290 phy-generic.ko \ 291 phy-msm-ssusb-qmp.ko \ 292 phy-msm-snps-hs.ko \ 293 xhci-plat-hcd.ko \ 294 rndis.ko \ 295 usb_f_cdev.ko \ 296 usb_f_ccid.ko \ 297 dwc3.ko \ 298 usb-dwc3-msm.ko \ 299 usb_f_qdss.ko \ 300 msm_gsi.ko \ 301 ipa3.ko \ 302 usb_f_gsi.ko \ 303 usb_f_mtp.ko \ 304 usb_f_ptp.ko \ 305 roles.ko \ 306 tcpm.ko \ 307 logbuffer.ko \ 308 pmic-voter.ko \ 309 qpnp_pdphy.ko \ 310 dwc3-haps.ko \ 311 dwc3-of-simple.ko \ 312 dwc3-qcom.ko \ 313 touchscreen_tbn.ko \ 314 vd6281_module.ko \ 315 fpc1020_platform_tee.ko \ 316 rtc-pm8xxx.ko \ 317 i2c-qcom-geni.ko \ 318 devfreq_devbw.ko \ 319 msm_npu.ko \ 320 qpnp-battery.ko \ 321 of_batterydata.ko \ 322 qpnp-smb5-charger.ko \ 323 qpnp-qgauge.ko \ 324 sm7250_bms.ko \ 325 google_charger.ko \ 326 google-battery.ko \ 327 overheat_mitigation.ko \ 328 p9221_charger.ko \ 329 qti_qmi_sensor.ko \ 330 bcl_pmic5.ko \ 331 bcl_soc.ko \ 332 qmi_cdev.ko \ 333 lmh_dbg.ko \ 334 msm_lmh_dcvs.ko \ 335 regulator_aop_cdev.ko \ 336 cpu_isolate.ko \ 337 lmh_cpu_vdd_cdev.ko \ 338 qcom-spmi-temp-alarm.ko \ 339 thermal-tsens.ko \ 340 slimbus.ko \ 341 bluetooth_power.ko \ 342 qcom_edac.ko \ 343 qcom-cpufreq-hw.ko \ 344 leds-qpnp-flash-common.ko \ 345 leds-qpnp-flash-v2.ko \ 346 of_slimbus.ko \ 347 tz_log.ko \ 348 google_wlan_mac.ko \ 349 msm_ext_display.ko \ 350 msm_qmp.ko \ 351 governor_bw_hwmon.ko \ 352 bimc-bwmon.ko \ 353 governor_memlat.ko \ 354 arm-memlat-mon.ko \ 355 governor_cdsp_l3.ko \ 356 qcom-vadc-common.ko \ 357 qcom-spmi-adc5.ko \ 358 pac193x.ko \ 359 qcom_llcc_pmu.ko \ 360 nvmem_qfprom.ko \ 361 qcom-spmi-sdam.ko \ 362 slim_msm_ngd.ko \ 363 rpmsg_char.ko \ 364 rmnet.ko \ 365 usb-audio-qmi.ko \ 366 msm-vidc.ko \ 367 ebtables.ko \ 368 ebtable_broute.ko \ 369 sctp.ko \ 370 sctp_diag.ko \ 371 qrtr-smd.ko \ 372 msm_drm.ko \ 373 dm-user.ko \ 374 375# system_ext.img 376BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := ext4 377 378BOARD_FLASH_BLOCK_SIZE := 131072 379 380BOARD_ROOT_EXTRA_SYMLINKS := /vendor/lib/dsp:/dsp 381BOARD_ROOT_EXTRA_SYMLINKS += /mnt/vendor/persist:/persist 382 383include device/google/redbull-sepolicy/redbull-sepolicy.mk 384 385QCOM_BOARD_PLATFORMS += lito 386QC_PROP_ROOT := vendor/qcom/sm7250/proprietary 387QC_PROP_PATH := $(QC_PROP_ROOT) 388BOARD_HAVE_BLUETOOTH_QCOM := true 389BOARD_HAVE_QCOM_FM := false 390TARGET_USE_QTI_BT_SAR := true 391TARGET_USE_QTI_BT_CHANNEL_AVOIDANCE := true 392BOARD_USES_COMMON_BLUETOOTH_HAL := true 393 394# Camera 395TARGET_USES_AOSP := true 396BOARD_QTI_CAMERA_32BIT_ONLY := false 397CAMERA_DAEMON_NOT_PRESENT := true 398TARGET_USES_ION := true 399 400# GPS 401TARGET_NO_RPC := true 402TARGET_USES_HARDWARE_QCOM_GPS := false 403BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := default 404BOARD_VENDOR_QCOM_LOC_PDK_FEATURE_SET := true 405 406# RenderScript 407OVERRIDE_RS_DRIVER := libRSDriver_adreno.so 408 409# Sensors 410TARGET_SUPPORT_DIRECT_REPORT := true 411 412# CHRE 413CHRE_DAEMON_ENABLED := true 414CHRE_DAEMON_LPMA_ENABLED := true 415CHRE_DAEMON_LOAD_INTO_SENSORSPD := true 416 417# wlan 418BOARD_WLAN_DEVICE := qcwcn 419BOARD_WPA_SUPPLICANT_DRIVER := NL80211 420BOARD_HOSTAPD_DRIVER := NL80211 421WIFI_DRIVER_DEFAULT := qca_cld3 422WPA_SUPPLICANT_VERSION := VER_0_8_X 423BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) 424BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_$(BOARD_WLAN_DEVICE) 425WIFI_HIDL_FEATURE_AWARE := true 426WIFI_HIDL_FEATURE_DUAL_INTERFACE:= true 427WIFI_FEATURE_WIFI_EXT_HAL := true 428WIFI_FEATURE_IMU_DETECTION := true 429WIFI_HIDL_UNIFIED_SUPPLICANT_SERVICE_RC_ENTRY := true 430BOARD_HOSTAPD_CONFIG_80211W_MFP_OPTIONAL := true 431# Add WIFI_FEATURE_IMU_DETECTION to soong_config 432$(call soong_config_set,wifi,feature_imu_detection,$(WIFI_FEATURE_IMU_DETECTION)) 433 434# Audio 435BOARD_USES_ALSA_AUDIO := true 436AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true 437AUDIO_FEATURE_ENABLED_SND_MONITOR := true 438AUDIO_FEATURE_ENABLED_USB_TUNNEL := true 439BOARD_SUPPORTS_SOUND_TRIGGER := true 440AUDIO_FEATURE_FLICKER_SENSOR_INPUT := true 441#SOUND_TRIGGER_FEATURE_LPMA_ENABLED := true 442AUDIO_FEATURE_ENABLED_MAXX_AUDIO := true 443AUDIO_FEATURE_ENABLED_AUDIO_THERMAL_LISTENER := true 444AUDIO_FEATURE_ENABLED_24BITS_CAMCORDER := true 445AUDIO_FEATURE_ENABLED_AUDIO_ZOOM := true 446AUDIO_FEATURE_ENABLED_INSTANCE_ID := true 447#Cirrus cs35l41 speaker amp 448AUDIO_FEATURE_ENABLED_CS35L41 := true 449AUDIO_FEATURE_ENABLED_CS35L41_CALIBRATION_TOOL := true 450AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true 451AUDIO_FEATURE_QSSI_COMPLIANCE := true 452 453# Audio hal flag 454TARGET_USES_HARDWARE_QCOM_AUDIO := true 455TARGET_USES_HARDWARE_QCOM_AUDIO_PLATFORM_8974 := true 456TARGET_USES_HARDWARE_QCOM_AUDIO_POSTPROC := true 457TARGET_USES_HARDWARE_QCOM_AUDIO_VOLUME_LISTENER := true 458TARGET_USES_HARDWARE_QCOM_AUDIO_GET_MMAP_DATA_FD := true 459TARGET_USES_HARDWARE_QCOM_AUDIO_APP_TYPE_CFG := true 460TARGET_USES_HARDWARE_QCOM_AUDIO_ACDB_INIT_V2_CVD := true 461TARGET_USES_HARDWARE_QCOM_AUDIO_MAX_TARGET_SPECIFIC_CHANNEL_CNT := "4" 462TARGET_USES_HARDWARE_QCOM_AUDIO_INCALL_MUSIC_ENABLED := true 463TARGET_USES_HARDWARE_QCOM_AUDIO_MULTIPLE_HW_VARIANTS_ENABLED := true 464TARGET_USES_HARDWARE_QCOM_AUDIO_INCALL_STEREO_CAPTURE_ENABLED := true 465 466# Graphics 467TARGET_USES_GRALLOC1 := true 468TARGET_USES_HWC2 := true 469 470# Display 471TARGET_USES_DISPLAY_RENDER_INTENTS := true 472TARGET_USES_COLOR_METADATA := true 473TARGET_USES_DRM_PP := true 474TARGET_HAS_WIDE_COLOR_DISPLAY := true 475TARGET_HAS_HDR_DISPLAY := true 476 477# Vendor Interface Manifest 478DEVICE_MANIFEST_FILE := device/google/redbull/manifest.xml 479ifeq (,$(filter %_64,$(TARGET_PRODUCT))) 480# Omx is 32 bit only 481DEVICE_MANIFEST_FILE += device/google/redbull/manifest_omx.xml 482endif 483DEVICE_MATRIX_FILE := device/google/redbull/compatibility_matrix.xml 484 485# Use mke2fs to create ext4 images 486TARGET_USES_MKE2FS := true 487 488# dynamic partition 489BOARD_SUPER_PARTITION_SIZE := 9755951104 490BOARD_SUPER_PARTITION_GROUPS := google_dynamic_partitions 491ifneq ($(PRODUCT_BUILD_SYSTEM_IMAGE),false) 492BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST += system 493endif 494ifneq ($(PRODUCT_BUILD_PRODUCT_IMAGE),false) 495BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST += product 496endif 497ifneq ($(PRODUCT_BUILD_SYSTEM_EXT_IMAGE),false) 498BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST += system_ext 499endif 500ifneq ($(PRODUCT_BUILD_VENDOR_IMAGE),false) 501BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST += vendor 502endif 503 504#BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE is set to (6GB - 4MB) 505BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE := 6438256640 506 507# Set error limit to BOARD_SUPER_PARTITON_SIZE - 500MB 508BOARD_SUPER_PARTITION_ERROR_LIMIT := 9231663104 509 510BUILD_BROKEN_USES_BUILD_COPY_HEADERS := true 511 512-include device/google/redbull/soong/pixel_soong_config.mk 513 514# List of modules that should not load automatically 515PRODUCT_COPY_FILES += \ 516 device/google/redbull/modules.blocklist:$(TARGET_COPY_OUT_VENDOR)/lib/modules/modules.blocklist \ 517 device/google/redbull/init.insmod.charger.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.charger.cfg \ 518 519# TARGET_BOOTLOADER_BOARD_NAME sensitive common boilerplate 520# We can't use a variable as the prefix to an include statement 521# because it makes it too difficult to convert to starlark 522TARGET_BOARD_NAME_DIR := device/google/$(TARGET_BOOTLOADER_BOARD_NAME) 523-include device/google/$(TARGET_BOOTLOADER_BOARD_NAME)-sepolicy/$(TARGET_BOOTLOADER_BOARD_NAME)-sepolicy.mk 524 525TARGET_BOARD_INFO_FILE := $(TARGET_BOARD_NAME_DIR)/board-info.txt 526TARGET_BOARD_COMMON_PATH := $(TARGET_BOARD_NAME_DIR)/sm7250 527 528# Common kernel file handling 529ifneq (,$(filter $(TARGET_DEVICE),bramble redfin barbet)) 530 TARGET_KERNEL_DIR := device/google/redbull-kernel 531else 532 TARGET_KERNEL_DIR := $(TARGET_BOARD_NAME_DIR)-kernel 533endif 534 535# DTBO partition definitions 536ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 537 BOARD_PREBUILT_DTBOIMAGE := $(TARGET_KERNEL_DIR)/dtbo.img 538else 539 BOARD_PREBUILT_DTBOIMAGE := $(TARGET_KERNEL_DIR)/vintf/dtbo.img 540endif 541TARGET_FS_CONFIG_GEN := $(TARGET_BOARD_NAME_DIR)/config.fs 542 543# Kernel modules 544ifeq (,$(filter-out $(TARGET_BOOTLOADER_BOARD_NAME)_kasan, $(TARGET_PRODUCT))) 545 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)/kasan 546else ifeq (,$(filter-out $(TARGET_BOOTLOADER_BOARD_NAME)_kernel_debug_memory, $(TARGET_PRODUCT))) 547 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)/debug_memory 548else ifeq (,$(filter-out $(TARGET_BOOTLOADER_BOARD_NAME)_kernel_debug_memory_accounting, $(TARGET_PRODUCT))) 549 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)/debug_memory_accounting 550BOARD_KERNEL_CMDLINE += page_owner=on 551else ifeq (,$(filter-out $(TARGET_BOOTLOADER_BOARD_NAME)_kernel_debug_locking, $(TARGET_PRODUCT))) 552 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)/debug_locking 553else ifeq (,$(filter-out $(TARGET_BOOTLOADER_BOARD_NAME)_kernel_debug_hang, $(TARGET_PRODUCT))) 554 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)/debug_hang 555else ifeq (,$(filter-out $(TARGET_BOOTLOADER_BOARD_NAME)_kernel_debug_api, $(TARGET_PRODUCT))) 556 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)/debug_api 557else 558 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT))) 559 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR) 560 else 561 KERNEL_MODULE_DIR := $(TARGET_KERNEL_DIR)/vintf 562 endif 563endif 564 565# Copy kheaders.ko to vendor/lib/modules for VTS test 566BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULE_DIR)/kheaders.ko 567 568KERNEL_MODULES := $(wildcard $(KERNEL_MODULE_DIR)/*.ko) 569KERNEL_MODULES_LOAD := $(strip $(shell cat $(firstword $(wildcard \ 570 $(KERNEL_MODULE_DIR)/modules.load \ 571 $(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)), \ 572 $(TARGET_KERNEL_DIR)/vintf/modules.load,) \ 573 $(TARGET_KERNEL_DIR)/modules.load)))) 574 575# DTB 576BOARD_PREBUILT_DTBIMAGE_DIR := $(KERNEL_MODULE_DIR) 577 578ifeq (,$(BOOT_KERNEL_MODULES)) 579 BOARD_VENDOR_RAMDISK_KERNEL_MODULES := $(KERNEL_MODULES) 580 BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := $(KERNEL_MODULES_LOAD) 581else 582 # 583 # BEWARE: This is a tuning exercise to get right, splitting between 584 # boot essential drivers, fastboot/recovery drivers, and the remainder 585 # used by Android, but not the blocklist (device specific drivers not 586 # common between platforms or drivers that must not be autoloaded) which 587 # are loaded later. 588 # 589 # BOOT_KERNEL_MODULES - Modules loaded in first stage init. 590 # RECOVERY_KERNEL_MODULES - Additional modules loaded in recovery/fastbootd 591 # or in second stage init. 592 # file: modules.blocklist - Not autoloaded. loaded on demand product or HAL. 593 # Remainder - In second stage init, but after recovery set; 594 # minus the blocklist. 595 # 596 BOOT_KERNEL_MODULES_FILTER := $(foreach m,$(BOOT_KERNEL_MODULES),%/$(m)) 597 ifneq (,$(RECOVERY_KERNEL_MODULES)) 598 RECOVERY_KERNEL_MODULES_FILTER := \ 599 $(foreach m,$(RECOVERY_KERNEL_MODULES),%/$(m)) 600 endif 601 BOARD_VENDOR_RAMDISK_KERNEL_MODULES += \ 602 $(filter $(BOOT_KERNEL_MODULES_FILTER) \ 603 $(RECOVERY_KERNEL_MODULES_FILTER),$(KERNEL_MODULES)) 604 605 # ALL modules land in /vendor/lib/modules so they could be rmmod/insmod'd, 606 # and modules.list actually limits us to the ones we intend to load. 607 BOARD_VENDOR_KERNEL_MODULES := $(KERNEL_MODULES) 608 # To limit /vendor/lib/modules to just the ones loaded, use: 609 # 610 # BOARD_VENDOR_KERNEL_MODULES := $(filter-out \ 611 # $(BOOT_KERNEL_MODULES_FILTER),$(KERNEL_MODULES)) 612 613 # Group set of /vendor/lib/modules loading order to recovery modules first, 614 # then remainder, subtracting both recovery and boot modules. 615 BOARD_VENDOR_KERNEL_MODULES_LOAD := \ 616 $(filter-out $(BOOT_KERNEL_MODULES_FILTER), \ 617 $(filter $(RECOVERY_KERNEL_MODULES_FILTER),$(KERNEL_MODULES_LOAD))) 618 BOARD_VENDOR_KERNEL_MODULES_LOAD += \ 619 $(filter-out $(BOOT_KERNEL_MODULES_FILTER) \ 620 $(RECOVERY_KERNEL_MODULES_FILTER),$(KERNEL_MODULES_LOAD)) 621 622 # NB: Load order governed by modules.load and not by $(BOOT_KERNEL_MODULES) 623 BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD := \ 624 $(filter $(BOOT_KERNEL_MODULES_FILTER),$(KERNEL_MODULES_LOAD)) 625 626 ifneq (,$(RECOVERY_KERNEL_MODULES_FILTER)) 627 # Group set of /vendor/lib/modules loading order to boot modules first, 628 # then remainder of recovery modules. 629 BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD := \ 630 $(filter $(BOOT_KERNEL_MODULES_FILTER),$(KERNEL_MODULES_LOAD)) 631 BOARD_VENDOR_RAMDISK_RECOVERY_KERNEL_MODULES_LOAD += \ 632 $(filter-out $(BOOT_KERNEL_MODULES_FILTER), \ 633 $(filter $(RECOVERY_KERNEL_MODULES_FILTER),$(KERNEL_MODULES_LOAD))) 634 endif 635endif 636 637BOARD_BUILD_VENDOR_RAMDISK_IMAGE := true 638 639# Testing related defines 640BOARD_PERFSETUP_SCRIPT := platform_testing/scripts/perf-setup/b5r3-setup.sh 641