summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongqin Liu <yongqin.liu@linaro.org>2023-03-16 18:39:42 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-03-16 18:39:42 +0000
commitda7b7bed7837d29a5afc030979bd1dc42393f094 (patch)
treec692e0963bb2bee0ebde37b821eeeccb367e0f06
parent4ac2ad44331fe828bc2b9d9e4ca46f16db1abc12 (diff)
parentbd636d7b350ff2941f87346aea37f2e34ee37826 (diff)
downloadhikey-android14-dev.tar.gz
hikey960: enable Android Virtualization am: 8c352a4c5c am: 28d58e37f5 am: bd636d7b35android14-dev
Original change: https://android-review.googlesource.com/c/device/linaro/hikey/+/2373270 Change-Id: I338f6324723ae3e176b87d7dd745c6d945a5fea9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--hikey960.mk23
-rw-r--r--hikey960/BoardConfig.mk12
-rw-r--r--hikey960/device-hikey960.mk7
3 files changed, 42 insertions, 0 deletions
diff --git a/hikey960.mk b/hikey960.mk
index 7a35a224..1888158d 100644
--- a/hikey960.mk
+++ b/hikey960.mk
@@ -18,6 +18,29 @@ ifndef HIKEY_USES_GKI
endif
endif
+# only kernels after 5.10 support KVM
+ifndef HIKEY960_ENABLE_AVF
+ ifeq ($(TARGET_KERNEL_USE), mainline)
+ HIKEY960_ENABLE_AVF := true
+ else
+ KERNEL_MAJ := $(word 1, $(subst ., ,$(TARGET_KERNEL_USE)))
+ KERNEL_MIN := $(word 2, $(subst ., ,$(TARGET_KERNEL_USE)))
+ KER_GT_5 := $(shell [ $(KERNEL_MAJ) -gt 5 ] && echo true)
+ KER_GE_5_10 := $(shell [ $(KERNEL_MIN) -ge 10 ] && echo true)
+
+ ifeq ($(KER_GT_5), true)
+ HIKEY960_ENABLE_AVF := true
+ else
+ ifeq ($(KERNEL_MAJ), 5)
+ # for kernel after 5.10
+ ifeq ($(KER_GE_5_10),true)
+ HIKEY960_ENABLE_AVF := true
+ endif
+ endif # end for 5.10
+ endif # end for 5.X
+ endif # end for mainline
+endif # end for HIKEY960_ENABLE_AVF
+
include $(LOCAL_PATH)/vendor-package-ver.mk
# Inherit the common device configuration
diff --git a/hikey960/BoardConfig.mk b/hikey960/BoardConfig.mk
index f7deb4c1..71a6273f 100644
--- a/hikey960/BoardConfig.mk
+++ b/hikey960/BoardConfig.mk
@@ -12,6 +12,18 @@ BOARD_KERNEL_CMDLINE := androidboot.hardware=hikey960 firmware_class.path=/vendo
BOARD_KERNEL_CMDLINE += androidboot.boot_devices=soc/ff3b0000.ufs
BOARD_KERNEL_CMDLINE += loglevel=15 androidboot.slot_suffix=_a
+ifeq ($(HIKEY960_ENABLE_AVF), true)
+# The GKI kernel set protected mode by default via gki_defconfig,
+# but hikey960 does not support the protected kvm mode, here overwriting
+# to make it possible to play with AVF in the non-protected mode.
+BOARD_KERNEL_CMDLINE += kvm-arm.mode=nvhe
+# hypervisor.version would be better to be the same as CROSVM_PLATFORM_VERSION in
+# packages/modules/Virtualization/virtualizationmanager/src/crosvm.rs
+BOARD_KERNEL_CMDLINE += androidboot.hypervisor.version=1.0.0
+BOARD_KERNEL_CMDLINE += androidboot.hypervisor.vm.supported=1
+BOARD_KERNEL_CMDLINE += androidboot.hypervisor.protected_vm.supported=0
+endif
+
ifeq ($(TARGET_BUILTIN_EDID), true)
BOARD_KERNEL_CMDLINE += drm_kms_helper.edid_firmware=edid/1920x1080.bin
endif
diff --git a/hikey960/device-hikey960.mk b/hikey960/device-hikey960.mk
index d3118653..7d178801 100644
--- a/hikey960/device-hikey960.mk
+++ b/hikey960/device-hikey960.mk
@@ -14,6 +14,13 @@
# limitations under the License.
#
+ifeq ($(HIKEY960_ENABLE_AVF), true)
+# Based on the instructions in the following link:
+# https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/master/microdroid/README.md
+# Tested with the android13-5.10 and android-mainline kernels.
+$(call inherit-product, packages/modules/Virtualization/apex/product_packages.mk)
+endif
+
# Enable Virtual A/B
AB_OTA_UPDATER := true
AB_OTA_PARTITIONS += \