• 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 := 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