]> git.proxmox.com Git - qemu-server.git/commitdiff
add ahci controller
authorDerumier Alexandre <aderumier@odiso.com>
Wed, 1 Feb 2012 12:25:20 +0000 (13:25 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 2 Feb 2012 05:21:47 +0000 (06:21 +0100)
Signed-off-by: Derumier Alexandre <aderumier@odiso.com>
PVE/QemuServer.pm

index 2518385189f13dd496fe014ba3914f640dd61ec2..54b92cc815c9cbd4cf5fc05c3b11cb133f96e7e9 100644 (file)
@@ -2181,6 +2181,7 @@ sub config_to_command {
 
     my $vollist = [];
     my $scsicontroller = {};
+    my $ahcicontroller = {};
 
     foreach_drive($conf, sub {
        my ($ds, $drive) = @_;
@@ -2211,7 +2212,14 @@ sub config_to_command {
            $scsicontroller->{$controller}=1;
         }
 
-       push @$cmd, '-drive',  print_drive_full($storecfg, $vmid, $drive);
+        if ($drive->{interface} eq 'sata') {
+           my $controller = int($drive->{index} / $MAX_SATA_DISKS);
+           $pciaddr = print_pci_addr("ahci$controller");
+           push @$cmd, '-device', "ahci,id=ahci$controller,multifunction=on$pciaddr" if !$ahcicontroller->{$controller};
+           $ahcicontroller->{$controller}=1;
+        }
+
+       push @$cmd, '-drive',print_drive_full($storecfg, $vmid, $drive);
        push @$cmd, '-device',print_drivedevice_full($storecfg,$vmid, $drive);
     });
 
@@ -3069,6 +3077,7 @@ sub print_pci_addr {
        watchdog => { bus => 0, addr => 4 },
        lsi0 => { bus => 0, addr => 5 },
        lsi1 => { bus => 0, addr => 6 },
+       ahci0 => { bus => 0, addr => 7 },
        virtio0 => { bus => 0, addr => 10 },
        virtio1 => { bus => 0, addr => 11 },
        virtio2 => { bus => 0, addr => 12 },