As bhyve for a long time didn't have a notion of the explicit SATA controller and created a controller for each drive, the bhyve driver in libvirt acted in a similar way and didn't care about the SATA controllers and assigned PCI addresses to drives directly, as the generated command will look like this anyway: 2:0,ahci-hd,somedisk.img This no longer makes sense because: 1. After commit c07d1c1c4f it's not possible to assign PCI addresses to disks 2. Bhyve now supports multiple disk drives for a controller, so it's going away from 1:1 controller:disk mapping, so the controller object starts to make more sense now So, this patch does the following: - Assign PCI address to SATA controllers (previously we didn't do this) - Assign disk addresses instead of PCI addresses for disks. Now, when building a bhyve command, we take PCI address not from the disk itself but from its controller - Assign addresses at XML parsing time using the assignAddressesCallback. This is done mainly for being able to verify address allocation via xml2xml tests - Adjust existing bhyvexml2{xml,argv} tests to chase the new address allocation This patch is largely based on work of Fabian Freyer. --- po/POTFILES.in | 1 + src/bhyve/bhyve_command.c | 143 ++++++++++++++++----- src/bhyve/bhyve_device.c | 33 ++--- src/bhyve/bhyve_domain.c | 60 ++++++++- .../bhyvexml2argvdata/bhyvexml2argv-acpiapic.args | 4 +- tests/bhyvexml2argvdata/bhyvexml2argv-base.args | 4 +- .../bhyvexml2argv-bhyveload-bootorder.args | 5 +- .../bhyvexml2argv-bhyveload-bootorder1.args | 5 +- .../bhyvexml2argv-bhyveload-bootorder3.args | 5 +- .../bhyvexml2argv-bhyveload-explicitargs.args | 4 +- tests/bhyvexml2argvdata/bhyvexml2argv-console.args | 2 +- .../bhyvexml2argv-custom-loader.args | 4 +- .../bhyvexml2argv-disk-cdrom-grub.args | 4 +- .../bhyvexml2argv-disk-cdrom.args | 4 +- .../bhyvexml2argv-grub-bootorder.args | 6 +- .../bhyvexml2argv-grub-bootorder2.args | 6 +- .../bhyvexml2argv-grub-defaults.args | 4 +- .../bhyvexml2argvdata/bhyvexml2argv-localtime.args | 4 +- tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.args | 4 +- .../bhyvexml2argv-serial-grub-nocons.args | 2 +- .../bhyvexml2argv-serial-grub.args | 2 +- tests/bhyvexml2argvdata/bhyvexml2argv-serial.args | 2 +- tests/bhyvexml2argvtest.c | 2 +- .../bhyvexml2xmlout-acpiapic.xml | 4 +- tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml | 4 +- .../bhyvexml2xmlout-bhyveload-bootorder.xml | 4 +- .../bhyvexml2xmlout-bhyveload-bootorder1.xml | 4 +- .../bhyvexml2xmlout-bhyveload-bootorder2.xml | 4 +- .../bhyvexml2xmlout-bhyveload-bootorder3.xml | 4 +- .../bhyvexml2xmlout-bhyveload-bootorder4.xml | 4 +- .../bhyvexml2xmlout-bhyveload-explicitargs.xml | 4 +- .../bhyvexml2xmlout-console.xml | 4 +- .../bhyvexml2xmlout-custom-loader.xml | 4 +- .../bhyvexml2xmlout-disk-cdrom-grub.xml | 4 +- .../bhyvexml2xmlout-disk-cdrom.xml | 4 +- .../bhyvexml2xmlout-grub-bootorder.xml | 4 +- .../bhyvexml2xmlout-grub-bootorder2.xml | 4 +- .../bhyvexml2xmlout-grub-defaults.xml | 4 +- .../bhyvexml2xmlout-localtime.xml | 4 +- .../bhyvexml2xmlout-macaddr.xml | 4 +- .../bhyvexml2xmlout-metadata.xml | 5 +- .../bhyvexml2xmlout-serial-grub-nocons.xml | 4 +- .../bhyvexml2xmlout-serial-grub.xml | 4 +- .../bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml | 4 +- tests/bhyvexml2xmltest.c | 2 + 45 files changed, 279 insertions(+), 118 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index e66bb7a3a..632aa7736 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -14,6 +14,7 @@ src/access/viraccessdriverpolkit.c src/access/viraccessmanager.c src/bhyve/bhyve_command.c src/bhyve/bhyve_device.c +src/bhyve/bhyve_domain.c src/bhyve/bhyve_driver.c src/bhyve/bhyve_monitor.c src/bhyve/bhyve_parse_command.c diff --git a/src/bhyve/bhyve_command.c b/src/bhyve/bhyve_command.c index 8a29977ff..a2fd40378 100644 --- a/src/bhyve/bhyve_command.c +++ b/src/bhyve/bhyve_command.c @@ -148,40 +148,97 @@ bhyveBuildConsoleArgStr(const virDomainDef *def, virCommandPtr cmd) } static int -bhyveBuildDiskArgStr(const virDomainDef *def ATTRIBUTE_UNUSED, - virDomainDiskDefPtr disk, - virCommandPtr cmd) +bhyveBuildAHCIControllerArgStr(const virDomainDef *def, + virDomainControllerDefPtr controller, + virConnectPtr conn, + virCommandPtr cmd) { - const char *bus_type; + virBuffer buf = VIR_BUFFER_INITIALIZER; + virBuffer device = VIR_BUFFER_INITIALIZER; const char *disk_source; + size_t i; + int ret = -1; + + for (i = 0; i < def->ndisks; i++) { + virDomainDiskDefPtr disk = def->disks[i]; + if (disk->bus != VIR_DOMAIN_DISK_BUS_SATA) + continue; + + if (disk->info.addr.drive.controller != controller->idx) + continue; + + VIR_DEBUG("disk %zu controller %d", i, controller->idx); + + if ((virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_FILE) && + (virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_VOLUME)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("unsupported disk type")); + goto error; + } + + if (virStorageTranslateDiskSourcePool(conn, disk) < 0) + goto error; + + disk_source = virDomainDiskGetSource(disk); + + if ((disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) && + (disk_source == NULL)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("cdrom device without source path " + "not supported")); + goto error; + } - switch (disk->bus) { - case VIR_DOMAIN_DISK_BUS_SATA: switch (disk->device) { case VIR_DOMAIN_DISK_DEVICE_DISK: - bus_type = "ahci-hd"; + if ((bhyveDriverGetCaps(conn) & BHYVE_CAP_AHCI32SLOT) != 0) + virBufferAsprintf(&device, ",hd:%s", disk_source); + else + virBufferAsprintf(&device, "-hd,%s", disk_source); break; case VIR_DOMAIN_DISK_DEVICE_CDROM: - bus_type = "ahci-cd"; + if ((bhyveDriverGetCaps(conn) & BHYVE_CAP_AHCI32SLOT) != 0) + virBufferAsprintf(&device, ",cd:%s", disk_source); + else + virBufferAsprintf(&device, "-cd,%s", disk_source); break; default: virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("unsupported disk device")); - return -1; - } - break; - case VIR_DOMAIN_DISK_BUS_VIRTIO: - if (disk->device == VIR_DOMAIN_DISK_DEVICE_DISK) { - bus_type = "virtio-blk"; - } else { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("unsupported disk device")); - return -1; + goto error; } - break; - default: + virBufferAddBuffer(&buf, &device); + virBufferFreeAndReset(&device); + } + + if (virBufferCheckError(&buf) <0) + goto error; + + virCommandAddArg(cmd, "-s"); + virCommandAddArgFormat(cmd, "%d:0,ahci%s", + controller->info.addr.pci.slot, + virBufferCurrentContent(&buf)); + + ret = 0; + error: + virBufferFreeAndReset(&buf); + return ret; +} + +static int +bhyveBuildVirtIODiskArgStr(const virDomainDef *def ATTRIBUTE_UNUSED, + virDomainDiskDefPtr disk, + virConnectPtr conn, + virCommandPtr cmd) +{ + const char *disk_source; + + if (virStorageTranslateDiskSourcePool(conn, disk) < 0) + return -1; + + if (disk->device != VIR_DOMAIN_DISK_DEVICE_DISK) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("unsupported disk bus type")); + _("unsupported disk device")); return -1; } @@ -194,17 +251,9 @@ bhyveBuildDiskArgStr(const virDomainDef *def ATTRIBUTE_UNUSED, disk_source = virDomainDiskGetSource(disk); - if ((disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) && - (disk_source == NULL)) { - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("cdrom device without source path " - "not supported")); - return -1; - } - virCommandAddArg(cmd, "-s"); - virCommandAddArgFormat(cmd, "%d:0,%s,%s", - disk->info.addr.pci.slot, bus_type, + virCommandAddArgFormat(cmd, "%d:0,virtio-blk,%s", + disk->info.addr.pci.slot, disk_source); return 0; @@ -278,6 +327,22 @@ virBhyveProcessBuildBhyveCmd(virConnectPtr conn, virCommandAddArgList(cmd, "-s", "0:0,hostbridge", NULL); /* Devices */ + for (i = 0; i < def->ncontrollers; i++) { + virDomainControllerDefPtr controller = def->controllers[i]; + switch (controller->type) { + case VIR_DOMAIN_CONTROLLER_TYPE_PCI: + if (controller->model != VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + "%s", _("unsupported PCI controller model: only PCI root supported")); + goto error; + } + break; + case VIR_DOMAIN_CONTROLLER_TYPE_SATA: + if (bhyveBuildAHCIControllerArgStr(def, controller, conn, cmd) < 0) + goto error; + break; + } + } for (i = 0; i < def->nnets; i++) { virDomainNetDefPtr net = def->nets[i]; if (bhyveBuildNetArgStr(def, net, cmd, dryRun) < 0) @@ -286,11 +351,19 @@ virBhyveProcessBuildBhyveCmd(virConnectPtr conn, for (i = 0; i < def->ndisks; i++) { virDomainDiskDefPtr disk = def->disks[i]; - if (virStorageTranslateDiskSourcePool(conn, disk) < 0) - goto error; - - if (bhyveBuildDiskArgStr(def, disk, cmd) < 0) + switch (disk->bus) { + case VIR_DOMAIN_DISK_BUS_SATA: + /* Handled by AHCI controller */ + break; + case VIR_DOMAIN_DISK_BUS_VIRTIO: + if (bhyveBuildVirtIODiskArgStr(def, disk, conn, cmd) < 0) + goto error; + break; + default: + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("unsupported disk device")); goto error; + } } if (bhyveBuildConsoleArgStr(def, cmd) < 0) goto error; diff --git a/src/bhyve/bhyve_device.c b/src/bhyve/bhyve_device.c index ca30e9f46..4c770516c 100644 --- a/src/bhyve/bhyve_device.c +++ b/src/bhyve/bhyve_device.c @@ -39,6 +39,9 @@ bhyveCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED, void *opaque) { int ret = -1; + if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE) + return 0; + virDomainPCIAddressSetPtr addrs = opaque; virPCIDeviceAddressPtr addr = &info->addr.pci; @@ -97,27 +100,9 @@ bhyveAssignDevicePCISlots(virDomainDefPtr def, if (virDomainPCIAddressReserveSlot(addrs, &lpc_addr, VIR_PCI_CONNECT_TYPE_PCI_DEVICE) < 0) goto error; - for (i = 0; i < def->nnets; i++) { - if (!virDeviceInfoPCIAddressWanted(&def->nets[i]->info)) - continue; - if (virDomainPCIAddressReserveNextSlot(addrs, - &def->nets[i]->info, - VIR_PCI_CONNECT_TYPE_PCI_DEVICE) < 0) - goto error; - } - - for (i = 0; i < def->ndisks; i++) { - if (def->disks[i]->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI && - !virPCIDeviceAddressIsEmpty(&def->disks[i]->info.addr.pci)) - continue; - if (virDomainPCIAddressReserveNextSlot(addrs, - &def->disks[i]->info, - VIR_PCI_CONNECT_TYPE_PCI_DEVICE) < 0) - goto error; - } - for (i = 0; i < def->ncontrollers; i++) { - if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) { + if ((def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) || + (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_SATA)) { if (def->controllers[i]->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT || !virDeviceInfoPCIAddressWanted(&def->controllers[i]->info)) continue; @@ -127,7 +112,15 @@ bhyveAssignDevicePCISlots(virDomainDefPtr def, VIR_PCI_CONNECT_TYPE_PCI_DEVICE) < 0) goto error; } + } + for (i = 0; i < def->nnets; i++) { + if (!virDeviceInfoPCIAddressWanted(&def->nets[i]->info)) + continue; + if (virDomainPCIAddressReserveNextSlot(addrs, + &def->nets[i]->info, + VIR_PCI_CONNECT_TYPE_PCI_DEVICE) < 0) + goto error; } return 0; diff --git a/src/bhyve/bhyve_domain.c b/src/bhyve/bhyve_domain.c index b4dc26767..76b4fac2c 100644 --- a/src/bhyve/bhyve_domain.c +++ b/src/bhyve/bhyve_domain.c @@ -24,6 +24,7 @@ #include "bhyve_device.h" #include "bhyve_domain.h" +#include "bhyve_capabilities.h" #include "viralloc.h" #include "virlog.h" @@ -73,13 +74,67 @@ bhyveDomainDefPostParse(virDomainDefPtr def, } static int -bhyveDomainDeviceDefPostParse(virDomainDeviceDefPtr dev ATTRIBUTE_UNUSED, - const virDomainDef *def ATTRIBUTE_UNUSED, +bhyveDomainDiskDefAssignAddress(bhyveConnPtr driver, + virDomainDiskDefPtr def, + const virDomainDef *vmdef ATTRIBUTE_UNUSED) +{ + int idx = virDiskNameToIndex(def->dst); + + if (idx < 0) { + virReportError(VIR_ERR_XML_ERROR, + _("Unknown disk name '%s' and no address specified"), + def->dst); + return -1; + } + + switch (def->bus) { + case VIR_DOMAIN_DISK_BUS_SATA: + def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE; + + if ((driver->bhyvecaps & BHYVE_CAP_AHCI32SLOT) != 0) { + def->info.addr.drive.controller = idx / 32; + def->info.addr.drive.unit = idx % 32; + } else { + def->info.addr.drive.controller = idx; + def->info.addr.drive.unit = 0; + } + + def->info.addr.drive.bus = 0; + break; + } + return 0; +} + +static int +bhyveDomainDeviceDefPostParse(virDomainDeviceDefPtr dev, + const virDomainDef *def, + virCapsPtr caps ATTRIBUTE_UNUSED, + unsigned int parseFlags ATTRIBUTE_UNUSED, + void *opaque, + void *parseOpaque ATTRIBUTE_UNUSED) +{ + bhyveConnPtr driver = opaque; + + if (dev->type == VIR_DOMAIN_DEVICE_DISK) { + virDomainDiskDefPtr disk = dev->data.disk; + + if (disk->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE && + bhyveDomainDiskDefAssignAddress(driver, disk, def) < 0) + return -1; + } + return 0; +} + +static int +bhyveDomainDefAssignAddresses(virDomainDef *def, virCapsPtr caps ATTRIBUTE_UNUSED, unsigned int parseFlags ATTRIBUTE_UNUSED, void *opaque ATTRIBUTE_UNUSED, void *parseOpaque ATTRIBUTE_UNUSED) { + if (bhyveDomainAssignAddresses(def, NULL) < 0) + return -1; + return 0; } @@ -95,4 +150,5 @@ virBhyveDriverCreateXMLConf(bhyveConnPtr driver) virDomainDefParserConfig virBhyveDriverDomainDefParserConfig = { .devicesPostParseCallback = bhyveDomainDeviceDefPostParse, .domainPostParseCallback = bhyveDomainDefPostParse, + .assignAddressesCallback = bhyveDomainDefAssignAddresses, }; diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.args b/tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.args index 930166f07..e71ceec84 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-acpiapic.args @@ -7,5 +7,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:81:c4:b1 \ --s 2:0,ahci-hd,/tmp/freebsd.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:81:c4:b1 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-base.args b/tests/bhyvexml2argvdata/bhyvexml2argv-base.args index 76d597cc6..547485ba5 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-base.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-base.args @@ -5,5 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:b9:94:02 \ --s 2:0,ahci-hd,/tmp/freebsd.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:b9:94:02 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder.args b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder.args index a303ee3c5..4d7c7c92a 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder.args @@ -5,6 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:8d:10:e1 \ --s 2:0,ahci-hd,/tmp/freebsd.img \ --s 4:0,ahci-cd,/tmp/cdrom.iso bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img,cd:/tmp/cdrom.iso \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:8d:10:e1 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder1.args b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder1.args index 04601319b..8ec9799cc 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder1.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder1.args @@ -5,6 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:92:68:0e \ --s 2:0,ahci-hd,/tmp/freebsd.img \ --s 4:0,ahci-cd,/tmp/cdrom.iso bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img,cd:/tmp/cdrom.iso \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:92:68:0e bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder3.args b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder3.args index 79631c3a6..f1c0bf398 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder3.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-bootorder3.args @@ -5,6 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:7a:f5:a4 \ --s 2:0,ahci-hd,/tmp/freebsd.img \ --s 4:0,ahci-cd,/tmp/cdrom.iso bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img,cd:/tmp/cdrom.iso \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:7a:f5:a4 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-explicitargs.args b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-explicitargs.args index e80ff026a..17a1c8380 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-explicitargs.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-explicitargs.args @@ -5,5 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:11:bd:26 \ --s 2:0,ahci-hd,/tmp/freebsd.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:11:bd:26 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-console.args b/tests/bhyvexml2argvdata/bhyvexml2argv-console.args index bd2892c47..6ab91ae7e 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-console.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-console.args @@ -5,7 +5,7 @@ -H \ -P \ -s 0:0,hostbridge \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:b1:42:eb \ --s 2:0,ahci-hd,/tmp/freebsd.img \ -s 1,lpc \ -l com1,/dev/nmdm0A bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-custom-loader.args b/tests/bhyvexml2argvdata/bhyvexml2argv-custom-loader.args index 7a0eeb2fc..f6bfc7837 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-custom-loader.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-custom-loader.args @@ -5,5 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:35:99:c2 \ --s 2:0,ahci-hd,/tmp/freebsd.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:35:99:c2 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.args b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.args index 907751c6c..72f1d3538 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom-grub.args @@ -5,5 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:6f:6a:53 \ --s 2:0,ahci-cd,/tmp/cdrom.iso bhyve +-s 2:0,ahci,cd:/tmp/cdrom.iso \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:6f:6a:53 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.args b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.args index 180650555..3e61b8fc8 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-disk-cdrom.args @@ -5,5 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:e3:ec:9b \ --s 2:0,ahci-cd,/tmp/cdrom.iso bhyve +-s 2:0,ahci,cd:/tmp/cdrom.iso \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:e3:ec:9b bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder.args b/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder.args index 1b38be1ab..e64e67b39 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder.args @@ -5,7 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:f4:6c:be \ --s 2:0,ahci-hd,/tmp/freebsd1.img \ --s 4:0,ahci-hd,/tmp/freebsd2.img \ --s 6:0,ahci-hd,/tmp/freebsd3.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd1.img,hd:/tmp/freebsd2.img,hd:/tmp/freebsd3.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:f4:6c:be bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder2.args b/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder2.args index ae510d50d..872a69df3 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder2.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-grub-bootorder2.args @@ -5,7 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:0e:d2:6f \ --s 2:0,ahci-hd,/tmp/freebsd1.img \ --s 4:0,ahci-hd,/tmp/freebsd2.img \ --s 6:0,ahci-hd,/tmp/freebsd3.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd1.img,hd:/tmp/freebsd2.img,hd:/tmp/freebsd3.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:0e:d2:6f bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.args b/tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.args index 9457ce955..3ba5c1160 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-grub-defaults.args @@ -5,5 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:ee:f5:79 \ --s 2:0,ahci-hd,/tmp/freebsd.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:ee:f5:79 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-localtime.args b/tests/bhyvexml2argvdata/bhyvexml2argv-localtime.args index 3f62aa7fb..307d888c1 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-localtime.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-localtime.args @@ -4,5 +4,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:82:ca:a3 \ --s 2:0,ahci-hd,/tmp/freebsd.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:82:ca:a3 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.args b/tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.args index 677a466ba..5e13a9742 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.args @@ -5,5 +5,5 @@ -H \ -P \ -s 0:0,hostbridge \ --s 3:0,virtio-net,faketapdev,mac=52:54:00:22:ee:11 \ --s 2:0,ahci-hd,/tmp/freebsd.img bhyve +-s 2:0,ahci,hd:/tmp/freebsd.img \ +-s 3:0,virtio-net,faketapdev,mac=52:54:00:22:ee:11 bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.args b/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.args index 4811d491b..ff69ed3a7 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub-nocons.args @@ -5,7 +5,7 @@ -H \ -P \ -s 0:0,hostbridge \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:a7:cd:5b \ --s 2:0,ahci-hd,/tmp/freebsd.img \ -s 1,lpc \ -l com1,/dev/nmdm0A bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.args b/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.args index efdbd63a5..313724dc9 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-serial-grub.args @@ -5,7 +5,7 @@ -H \ -P \ -s 0:0,hostbridge \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:f0:72:11 \ --s 2:0,ahci-hd,/tmp/freebsd.img \ -s 1,lpc \ -l com1,/dev/nmdm0A bhyve diff --git a/tests/bhyvexml2argvdata/bhyvexml2argv-serial.args b/tests/bhyvexml2argvdata/bhyvexml2argv-serial.args index ccce58263..059e45707 100644 --- a/tests/bhyvexml2argvdata/bhyvexml2argv-serial.args +++ b/tests/bhyvexml2argvdata/bhyvexml2argv-serial.args @@ -5,7 +5,7 @@ -H \ -P \ -s 0:0,hostbridge \ +-s 2:0,ahci,hd:/tmp/freebsd.img \ -s 3:0,virtio-net,faketapdev,mac=52:54:00:4f:f3:5b \ --s 2:0,ahci-hd,/tmp/freebsd.img \ -s 1,lpc \ -l com1,/dev/nmdm0A bhyve diff --git a/tests/bhyvexml2argvtest.c b/tests/bhyvexml2argvtest.c index a615c8ca1..6d0a9e1f8 100644 --- a/tests/bhyvexml2argvtest.c +++ b/tests/bhyvexml2argvtest.c @@ -155,7 +155,7 @@ mymain(void) DO_TEST_FULL(name, FLAG_EXPECT_PARSE_ERROR) driver.grubcaps = BHYVE_GRUB_CAP_CONSDEV; - driver.bhyvecaps = BHYVE_CAP_RTC_UTC; + driver.bhyvecaps = BHYVE_CAP_RTC_UTC | BHYVE_CAP_AHCI32SLOT; DO_TEST("base"); DO_TEST("acpiapic"); diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml index ef57e0be6..0a9b284ff 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-acpiapic.xml @@ -24,7 +24,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:81:c4:b1'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml index 0ff1a3c6b..56ff3bd14 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:b9:94:02'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml index 6c092bb8d..c4705d9a8 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder.xml @@ -27,7 +27,9 @@ <address type='drive' controller='0' bus='0' target='4' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:8d:10:e1'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml index f9e55d6e3..ebc781e74 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder1.xml @@ -27,7 +27,9 @@ <address type='drive' controller='0' bus='0' target='4' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:92:68:0e'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml index f75471f84..389355f91 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder2.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:1e:63:25'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml index 8b9aeea18..10ba21793 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder3.xml @@ -27,7 +27,9 @@ <address type='drive' controller='0' bus='0' target='4' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:7a:f5:a4'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml index a688d8a76..2215c7327 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-bootorder4.xml @@ -28,7 +28,9 @@ <address type='drive' controller='0' bus='0' target='4' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:fe:97:82'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml index bb7193037..6c6ed114d 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-bhyveload-explicitargs.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:11:bd:26'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml index bf9d6ad8a..78d4d3001 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-console.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:b1:42:eb'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml index 53fd6b54b..8bb0d53b7 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-custom-loader.xml @@ -21,7 +21,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:35:99:c2'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml index acdc4badb..b624f3d97 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom-grub.xml @@ -21,7 +21,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:6f:6a:53'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml index 23f3f6f47..ef3cd9fff 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-disk-cdrom.xml @@ -21,7 +21,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:e3:ec:9b'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml index f36daae10..da55c0aae 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder.xml @@ -33,7 +33,9 @@ <address type='drive' controller='0' bus='0' target='6' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:f4:6c:be'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml index 825ccd78f..3974d5bc5 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-bootorder2.xml @@ -35,7 +35,9 @@ <address type='drive' controller='0' bus='0' target='6' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:0e:d2:6f'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml index b7f0a4886..270d41c83 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-grub-defaults.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:ee:f5:79'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml index 95b01db2f..2d1b729e6 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-localtime.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:82:ca:a3'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml index 842194caa..6710818ee 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-macaddr.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:22:ee:11'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml index b44b6bd9e..5c5109404 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-metadata.xml @@ -24,11 +24,14 @@ <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:ad:55:51'/> <source bridge='virbr0'/> <model type='virtio'/> + <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> </devices> </domain> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml index f4ace3979..845cb09e9 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub-nocons.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:a7:cd:5b'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml index f404ee7e3..6c8fda32a 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial-grub.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:f0:72:11'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml index d713deaee..eb50cc05a 100644 --- a/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml +++ b/tests/bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml @@ -20,7 +20,9 @@ <address type='drive' controller='0' bus='0' target='2' unit='0'/> </disk> <controller type='pci' index='0' model='pci-root'/> - <controller type='sata' index='0'/> + <controller type='sata' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> + </controller> <interface type='bridge'> <mac address='52:54:00:4f:f3:5b'/> <source bridge='virbr0'/> diff --git a/tests/bhyvexml2xmltest.c b/tests/bhyvexml2xmltest.c index 641ddb33e..93ab3800c 100644 --- a/tests/bhyvexml2xmltest.c +++ b/tests/bhyvexml2xmltest.c @@ -64,6 +64,8 @@ mymain(void) # define DO_TEST_DIFFERENT(name) \ DO_TEST_FULL(name, true) + driver.bhyvecaps = BHYVE_CAP_AHCI32SLOT; + DO_TEST_DIFFERENT("acpiapic"); DO_TEST_DIFFERENT("base"); DO_TEST_DIFFERENT("bhyveload-bootorder"); -- 2.11.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list