@@ -806,7 +806,7 @@ ETEXI
{
.name = "pci_add",
.args_type = "pci_addr:s,type:s,opts:s?",
- .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage|host [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]... [host=02:00.0[,name=string][,dma=none]",
+ .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
.help = "hot-add PCI device",
.mhandler.cmd = pci_device_hot_add,
},
@@ -1561,69 +1561,6 @@ static void assign_register_devices(void)
device_init(assign_register_devices)
-
-/*
- * Syntax to assign device:
- *
- * -pcidevice host=bus:dev.func[,dma=none][,name=Foo]
- *
- * Example:
- * -pcidevice host=00:13.0,dma=pvdma
- *
- * dma can currently only be 'none' to disable iommu support.
- */
-QemuOpts *add_assigned_device(const char *arg)
-{
- QemuOpts *opts = NULL;
- char host[64], id[64], dma[8];
- int r;
-
- r = get_param_value(host, sizeof(host), "host", arg);
- if (!r)
- goto bad;
- r = get_param_value(id, sizeof(id), "id", arg);
- if (!r)
- r = get_param_value(id, sizeof(id), "name", arg);
- if (!r)
- r = get_param_value(id, sizeof(id), "host", arg);
-
- opts = qemu_opts_create(qemu_find_opts("device"), id, 0);
- if (!opts)
- goto bad;
- qemu_opt_set(opts, "driver", "pci-assign");
- qemu_opt_set(opts, "host", host);
-
-#ifdef KVM_CAP_IOMMU
- r = get_param_value(dma, sizeof(dma), "dma", arg);
- if (r && !strncmp(dma, "none", 4))
- qemu_opt_set(opts, "iommu", "0");
-#endif
- qemu_opts_print(opts, NULL);
- return opts;
-
-bad:
- fprintf(stderr, "pcidevice argument parse error; "
- "please check the help text for usage\n");
- if (opts)
- qemu_opts_del(opts);
- return NULL;
-}
-
-void add_assigned_devices(PCIBus *bus, const char **devices, int n_devices)
-{
- QemuOpts *opts;
- int i;
-
- for (i = 0; i < n_devices; i++) {
- opts = add_assigned_device(devices[i]);
- if (opts == NULL) {
- fprintf(stderr, "Could not add assigned device %s\n", devices[i]);
- exit(1);
- }
- /* generic code will call qdev_device_add() for the device */
- }
-}
-
/*
* Scan the assigned devices for the devices that have an option ROM, and then
* load the corresponding ROM data to RAM. If an error occurs while loading an
@@ -114,13 +114,6 @@ typedef struct AssignedDevice {
QLIST_ENTRY(AssignedDevice) next;
} AssignedDevice;
-QemuOpts *add_assigned_device(const char *arg);
-void add_assigned_devices(PCIBus *bus, const char **devices, int n_devices);
void assigned_dev_update_irqs(void);
-#define MAX_DEV_ASSIGN_CMDLINE 8
-
-extern const char *assigned_devices[MAX_DEV_ASSIGN_CMDLINE];
-extern int assigned_devices_index;
-
#endif /* __DEVICE_ASSIGNMENT_H__ */
@@ -635,12 +635,6 @@ static void ipf_init1(ram_addr_t ram_size,
unit_id++;
}
}
-
-#ifdef CONFIG_KVM_DEVICE_ASSIGNMENT
- if (kvm_enabled())
- add_assigned_devices(pci_bus, assigned_devices, assigned_devices_index);
-#endif /* CONFIG_KVM_DEVICE_ASSIGNMENT */
-
}
static void ipf_init_pci(ram_addr_t ram_size,
@@ -1105,10 +1105,4 @@ void pc_pci_device_init(PCIBus *pci_bus)
extboot_init(info->bdrv);
}
-
-#ifdef CONFIG_KVM_DEVICE_ASSIGNMENT
- if (kvm_enabled()) {
- add_assigned_devices(pci_bus, assigned_devices, assigned_devices_index);
- }
-#endif /* CONFIG_KVM_DEVICE_ASSIGNMENT */
}
@@ -230,24 +230,6 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon,
return dev;
}
-#ifdef CONFIG_KVM_DEVICE_ASSIGNMENT
-static PCIDevice *qemu_pci_hot_assign_device(Monitor *mon,
- const char *devaddr,
- const char *opts_str)
-{
- QemuOpts *opts;
- DeviceState *dev;
-
- opts = add_assigned_device(opts_str);
- if (opts == NULL) {
- monitor_printf(mon, "Error adding device; check syntax\n");
- return NULL;
- }
- dev = qdev_device_add(opts);
- return DO_UPCAST(PCIDevice, qdev, dev);
-}
-#endif /* CONFIG_KVM_DEVICE_ASSIGNMENT */
-
void pci_device_hot_add(Monitor *mon, const QDict *qdict)
{
PCIDevice *dev = NULL;
@@ -271,10 +253,6 @@ void pci_device_hot_add(Monitor *mon, const QDict *qdict)
dev = qemu_pci_hot_add_nic(mon, pci_addr, opts);
} else if (strcmp(type, "storage") == 0) {
dev = qemu_pci_hot_add_storage(mon, pci_addr, opts);
-#ifdef CONFIG_KVM_DEVICE_ASSIGNMENT
- } else if (strcmp(type, "host") == 0) {
- dev = qemu_pci_hot_assign_device(mon, pci_addr, opts);
-#endif /* CONFIG_KVM_DEVICE_ASSIGNMENT */
} else {
monitor_printf(mon, "invalid type: %s\n", type);
}
@@ -2278,11 +2278,6 @@ DEF("no-kvm-pit-reinjection", 0, QEMU_OPTION_no_kvm_pit_reinjection,
"-no-kvm-pit-reinjection\n"
" disable KVM kernel mode PIT interrupt reinjection\n",
QEMU_ARCH_I386)
-DEF("pcidevice", HAS_ARG, QEMU_OPTION_pcidevice,
- "-pcidevice host=[seg:]bus:dev.func[,dma=none][,name=string]\n"
- " expose a PCI device to the guest OS\n"
- " dma=none: don't perform any dma translations (default is to use an iommu)\n"
- " 'string' is used in log output\n", QEMU_ARCH_I386)
DEF("enable-nesting", 0, QEMU_OPTION_enable_nesting,
"-enable-nesting enable support for running a VM inside the VM (AMD only)\n", QEMU_ARCH_I386)
DEF("nvram", HAS_ARG, QEMU_OPTION_nvram,
@@ -204,8 +204,6 @@ int win2k_install_hack = 0;
int rtc_td_hack = 0;
int usb_enabled = 0;
int singlestep = 0;
-const char *assigned_devices[MAX_DEV_ASSIGN_CMDLINE];
-int assigned_devices_index;
int smp_cpus = 1;
int max_cpus = 0;
int smp_cores = 1;
@@ -1885,8 +1883,6 @@ int main(int argc, char **argv, char **envp)
node_cpumask[i] = 0;
}
- assigned_devices_index = 0;
-
nb_numa_nodes = 0;
nb_nics = 0;
@@ -2502,16 +2498,6 @@ int main(int argc, char **argv, char **envp)
break;
}
#endif
-#if defined(TARGET_I386) || defined(TARGET_X86_64) || defined(TARGET_IA64) || defined(__linux__)
- case QEMU_OPTION_pcidevice:
- if (assigned_devices_index >= MAX_DEV_ASSIGN_CMDLINE) {
- fprintf(stderr, "Too many assigned devices\n");
- exit(1);
- }
- assigned_devices[assigned_devices_index] = optarg;
- assigned_devices_index++;
- break;
-#endif
case QEMU_OPTION_usb:
usb_enabled = 1;
break;