Modern virtualized guests are expected to be deployed with the XHCI controller which supports all of USB 1, 2 and 3. The UHCI OCHI and ECHI hosts, however, have all been widely used in virtualization scenarios historically, especially on x86. Indeed the -usb flag will enable UCHI by default.
So while these are undesirable hosts in general, this marks them as secure for virtualization use cases. Signed-off-by: Daniel P. Berrangé <[email protected]> --- hw/usb/hcd-ehci-pci.c | 1 + hw/usb/hcd-ehci-sysbus.c | 7 +++++++ hw/usb/hcd-ohci-pci.c | 1 + hw/usb/hcd-ohci-sysbus.c | 1 + hw/usb/hcd-uhci.c | 1 + 5 files changed, 11 insertions(+) diff --git a/hw/usb/hcd-ehci-pci.c b/hw/usb/hcd-ehci-pci.c index fd35d253407..2080ea2913a 100644 --- a/hw/usb/hcd-ehci-pci.c +++ b/hw/usb/hcd-ehci-pci.c @@ -219,6 +219,7 @@ static void ehci_pci_register_types(void) TypeInfo ehci_type_info = { .parent = TYPE_PCI_EHCI, .class_init = ehci_data_class_init, + .secure = true, }; int i; diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c index 7f7c7f8a2f1..0af658d2b68 100644 --- a/hw/usb/hcd-ehci-sysbus.c +++ b/hw/usb/hcd-ehci-sysbus.c @@ -247,32 +247,38 @@ static const TypeInfo ehci_sysbus_types[] = { .name = TYPE_PLATFORM_EHCI, .parent = TYPE_SYS_BUS_EHCI, .class_init = ehci_platform_class_init, + .secure = true, }, { .name = TYPE_EXYNOS4210_EHCI, .parent = TYPE_SYS_BUS_EHCI, .class_init = ehci_exynos4210_class_init, + .secure = true, }, { .name = TYPE_AW_H3_EHCI, .parent = TYPE_SYS_BUS_EHCI, .class_init = ehci_aw_h3_class_init, + .secure = true, }, { .name = TYPE_NPCM7XX_EHCI, .parent = TYPE_SYS_BUS_EHCI, .class_init = ehci_npcm7xx_class_init, + .secure = true, }, { .name = TYPE_TEGRA2_EHCI, .parent = TYPE_SYS_BUS_EHCI, .class_init = ehci_tegra2_class_init, + .secure = true, }, { .name = TYPE_PPC4xx_EHCI, .parent = TYPE_SYS_BUS_EHCI, .class_init = ehci_ppc4xx_class_init, .instance_init = ehci_ppc4xx_init, + .secure = true, }, { .name = TYPE_FUSBH200_EHCI, @@ -280,6 +286,7 @@ static const TypeInfo ehci_sysbus_types[] = { .instance_size = sizeof(FUSBH200EHCIState), .instance_init = fusbh200_ehci_init, .class_init = fusbh200_ehci_class_init, + .secure = true, }, }; diff --git a/hw/usb/hcd-ohci-pci.c b/hw/usb/hcd-ohci-pci.c index 70c9e9ac4f5..cf0746aa00b 100644 --- a/hw/usb/hcd-ohci-pci.c +++ b/hw/usb/hcd-ohci-pci.c @@ -148,6 +148,7 @@ static const TypeInfo ohci_pci_info = { .parent = TYPE_PCI_DEVICE, .instance_size = sizeof(OHCIPCIState), .class_init = ohci_pci_class_init, + .secure = true, .interfaces = (const InterfaceInfo[]) { { INTERFACE_CONVENTIONAL_PCI_DEVICE }, { }, diff --git a/hw/usb/hcd-ohci-sysbus.c b/hw/usb/hcd-ohci-sysbus.c index 4f51eebccb2..fd04e918e8a 100644 --- a/hw/usb/hcd-ohci-sysbus.c +++ b/hw/usb/hcd-ohci-sysbus.c @@ -80,6 +80,7 @@ static const TypeInfo ohci_sysbus_types[] = { .parent = TYPE_SYS_BUS_DEVICE, .instance_size = sizeof(OHCISysBusState), .class_init = ohci_sysbus_class_init, + .secure = true, }, }; diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c index a7b9fe13175..c6d163aa9f6 100644 --- a/hw/usb/hcd-uhci.c +++ b/hw/usb/hcd-uhci.c @@ -1380,6 +1380,7 @@ static void uhci_register_types(void) TypeInfo uhci_type_info = { .parent = TYPE_UHCI, .class_init = uhci_data_class_init, + .secure = true, }; int i; -- 2.56.0
