1#
2# Product-specific compile-time definitions.
3#
4# The generic product target doesn't have any hardware-specific pieces.
5# Primary Arch
6TARGET_ARCH := arm64
7TARGET_ARCH_VARIANT := armv8-a
8TARGET_CPU_ABI := arm64-v8a
9TARGET_CPU_VARIANT := cortex-a53
10
11# Secondary Arch
12TARGET_2ND_ARCH := arm
13TARGET_2ND_ARCH_VARIANT := armv8-a
14TARGET_2ND_CPU_ABI := armeabi-v7a
15TARGET_2ND_CPU_ABI2 := armeabi
16TARGET_2ND_CPU_VARIANT := cortex-a53
17
18TARGET_SUPPORTS_64_BIT_APPS := true
19
20TARGET_BOARD_PLATFORM := yukawa
21
22# Vulkan
23BOARD_INSTALL_VULKAN := true
24
25# OpenCL
26BOARD_INSTALL_OPENCL := true
27
28# BT configs
29BOARD_HAVE_BLUETOOTH := true
30
31# generic wifi
32WPA_SUPPLICANT_VERSION := VER_0_8_X
33BOARD_WPA_SUPPLICANT_DRIVER := NL80211
34BOARD_HOSTAPD_DRIVER := NL80211
35
36# AVB
37ifeq ($(TARGET_AVB_ENABLE), true)
38BOARD_AVB_ENABLE := true
39else
40BOARD_AVB_ENABLE := false
41endif
42
43TARGET_NO_BOOTLOADER := true
44TARGET_NO_KERNEL := false
45
46ifeq ($(TARGET_USE_AB_SLOT), true)
47BOARD_USES_RECOVERY_AS_BOOT := true
48AB_OTA_UPDATER := true
49
50AB_OTA_PARTITIONS += \
51    boot \
52    system \
53    vendor \
54    vbmeta
55endif
56
57BOARD_BOOTIMAGE_PARTITION_SIZE := 33554432
58BOARD_DTBOIMG_PARTITION_SIZE := 8388608 # 8 MiB
59BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
60BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
61TARGET_USERIMAGES_SPARSE_EROFS_DISABLED ?= true
62ifneq ($(TARGET_USE_AB_SLOT), true)
63BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
64BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
65endif
66TARGET_USERIMAGES_USE_EXT4 := true
67TARGET_COPY_OUT_VENDOR := vendor
68
69# Super partition
70TARGET_USE_DYNAMIC_PARTITIONS := true
71BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true
72BOARD_SUPER_PARTITION_GROUPS := db_dynamic_partitions
73BOARD_DB_DYNAMIC_PARTITIONS_PARTITION_LIST := system vendor
74ifeq ($(TARGET_USE_AB_SLOT), true)
75BOARD_SUPER_PARTITION_SIZE := 4831838208
76else
77BOARD_SUPER_PARTITION_SIZE := 2415919104
78endif
79BOARD_DB_DYNAMIC_PARTITIONS_SIZE := 2411724800  # Reserve 4M for DAP metadata
80BOARD_SUPER_PARTITION_METADATA_DEVICE := super
81# BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true
82
83
84# Recovery
85TARGET_RECOVERY_PIXEL_FORMAT := RGBX_8888
86ifeq ($(TARGET_AVB_ENABLE), true)
87ifeq ($(TARGET_USE_AB_SLOT), true)
88TARGET_RECOVERY_FSTAB := device/amlogic/yukawa/fstab.yukawa.avb.ab
89else
90TARGET_RECOVERY_FSTAB := device/amlogic/yukawa/fstab.recovery.yukawa.avb
91BOARD_RECOVERYIMAGE_PARTITION_SIZE := 33554432
92endif
93BOARD_AVB_RECOVERY_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
94BOARD_AVB_RECOVERY_ALGORITHM := SHA256_RSA2048
95BOARD_AVB_RECOVERY_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
96BOARD_AVB_RECOVERY_ROLLBACK_INDEX_LOCATION := 2
97else
98ifeq ($(TARGET_USE_AB_SLOT), true)
99TARGET_RECOVERY_FSTAB := device/amlogic/yukawa/fstab.yukawa
100else
101TARGET_RECOVERY_FSTAB := device/amlogic/yukawa/fstab.recovery.yukawa
102BOARD_RECOVERYIMAGE_PARTITION_SIZE := 33554432
103endif
104endif
105BOARD_INCLUDE_RECOVERY_DTBO := true
106
107
108BOARD_KERNEL_OFFSET      := 0x1080000
109BOARD_KERNEL_TAGS_OFFSET := 0x1000000
110BOARD_RAMDISK_OFFSET     := 0x4000000
111BOARD_INCLUDE_DTB_IN_BOOTIMG := true
112BOARD_MKBOOTIMG_ARGS     := --kernel_offset $(BOARD_KERNEL_OFFSET)
113BOARD_MKBOOTIMG_ARGS     += --ramdisk_offset $(BOARD_RAMDISK_OFFSET)
114BOARD_BOOT_HEADER_VERSION := 2
115BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
116
117# Pass unsigned dtbo image (generated by build/tasks/dtimages.mk) to Android
118# build system for AVB signing
119DTBO_UNSIGNED := dtbo-unsigned.img
120# $(PRODUCT_OUT) hasn't been defined yet, so use "=" instead of ":="
121# so that it is resolved later
122BOARD_PREBUILT_DTBOIMAGE = $(PRODUCT_OUT)/$(DTBO_UNSIGNED)
123
124
125BOARD_KERNEL_CMDLINE += no_console_suspend console=ttyAML0,115200 earlycon
126BOARD_KERNEL_CMDLINE += printk.devkmsg=on
127BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/ffe07000.mmc
128BOARD_KERNEL_CMDLINE += init=/init
129BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/firmware
130BOARD_KERNEL_CMDLINE += androidboot.hardware=yukawa
131ifneq ($(TARGET_SELINUX_ENFORCE), true)
132BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
133endif
134ifeq ($(TARGET_BUILTIN_EDID), true)
135BOARD_KERNEL_CMDLINE += drm.edid_firmware=edid/1920x1080.bin
136endif
137ifneq ($(TARGET_SENSOR_MEZZANINE),)
138BOARD_KERNEL_CMDLINE += overlay_mgr.overlay_dt_entry=hardware_cfg_$(TARGET_SENSOR_MEZZANINE)
139endif
140ifneq ($(TARGET_MEM_SIZE),)
141BOARD_KERNEL_CMDLINE += mem=$(TARGET_MEM_SIZE)
142endif
143
144ifneq ($(TARGET_KERNEL_CFG),)
145BOARD_KERNEL_CMDLINE += $(TARGET_KERNEL_CFG)
146endif
147
148USE_E2FSPROGS := true
149
150BOARD_USES_GENERIC_AUDIO := false
151BOARD_USES_ALSA_AUDIO := true
152TARGET_USES_MKE2FS := true
153TARGET_USES_HWC2 := true
154BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/amlogic/yukawa/bluetooth
155
156BOARD_SEPOLICY_DIRS += \
157        device/amlogic/yukawa/sepolicy
158
159DEVICE_MANIFEST_FILE += device/amlogic/yukawa/manifest.xml
160
161ifneq ($(TARGET_KERNEL_USE), 4.19)
162DEVICE_MANIFEST_FILE += device/amlogic/yukawa/manifest_kernel5.xml
163endif
164DEVICE_MATRIX_FILE := device/amlogic/yukawa/compatibility_matrix.xml
165
166ifneq ($(TARGET_SENSOR_MEZZANINE),)
167DEVICE_MANIFEST_FILE += device/amlogic/yukawa/sensorhal/manifest.xml
168endif
169
170# Generate an APEX image for experiment b/119800099.
171DEXPREOPT_GENERATE_APEX_IMAGE := true
172