Reland Add microdroid_16k
So far only non-protected VMs can boot with 16k kernel.
Support for microdroid_16k pvms is tracked in b/376870129.
Bug: 317201718
Bug: 376517173
Bug: 333730505
Bug: 376870129
Test: adb shell /apex/com.android.virt/bin/vm run-microdroid \
--os microdroid_16k \
--debug full
Test: atest MicrodropidTests
Test: atest MicrodroidHostTestCases
Test: atest virtualizationmanager_device_test
Test: presubmit
Change-Id: I0fe5cd431b16f57e5bcc51146691fd0368d30818
diff --git a/build/microdroid/initrd/Android.bp b/build/microdroid/initrd/Android.bp
index 6d45417..7331e0b 100644
--- a/build/microdroid/initrd/Android.bp
+++ b/build/microdroid/initrd/Android.bp
@@ -84,6 +84,10 @@
":microdroid_vbmeta_bootconfig_gen",
]
+bootconfigs_x86_64_16k = bootconfigs_x86_64 + [
+ ":microdroid_16k_bootconfig_x86_64_gen",
+]
+
java_genrule {
name: "microdroid_initrd_debuggable_arm64",
tools: ["initrd_bootconfig"],
@@ -118,6 +122,17 @@
}
java_genrule {
+ name: "microdroid_16k_initrd_debuggable_x86_64",
+ tools: ["initrd_bootconfig"],
+ srcs: [
+ ":microdroid_initrd_gen",
+ ":microdroid_bootconfig_debuggable_src",
+ ] + bootconfigs_x86_64_16k,
+ out: ["microdroid_16k_initrd_debuggable_x86_64"],
+ cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)",
+}
+
+java_genrule {
name: "microdroid_gki-android15-6.6_initrd_debuggable_x86_64",
tools: ["initrd_bootconfig"],
srcs: [
@@ -162,6 +177,17 @@
}
java_genrule {
+ name: "microdroid_16k_initrd_normal_x86_64",
+ tools: ["initrd_bootconfig"],
+ srcs: [
+ ":microdroid_initrd_gen",
+ ":microdroid_bootconfig_normal_src",
+ ] + bootconfigs_x86_64_16k,
+ out: ["microdroid_16k_initrd_normal_x86_64"],
+ cmd: "$(location initrd_bootconfig) attach --output $(out) $(in)",
+}
+
+java_genrule {
name: "microdroid_gki-android15-6.6_initrd_normal_x86_64",
tools: ["initrd_bootconfig"],
srcs: [
@@ -188,6 +214,24 @@
}
prebuilt_etc {
+ name: "microdroid_16k_initrd_debuggable",
+ // We don't have ramdisk for architectures other than x86_64 & arm64
+ src: ":empty_file",
+ arch: {
+ // For x86_64 we emulate 16k by adding `page_shift=14` to bootconfig, that's why we need
+ // separate initrd.
+ x86_64: {
+ src: ":microdroid_16k_initrd_debuggable_x86_64",
+ },
+ // For arm64, the initrd for 16k kernel is the same.
+ arm64: {
+ src: ":microdroid_initrd_debuggable_arm64",
+ },
+ },
+ filename: "microdroid_16k_initrd_debuggable.img",
+}
+
+prebuilt_etc {
name: "microdroid_gki-android15-6.6_initrd_debuggable",
// We don't have ramdisk for architectures other than x86_64 & arm64
src: ":empty_file",
@@ -218,6 +262,24 @@
}
prebuilt_etc {
+ name: "microdroid_16k_initrd_normal",
+ // We don't have ramdisk for architectures other than x86_64 & arm64
+ src: ":empty_file",
+ arch: {
+ // For x86_64 we emulate 16k by adding `page_shift=14` to bootconfig, that's why we need
+ // separate initrd.
+ x86_64: {
+ src: ":microdroid_16k_initrd_normal_x86_64",
+ },
+ // For arm64, the initrd for 16k kernel is the same.
+ arm64: {
+ src: ":microdroid_initrd_normal_arm64",
+ },
+ },
+ filename: "microdroid_16k_initrd_normal.img",
+}
+
+prebuilt_etc {
name: "microdroid_gki-android15-6.6_initrd_normal",
// We don't have ramdisk for architectures other than x86_64 & arm64
src: ":empty_file",