mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-05-01 19:31:13 +00:00
add win7 pcie quirk
Win7 is very picky about pcie assignments and fails with 'error 12' the way we add hospci devices. To combat that, we simply give the hostpci device a normal port instead. Start with address 0x10, so that we have space before those devices, and between them and the ones configured in pve-q35.cfg should we need it in the future. Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
86c9fafefc
commit
739ba34024
@ -3524,7 +3524,13 @@ sub config_to_command {
|
||||
my $pcie = $d->{pcie};
|
||||
if($pcie){
|
||||
die "q35 machine model is not enabled" if !$q35;
|
||||
$pciaddr = print_pcie_addr("hostpci$i");
|
||||
# win7 wants to have the pcie devices directly on the pcie bus
|
||||
# instead of in the root port
|
||||
if ($winversion == 7) {
|
||||
$pciaddr = print_pcie_addr("hostpci${i}bus0");
|
||||
} else {
|
||||
$pciaddr = print_pcie_addr("hostpci$i");
|
||||
}
|
||||
}else{
|
||||
$pciaddr = print_pci_addr("hostpci$i", $bridges, $arch, $machine_type);
|
||||
}
|
||||
|
@ -145,6 +145,11 @@ sub print_pcie_addr {
|
||||
hostpci1 => { bus => "ich9-pcie-port-2", addr => 0 },
|
||||
hostpci2 => { bus => "ich9-pcie-port-3", addr => 0 },
|
||||
hostpci3 => { bus => "ich9-pcie-port-4", addr => 0 },
|
||||
# win7 is picky about pcie assignments
|
||||
hostpci0bus0 => { bus => "pcie.0", addr => 16 },
|
||||
hostpci1bus0 => { bus => "pcie.0", addr => 17 },
|
||||
hostpci2bus0 => { bus => "pcie.0", addr => 18 },
|
||||
hostpci3bus0 => { bus => "pcie.0", addr => 19 },
|
||||
};
|
||||
|
||||
if (defined($devices->{$id}->{bus}) && defined($devices->{$id}->{addr})) {
|
||||
|
Loading…
Reference in New Issue
Block a user