|
| 1 | +diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm |
| 2 | +index a958eb77..514d52ec 100644 |
| 3 | +--- a/PVE/QemuServer.pm |
| 4 | ++++ b/PVE/QemuServer.pm |
| 5 | +@@ -124,12 +124,45 @@ my $OVMF = { |
| 6 | + "$EDK2_FW_BASE/LOONGARCH64_VIRT_CODE.fd", |
| 7 | + "$EDK2_FW_BASE/LOONGARCH64_VIRT_VARS.fd", |
| 8 | + ], |
| 9 | ++ '4m-no-smm' => [ |
| 10 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_CODE.fd", |
| 11 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_VARS.fd", |
| 12 | ++ ], |
| 13 | ++ '4m-no-smm-ms' => [ |
| 14 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_CODE.fd", |
| 15 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_VARS.fd", |
| 16 | ++ ], |
| 17 | ++ '4m' => [ |
| 18 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_CODE.fd", |
| 19 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_VARS.fd", |
| 20 | ++ ], |
| 21 | ++ '4m-ms' => [ |
| 22 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_CODE.fd", |
| 23 | ++ "$EDK2_FW_BASE/LOONGARCH64_VIRT_VARS.fd", |
| 24 | ++ ], |
| 25 | + }, |
| 26 | + riscv64 => { |
| 27 | + default => [ |
| 28 | + "$EDK2_FW_BASE/RISCV_VIRT_CODE.fd", |
| 29 | + "$EDK2_FW_BASE/RISCV_VIRT_VARS.fd", |
| 30 | + ], |
| 31 | ++ '4m-no-smm' => [ |
| 32 | ++ "$EDK2_FW_BASE/RISCV_VIRT_CODE.fd", |
| 33 | ++ "$EDK2_FW_BASE/RISCV_VIRT_VARS.fd", |
| 34 | ++ ], |
| 35 | ++ '4m-no-smm-ms' => [ |
| 36 | ++ "$EDK2_FW_BASE/RISCV_VIRT_CODE.fd", |
| 37 | ++ "$EDK2_FW_BASE/RISCV_VIRT_VARS.fd", |
| 38 | ++ ], |
| 39 | ++ '4m' => [ |
| 40 | ++ "$EDK2_FW_BASE/RISCV_VIRT_CODE.fd", |
| 41 | ++ "$EDK2_FW_BASE/RISCV_VIRT_VARS.fd", |
| 42 | ++ ], |
| 43 | ++ '4m-ms' => [ |
| 44 | ++ "$EDK2_FW_BASE/RISCV_VIRT_CODE.fd", |
| 45 | ++ "$EDK2_FW_BASE/RISCV_VIRT_VARS.fd", |
| 46 | ++ ], |
| 47 | ++ |
| 48 | + }, |
| 49 | + |
| 50 | + }; |
| 51 | +@@ -3719,7 +3752,10 @@ sub config_to_command { |
| 52 | + |
| 53 | + push @$cmd, '-name', "$vmname,debug-threads=on"; |
| 54 | + |
| 55 | +- push @$cmd, '-no-shutdown'; |
| 56 | ++ # fix nvram poweroff issue on loongarch |
| 57 | ++ if ( $arch ne 'loongarch64'){ |
| 58 | ++ push @$cmd, '-no-shutdown'; |
| 59 | ++ } |
| 60 | + |
| 61 | + my $use_virtio = 0; |
| 62 | + |
| 63 | +@@ -3765,16 +3801,8 @@ sub config_to_command { |
| 64 | + |
| 65 | + my ($code_drive_str, $var_drive_str) = |
| 66 | + print_ovmf_drive_commandlines($conf, $storecfg, $vmid, $arch, $q35, $version_guard); |
| 67 | +- if ($arch eq 'loongarch64') { |
| 68 | +- push $cmd->@*, '-bios','/usr/share/pve-edk2-firmware//LOONGARCH64_VIRT_CODE.fd'; |
| 69 | +- }elsif ($arch eq 'riscv64') { |
| 70 | +- push @$cmd, '-bios','/usr/share/pve-edk2-firmware//fw_dynamic.bin'; |
| 71 | +- push @$cmd, '-drive', $code_drive_str; |
| 72 | +- }else{ |
| 73 | +- push $cmd->@*, '-drive', $code_drive_str; |
| 74 | +- push $cmd->@*, '-drive', $var_drive_str; |
| 75 | +- } |
| 76 | +- |
| 77 | ++ push $cmd->@*, '-drive', $code_drive_str; |
| 78 | ++ push $cmd->@*, '-drive', $var_drive_str; |
| 79 | + } |
| 80 | + |
| 81 | + if ($q35) { # tell QEMU to load q35 config early |
| 82 | +@@ -3900,7 +3928,7 @@ sub config_to_command { |
| 83 | + |
| 84 | + push @$cmd, '-boot', "menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg"; |
| 85 | + |
| 86 | +- push $machineFlags->@*, 'acpi=off' if defined($conf->{acpi}) && $conf->{acpi} == 0; |
| 87 | ++ push $machineFlags->@*, 'acpi=off' if defined($conf->{acpi}) && $conf->{acpi} == 0 && $arch ne 'loongarch64'; |
| 88 | + |
| 89 | + push @$cmd, '-no-reboot' if defined($conf->{reboot}) && $conf->{reboot} == 0; |
| 90 | + |
| 91 | +diff --git a/debian/control b/debian/control |
| 92 | +index 7e79ee09..94995a68 100644 |
| 93 | +--- a/debian/control |
| 94 | ++++ b/debian/control |
| 95 | +@@ -51,9 +51,10 @@ Depends: dbus, |
| 96 | + pve-edk2-firmware-legacy | pve-edk2-firmware (<< 4~), |
| 97 | + pve-edk2-firmware-ovmf | pve-edk2-firmware (>= 3.20210831-1), |
| 98 | + pve-edk2-firmware-aarch64, |
| 99 | ++ pve-edk2-firmware-loongarch64 [loong64], |
| 100 | + pve-firewall (>= 5.0.4), |
| 101 | + pve-ha-manager (>= 3.0-9), |
| 102 | +- pve-qemu-kvm (>= 7.1~), |
| 103 | ++ pve-qemu-kvm (>= 9.0~), |
| 104 | + socat, |
| 105 | + swtpm, |
| 106 | + swtpm-tools, |
0 commit comments