summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-03-17 01:10:48 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-03-17 01:10:48 +0000
commitaa2c50f6abab976c829238f508ecd009178a9e71 (patch)
treec692e0963bb2bee0ebde37b821eeeccb367e0f06
parentab59ed88e2d109e051cce9203f6af7bbe6ad8c50 (diff)
parent51b130fad094da3ca0b168e51eadccb299f280e7 (diff)
downloadhikey-android14-d1-s2-release.tar.gz
Change-Id: I5356e21de1c119dbfdf53e7b42c2701e3bef710d
-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 += \