问题描述
我们正在H1上开发 UEFI BIOS,需要在Linux中启用KVM虚拟化。内核已启用KVM和虚拟化支持,但APPSBL/UEFI和HLOS均从EL1启动。
高通 Linux Boot Guide 在 XBL_CONFIG 的 UEFI 配置 DT(`ueficfg.dtsi`)中定义了两种独立启动模式:
0x1 - BOOT_TYPE_LINUX:Gunyah Hypervisor
0x2 - BOOT_TYPE_LINUX_WITH_KVM:Linux KVM
文档说明,在 KVM 模式下,UEFI 会在ExitBootServices阶段关闭 Qualcomm Hypervisor,并将 Linux 交付到 EL2。
文档还要求DT选择el2kvm overlay,并刷写xbl_config_kvm.elf。但我们的BSP没有这些文件,其中create_xbl_config.json仅包含 PMIC 和 DDR/DSF 数据,没有ueficfg.dts和OsConfigTableSelection配置。
我们的BIOS使用ACPI方案。XBL_CONFIG 中的配置 DT 属于固件配置,并非传递给 Linux 的硬件描述 DTB,因此ACPI启动不妨碍选择KVM启动模式。但在 ACPI 模式下是否仍需VendorDtbOverlays=el2kvm,目前无法确认。
参考资料
请协助确认
1. 是我们的BSP遗漏了KVM配置和相关文件,还是 QCM6490.WP 本身不支持KVM Host/NS-EL2?
2. 如果支持,烦请提供ueficfg.dts、已签名xbl_config_kvm.elf,以及相关组件。
3. 请确认ACPI下的虚拟化启用方法,并确认是否需要VendorDtbOverlays=el2kvm。
谢谢!