blob: 6be1730280b7137b9067b28416ddf6f23487f49a [file] [log] [blame]
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -07001#
2# Copyright 2017 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
17#
18# Common BoardConfig for all supported architectures.
19#
20
Alistair Delva86773382020-10-12 09:50:48 -070021# TODO(b/170639028): Back up TARGET_NO_BOOTLOADER
22__TARGET_NO_BOOTLOADER := $(TARGET_NO_BOOTLOADER)
SzuWei Line8915622019-09-02 15:51:54 +080023include build/make/target/board/BoardConfigMainlineCommon.mk
Alistair Delva86773382020-10-12 09:50:48 -070024TARGET_NO_BOOTLOADER := $(__TARGET_NO_BOOTLOADER)
SzuWei Line8915622019-09-02 15:51:54 +080025
Jorge E. Moreirad6d862d2019-02-27 16:20:08 -080026TARGET_BOOTLOADER_BOARD_NAME := cutf
Jorge E. Moreira9a442682019-02-14 14:30:21 -080027
Gao Xiange789e692020-06-24 20:51:40 +080028BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
29
Alistair Strachane3508922019-04-17 10:21:44 -070030# Boot partition size: 32M
31# This is only used for OTA update packages. The image size on disk
32# will not change (as is it not a filesystem.)
Po-Chien Hsueh350df402019-07-26 15:39:45 +080033BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
Yifan Hong8e675c92020-11-05 00:57:20 +000034ifdef TARGET_DEDICATED_RECOVERY
Po-Chien Hsueh350df402019-07-26 15:39:45 +080035BOARD_RECOVERYIMAGE_PARTITION_SIZE := 67108864
Yifan Hong8e675c92020-11-05 00:57:20 +000036endif
Alistair Delva95ec4872020-04-29 16:07:21 +000037BOARD_VENDOR_BOOTIMAGE_PARTITION_SIZE := 67108864
Alistair Strachane3508922019-04-17 10:21:44 -070038
Tomasz Wiszkowski72c9b542017-09-19 10:15:20 -070039# Build a separate vendor.img partition
40BOARD_USES_VENDORIMAGE := true
Gao Xiange789e692020-06-24 20:51:40 +080041BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
Tomasz Wiszkowski72c9b542017-09-19 10:15:20 -070042
Paul Trautrimc4608642019-03-12 17:53:21 +090043BOARD_USES_METADATA_PARTITION := true
44
Alistair Strachan96c0d002019-03-28 22:17:14 -070045# Build a separate product.img partition
46BOARD_USES_PRODUCTIMAGE := true
Gao Xiange789e692020-06-24 20:51:40 +080047BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
Alistair Strachan96c0d002019-03-28 22:17:14 -070048
Justin Yun3e008ba2019-07-25 15:03:55 +090049# Build a separate system_ext.img partition
50BOARD_USES_SYSTEM_EXTIMAGE := true
Gao Xiange789e692020-06-24 20:51:40 +080051BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
Justin Yun3e008ba2019-07-25 15:03:55 +090052TARGET_COPY_OUT_SYSTEM_EXT := system_ext
53
Enrico Granata9a1ae612020-02-23 17:11:12 -080054# Build a separate odm.img partition
55BOARD_USES_ODMIMAGE := true
Gao Xiange789e692020-06-24 20:51:40 +080056BOARD_ODMIMAGE_FILE_SYSTEM_TYPE := $(TARGET_RO_FILE_SYSTEM_TYPE)
Enrico Granata9a1ae612020-02-23 17:11:12 -080057TARGET_COPY_OUT_ODM := odm
58
Yifan Honga76e85d2020-05-13 20:29:37 -070059# Build a separate vendor_dlkm partition
60BOARD_USES_VENDOR_DLKMIMAGE := true
61BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
62TARGET_COPY_OUT_VENDOR_DLKM := vendor_dlkm
63
Yifan Hong33c3cd92020-07-15 17:14:30 -070064# Build a separate odm_dlkm partition
65BOARD_USES_ODM_DLKMIMAGE := true
66BOARD_ODM_DLKMIMAGE_FILE_SYSTEM_TYPE := ext4
67TARGET_COPY_OUT_ODM_DLKM := odm_dlkm
68
Bowgo Tsai98235442021-02-22 08:51:59 +000069# FIXME: Remove this once we generate the vbmeta digest correctly
70BOARD_AVB_MAKE_VBMETA_IMAGE_ARGS += --flag 2
71
Alistair Delva56959d82020-04-26 12:53:00 -070072# Enable chained vbmeta for system image mixing
73BOARD_AVB_VBMETA_SYSTEM := product system system_ext
74BOARD_AVB_VBMETA_SYSTEM_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
75BOARD_AVB_VBMETA_SYSTEM_ALGORITHM := SHA256_RSA2048
76BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
77BOARD_AVB_VBMETA_SYSTEM_ROLLBACK_INDEX_LOCATION := 1
78
Alistair Delva470f9862020-11-04 07:56:32 -080079# Enable chained vbmeta for boot images
80BOARD_AVB_BOOT_KEY_PATH := external/avb/test/data/testkey_rsa2048.pem
81BOARD_AVB_BOOT_ALGORITHM := SHA256_RSA2048
82BOARD_AVB_BOOT_ROLLBACK_INDEX := $(PLATFORM_SECURITY_PATCH_TIMESTAMP)
83BOARD_AVB_BOOT_ROLLBACK_INDEX_LOCATION := 2
84
Bowgo Tsai467e96a2021-02-22 11:15:14 +080085# Using sha256 for dm-verity partitions. b/178983355
Tianjie7b3b3042021-03-02 11:14:26 -080086# system, system_other, product.
87TARGET_AVB_SYSTEM_HASHTREE_ALGORITHM ?= sha256
88TARGET_AVB_SYSTEM_OTHER_HASHTREE_ALGORITHM ?= sha256
89TARGET_AVB_PRODUCT_HASHTREE_ALGORITHM ?= sha256
90# Using blake2b-256 for system_ext. This give us move coverage of the
91# algorithms as we otherwise don't have a device using blake2b-256.
92TARGET_AVB_SYSTEM_EXT_HASHTREE_ALGORITHM ?= blake2b-256
93
94BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_SYSTEM_HASHTREE_ALGORITHM)
95BOARD_AVB_SYSTEM_OTHER_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_SYSTEM_OTHER_HASHTREE_ALGORITHM)
96BOARD_AVB_SYSTEM_EXT_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_SYSTEM_EXT_HASHTREE_ALGORITHM)
97BOARD_AVB_PRODUCT_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm $(TARGET_AVB_PRODUCT_HASHTREE_ALGORITHM)
Bowgo Tsai467e96a2021-02-22 11:15:14 +080098
99# vendor and odm.
100BOARD_AVB_VENDOR_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
101BOARD_AVB_ODM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
102
103# vendor_dlkm and odm_dlkm.
104BOARD_AVB_VENDOR_DLKM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
105BOARD_AVB_ODM_DLKM_ADD_HASHTREE_FOOTER_ARGS += --hash_algorithm sha256
106
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700107BOARD_USES_GENERIC_AUDIO := false
108USE_CAMERA_STUB := true
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700109
110# Hardware composer configuration
111TARGET_USES_HWC2 := true
112
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700113# The compiler will occasionally generate movaps, etc.
114BOARD_MALLOC_ALIGNMENT := 16
115
Alistair Delva97f4abb2020-11-16 10:01:51 -0800116# Disable sparse on all filesystem images
Mikhail Golubev5a7e1be2022-02-17 16:12:14 +0100117TARGET_USERIMAGES_SPARSE_EROFS_DISABLED ?= true
118TARGET_USERIMAGES_SPARSE_EXT_DISABLED ?= true
119TARGET_USERIMAGES_SPARSE_F2FS_DISABLED ?= true
Alistair Delva97f4abb2020-11-16 10:01:51 -0800120
Alistair Delva55bdcb72020-09-01 19:59:58 -0700121# Make the userdata partition 6G to accommodate ASAN and CTS
Alistair Delva2b8c7c32020-11-17 17:13:29 -0800122BOARD_USERDATAIMAGE_PARTITION_SIZE := $(TARGET_USERDATAIMAGE_PARTITION_SIZE)
Alistair Delva03af11d2020-02-28 06:12:29 +0000123BOARD_USERDATAIMAGE_FILE_SYSTEM_TYPE := $(TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE)
Alistair Delva4c70e262019-10-15 14:33:59 -0700124TARGET_USERIMAGES_USE_F2FS := true
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700125
Alistair Strachanfaebd892018-03-20 14:21:31 -0700126BOARD_GPU_DRIVERS := virgl
127
Jorge E. Moreiraa0d64b42018-10-10 12:54:40 -0700128# Enable goldfish's encoder.
129# TODO(b/113617962) Remove this if we decide to use
130# device/generic/opengl-transport to generate the encoder
Jorge E. Moreira25102f82018-10-10 12:56:30 -0700131BUILD_EMULATOR_OPENGL_DRIVER := true
Jorge E. Moreiraa0d64b42018-10-10 12:54:40 -0700132BUILD_EMULATOR_OPENGL := true
133
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700134# Minimum size of the final bootable disk image: 10G
135# GCE will pad disk images out to 10G. Our disk images should be at least as
136# big to avoid warnings about partition table oddities.
137BOARD_DISK_IMAGE_MINIMUM_SIZE := 10737418240
138
139BOARD_BOOTIMAGE_MAX_SIZE := 8388608
140BOARD_SYSLOADER_MAX_SIZE := 7340032
141# TODO(san): See if we can get rid of this.
142BOARD_FLASH_BLOCK_SIZE := 512
143
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700144USE_OPENGL_RENDERER := true
145
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700146# Wifi.
147BOARD_WLAN_DEVICE := wlan0
148BOARD_HOSTAPD_DRIVER := NL80211
149BOARD_WPA_SUPPLICANT_DRIVER := NL80211
A. Cody Schuffelene955f152021-04-13 17:15:20 -0700150BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_simulated_cf
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700151WPA_SUPPLICANT_VERSION := VER_0_8_X
152WIFI_DRIVER_FW_PATH_PARAM := "/dev/null"
153WIFI_DRIVER_FW_PATH_STA := "/dev/null"
154WIFI_DRIVER_FW_PATH_AP := "/dev/null"
155
Jorge E. Moreirab6364f12020-04-30 12:23:07 -0700156# vendor sepolicy
157BOARD_VENDOR_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/vendor
Jason Macnak4d1a1282021-04-05 11:11:48 -0700158BOARD_VENDOR_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/vendor/google
Jeongik Cha9889f802021-03-05 19:47:45 +0900159
160BOARD_SEPOLICY_DIRS += system/bt/vendor_libs/linux/sepolicy
Jason Macnak4d1a1282021-04-05 11:11:48 -0700161
Keun young Park700a8e12020-05-04 20:22:24 -0700162# product sepolicy, allow other layers to append
163PRODUCT_PRIVATE_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/product/private
164# PRODUCT_PUBLIC_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/product/public
Jorge E. Moreirab6364f12020-04-30 12:23:07 -0700165# system_ext sepolicy
Felix Elsner7ee83ca2020-09-26 11:23:25 +0200166SYSTEM_EXT_PRIVATE_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/system_ext/private
167# SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS += device/google/cuttlefish/shared/sepolicy/system_ext/public
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700168
Tomasz Wiszkowski6c50d6d2017-09-22 10:22:30 -0700169STAGEFRIGHT_AVCENC_CFLAGS := -DANDROID_GCE
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700170
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700171INIT_BOOTCHART := true
172
Tomasz Wiszkowskica327fe2017-05-26 15:54:12 -0700173# Settings for dhcpcd-6.8.2.
174DHCPCD_USE_IPV6 := no
175DHCPCD_USE_DBUS := no
176DHCPCD_USE_SCRIPT := yes
177
Alistair Strachan5b47aac2019-01-03 12:55:59 -0800178
Alistair Strachan5b47aac2019-01-03 12:55:59 -0800179TARGET_RECOVERY_PIXEL_FORMAT := ABGR_8888
Alistair Delvad610b3b2020-04-28 17:24:01 -0700180TARGET_RECOVERY_UI_LIB := librecovery_ui_cuttlefish
Alistair Delvabd323e62020-05-21 10:08:49 -0700181TARGET_RECOVERY_FSTAB ?= device/google/cuttlefish/shared/config/fstab.f2fs
Alistair Delva5ac09652019-08-30 15:40:25 -0700182
Alistair Delvac8398aa2021-03-22 15:32:13 -0700183BOARD_SUPER_PARTITION_SIZE := 7516192768 # 7GiB
Tianjied705e8e2020-10-20 21:45:52 -0700184BOARD_SUPER_PARTITION_GROUPS := google_system_dynamic_partitions google_vendor_dynamic_partitions
185BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_PARTITION_LIST := product system system_ext
Matt Bandaa34604a2021-04-05 18:58:18 +0000186BOARD_GOOGLE_SYSTEM_DYNAMIC_PARTITIONS_SIZE := 5771362304 # 5.375GiB
Tianjied705e8e2020-10-20 21:45:52 -0700187BOARD_GOOGLE_VENDOR_DYNAMIC_PARTITIONS_PARTITION_LIST := odm vendor vendor_dlkm odm_dlkm
Matt Bandaa34604a2021-04-05 18:58:18 +0000188# 1404MiB, reserve 4MiB for dynamic partition metadata
189BOARD_GOOGLE_VENDOR_DYNAMIC_PARTITIONS_SIZE := 1472200704
Alistair Delva5ac09652019-08-30 15:40:25 -0700190BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT := true
191BOARD_SUPER_IMAGE_IN_UPDATE_PACKAGE := true
192TARGET_RELEASETOOLS_EXTENSIONS := device/google/cuttlefish/shared
Alistair Strachan568ce1f2018-11-26 10:34:15 -0800193
Tianjied705e8e2020-10-20 21:45:52 -0700194# Generate a partial ota update package for partitions in vbmeta_system
195BOARD_PARTIAL_OTA_UPDATE_PARTITIONS_LIST := product system system_ext vbmeta_system
196
Ram Muthiah962b4812020-08-27 00:54:13 +0000197BOARD_BOOTLOADER_IN_UPDATE_PACKAGE := true
Alistair Delva614610c2020-06-18 02:08:25 +0000198BOARD_RAMDISK_USE_LZ4 := true
199
Cody Schuffelen059bf662019-04-22 13:03:32 -0700200# To see full logs from init, disable ratelimiting.
201# The default is 5 messages per second amortized, with a burst of up to 10.
202BOARD_KERNEL_CMDLINE += printk.devkmsg=on
lesl77bb5b52019-11-21 18:46:58 +0800203BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/etc/
Ram Muthiah51253f22019-10-22 20:28:29 +0000204
Cody Schuffelen8a8c8162019-12-04 15:12:51 -0800205BOARD_KERNEL_CMDLINE += init=/init
Devin Moore0be1c132021-06-18 09:37:03 -0700206BOARD_BOOTCONFIG += androidboot.hardware=cutf_cvm
Cody Schuffelen8a8c8162019-12-04 15:12:51 -0800207
Alistair Delva7c8ef242021-02-05 09:28:19 -0800208# TODO(b/179489292): Remove once kfence is enabled everywhere
209BOARD_KERNEL_CMDLINE += kfence.sample_interval=500
210
A. Cody Schuffelen2b9e4a22020-08-14 15:10:17 -0700211BOARD_KERNEL_CMDLINE += loop.max_part=7
212
Alistair Delva3b45ae42021-03-10 16:28:19 -0800213# TODO(b/182417593): Move all of these module options to modules.options
214# TODO(b/176860479): Remove once goldfish and cuttlefish share a wifi implementation
215BOARD_BOOTCONFIG += kernel.mac80211_hwsim.radios=0
Ram Muthiahabaf7932021-01-29 17:32:32 -0800216# Reduce slab size usage from virtio vsock to reduce slab fragmentation
Alistair Delva3b45ae42021-03-10 16:28:19 -0800217BOARD_BOOTCONFIG += \
218 kernel.vmw_vsock_virtio_transport_common.virtio_transport_max_vsock_pkt_buf_size=16384
Ram Muthiahabaf7932021-01-29 17:32:32 -0800219
Alistair Delvabd323e62020-05-21 10:08:49 -0700220ifeq ($(TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE),f2fs)
Devin Moore2af7d8e2021-02-18 14:20:47 -0800221BOARD_BOOTCONFIG += androidboot.fstab_suffix=f2fs
Alistair Delvabd323e62020-05-21 10:08:49 -0700222endif
223
224ifeq ($(TARGET_USERDATAIMAGE_FILE_SYSTEM_TYPE),ext4)
Devin Moore2af7d8e2021-02-18 14:20:47 -0800225BOARD_BOOTCONFIG += androidboot.fstab_suffix=ext4
Alistair Delvabd323e62020-05-21 10:08:49 -0700226endif
227
Ram Muthiah51253f22019-10-22 20:28:29 +0000228BOARD_INCLUDE_DTB_IN_BOOTIMG := true
Devin Moore2af7d8e2021-02-18 14:20:47 -0800229BOARD_BOOT_HEADER_VERSION := 4
Ram Muthiah51253f22019-10-22 20:28:29 +0000230BOARD_MKBOOTIMG_ARGS += --header_version $(BOARD_BOOT_HEADER_VERSION)
Peter Collingbourne9306eae2020-05-05 10:05:45 -0700231PRODUCT_COPY_FILES += \
232 device/google/cuttlefish/dtb.img:dtb.img \
233 device/google/cuttlefish/required_images:required_images \
234
Ram Muthiah51253f22019-10-22 20:28:29 +0000235BOARD_BUILD_SYSTEM_ROOT_IMAGE := false
klinesjiang4eaad822019-11-01 12:07:52 +0800236
237# Cuttlefish doesn't support ramdump feature yet, exclude the ramdump debug tool.
238EXCLUDE_BUILD_RAMDUMP_UPLOADER_DEBUG_TOOL := true
Yifan Hong8e675c92020-11-05 00:57:20 +0000239
240# GKI-related variables.
241BOARD_USES_GENERIC_KERNEL_IMAGE := true
242ifdef TARGET_DEDICATED_RECOVERY
243 BOARD_EXCLUDE_KERNEL_FROM_RECOVERY_IMAGE := true
244else
245 BOARD_MOVE_RECOVERY_RESOURCES_TO_VENDOR_BOOT := true
246endif
247BOARD_MOVE_GSI_AVB_KEYS_TO_VENDOR_BOOT := true
Yifan Hong3c5a9a62021-05-12 21:25:47 +0000248
249# TARGET_KERNEL_USE is defined in kernel.mk, if not defined in the environment variable.
250# Keep in sync with GKI APEX in device.mk
251ifneq (,$(TARGET_KERNEL_USE))
252 ifneq (,$(filter 5.4, $(TARGET_KERNEL_USE)))
253 BOARD_KERNEL_MODULE_INTERFACE_VERSIONS := 5.4-android12-0
254 else
255 BOARD_KERNEL_MODULE_INTERFACE_VERSIONS := $(TARGET_KERNEL_USE)-android12-unstable
256 endif
257endif
David Anderson9126ff62020-11-05 13:23:04 -0800258
259BOARD_GENERIC_RAMDISK_KERNEL_MODULES_LOAD := dm-user.ko
Jeongik Cha902143b2021-02-24 22:22:29 +0900260
261BOARD_HAVE_BLUETOOTH := true