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