Просмотр исходного кода

armsr: add Hyper-V on Arm64 support

This adds support for running as a guest on Windows Hyper-V
on arm64 Windows machines (like the Qualcomm Snapdragon X based
machines). The drivers are the same as Hyper-V on x86-64.

Limitations:
- The VM must be configured with a single vCPU only[1].

It appears Microsoft has made changes to Arm64 Hyper-V's timers
and other infrastructure in Windows 11 24H2 which require
kernel changes[2][3] to fix.

- You must turn off secure boot enforcement to boot OpenWrt, as
OpenWrt/armsr does not have a signed bootloader.

[1] https://www.reddit.com/r/Surface/comments/1dmzpzt/comment/lx4tatp/
[2] https://www.reddit.com/r/Surface/comments/1dmzpzt/comment/m5bqgrm/
[3] https://github.com/microsoft/WSL2-Linux-Kernel

Signed-off-by: Mathew McBride <[email protected]>
Link: https://github.com/openwrt/openwrt/pull/17675
Signed-off-by: Hauke Mehrtens <[email protected]>
Mathew McBride 11 месяцев назад
Родитель
Сommit
075571b023
1 измененных файлов с 12 добавлено и 0 удалено
  1. 12 0
      target/linux/armsr/armv8/config-6.6

+ 12 - 0
target/linux/armsr/armv8/config-6.6

@@ -264,6 +264,7 @@ CONFIG_DRM_BOCHS=y
 CONFIG_DRM_BRIDGE=y
 # CONFIG_DRM_FSL_LDB is not set
 CONFIG_DRM_GEM_SHMEM_HELPER=y
+# CONFIG_DRM_HYPERV is not set
 # CONFIG_DRM_IMX8QM_LDB is not set
 # CONFIG_DRM_IMX8QXP_LDB is not set
 # CONFIG_DRM_IMX8QXP_PIXEL_COMBINER is not set
@@ -308,6 +309,7 @@ CONFIG_FB_CFB_COPYAREA=y
 CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_IMAGEBLIT=y
 CONFIG_FB_CMDLINE=y
+CONFIG_FB_HYPERV=y
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_MX3=y
 # CONFIG_FB_SH_MOBILE_LCDC is not set
@@ -339,6 +341,7 @@ CONFIG_GPIO_ZYNQMP_MODEPIN=y
 CONFIG_HDMI=y
 CONFIG_HI3660_MBOX=y
 CONFIG_HI6220_MBOX=y
+# CONFIG_HID_HYPERV_MOUSE is not set
 CONFIG_HISILICON_ERRATUM_161600802=y
 CONFIG_HISILICON_LPC=y
 CONFIG_HISI_PMU=y
@@ -354,6 +357,12 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y
 # CONFIG_HW_RANDOM_HISI is not set
 # CONFIG_HW_RANDOM_HISTB is not set
 CONFIG_HW_RANDOM_VIRTIO=y
+CONFIG_HYPERV=y
+# CONFIG_HYPERV_BALLOON is not set
+CONFIG_HYPERV_KEYBOARD=y
+CONFIG_HYPERV_NET=y
+CONFIG_HYPERV_STORAGE=y
+# CONFIG_HYPERV_TESTING is not set
 CONFIG_I2C=y
 CONFIG_I2C_ALGOBIT=y
 CONFIG_I2C_ALTERA=y
@@ -408,6 +417,7 @@ CONFIG_IOMMU_SUPPORT=y
 # CONFIG_IPMMU_VMSA is not set
 # CONFIG_K3_DMA is not set
 CONFIG_KCMP=y
+CONFIG_KEYBOARD_ATKBD=y
 # CONFIG_KEYBOARD_IMX_SC_KEY is not set
 # CONFIG_KEYBOARD_SUN4I_LRADC is not set
 CONFIG_KSM=y
@@ -517,6 +527,7 @@ CONFIG_PCI_AARDVARK=y
 CONFIG_PCI_HISI=y
 CONFIG_PCI_HOST_THUNDER_ECAM=y
 CONFIG_PCI_HOST_THUNDER_PEM=y
+CONFIG_PCI_HYPERV=y
 CONFIG_PCI_IMX6=y
 CONFIG_PCI_IMX6_HOST=y
 CONFIG_PCI_IOV=y
@@ -700,6 +711,7 @@ CONFIG_SERIAL_SH_SCI_CONSOLE=y
 CONFIG_SERIAL_SH_SCI_DMA=y
 CONFIG_SERIAL_SH_SCI_EARLYCON=y
 CONFIG_SERIAL_SH_SCI_NR_UARTS=18
+CONFIG_SERIO=y
 # CONFIG_SMC91X is not set
 # CONFIG_SND_SOC_RCAR is not set
 # CONFIG_SND_SOC_RZ is not set