Based on the implementation from Hector Martin <hector@marcansoft.com> Hectors's implementation completely sidestepped the qemu usb system and used libusb directly for usb device pass through. So I've ripped out the libusb bits (or left them in disabled, as reference for further coding) and hooked up the qemu subsystem instead. That work is not complete yet though, partly due to limitations of the qemu usb subsystem. Nevertheless I think it is better to continue development in-tree, especially as the qemu usb bits need a bunch of improvements too for decent usb 3.0 support. Current state: - usb-storage emulation should work ok. - Devices which need constant polling (HID emulation like usb-tablet) are known to not work. - ISO xfers are not implemented yet. - superspeed ports are not implemented yet. - usb pass-through is completely untested so far. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
126 lines
4.1 KiB
C
126 lines
4.1 KiB
C
/*
|
|
* PCI Class, Vendor and Device IDs
|
|
*
|
|
* Please keep sorted.
|
|
*
|
|
* Abbreviated version of linux/pci_ids.h
|
|
*
|
|
* QEMU-specific definitions belong in pci.h
|
|
*/
|
|
|
|
/* Device classes and subclasses */
|
|
|
|
#define PCI_BASE_CLASS_STORAGE 0x01
|
|
#define PCI_BASE_CLASS_NETWORK 0x02
|
|
|
|
#define PCI_CLASS_STORAGE_SCSI 0x0100
|
|
#define PCI_CLASS_STORAGE_IDE 0x0101
|
|
#define PCI_CLASS_STORAGE_SATA 0x0106
|
|
#define PCI_CLASS_STORAGE_OTHER 0x0180
|
|
|
|
#define PCI_CLASS_NETWORK_ETHERNET 0x0200
|
|
|
|
#define PCI_CLASS_DISPLAY_VGA 0x0300
|
|
#define PCI_CLASS_DISPLAY_OTHER 0x0380
|
|
|
|
#define PCI_CLASS_MULTIMEDIA_AUDIO 0x0401
|
|
|
|
#define PCI_CLASS_MEMORY_RAM 0x0500
|
|
|
|
#define PCI_CLASS_SYSTEM_OTHER 0x0880
|
|
|
|
#define PCI_CLASS_SERIAL_USB 0x0c03
|
|
|
|
#define PCI_CLASS_BRIDGE_HOST 0x0600
|
|
#define PCI_CLASS_BRIDGE_ISA 0x0601
|
|
#define PCI_CLASS_BRIDGE_PCI 0x0604
|
|
#define PCI_CLASS_BRIDGE_OTHER 0x0680
|
|
|
|
#define PCI_CLASS_COMMUNICATION_OTHER 0x0780
|
|
|
|
#define PCI_CLASS_PROCESSOR_CO 0x0b40
|
|
#define PCI_CLASS_PROCESSOR_POWERPC 0x0b20
|
|
|
|
#define PCI_CLASS_OTHERS 0xff
|
|
|
|
/* Vendors and devices. Sort key: vendor first, device next. */
|
|
|
|
#define PCI_VENDOR_ID_LSI_LOGIC 0x1000
|
|
#define PCI_DEVICE_ID_LSI_53C895A 0x0012
|
|
|
|
#define PCI_VENDOR_ID_DEC 0x1011
|
|
#define PCI_DEVICE_ID_DEC_21154 0x0026
|
|
|
|
#define PCI_VENDOR_ID_CIRRUS 0x1013
|
|
|
|
#define PCI_VENDOR_ID_IBM 0x1014
|
|
|
|
#define PCI_VENDOR_ID_AMD 0x1022
|
|
#define PCI_DEVICE_ID_AMD_LANCE 0x2000
|
|
|
|
#define PCI_VENDOR_ID_TI 0x104c
|
|
|
|
#define PCI_VENDOR_ID_MOTOROLA 0x1057
|
|
#define PCI_DEVICE_ID_MOTOROLA_MPC106 0x0002
|
|
#define PCI_DEVICE_ID_MOTOROLA_RAVEN 0x4801
|
|
|
|
#define PCI_VENDOR_ID_APPLE 0x106b
|
|
#define PCI_DEVICE_ID_APPLE_UNI_N_AGP 0x0020
|
|
#define PCI_DEVICE_ID_APPLE_U3_AGP 0x004b
|
|
|
|
#define PCI_VENDOR_ID_SUN 0x108e
|
|
#define PCI_DEVICE_ID_SUN_EBUS 0x1000
|
|
#define PCI_DEVICE_ID_SUN_SIMBA 0x5000
|
|
#define PCI_DEVICE_ID_SUN_SABRE 0xa000
|
|
|
|
#define PCI_VENDOR_ID_CMD 0x1095
|
|
#define PCI_DEVICE_ID_CMD_646 0x0646
|
|
|
|
#define PCI_VENDOR_ID_REALTEK 0x10ec
|
|
#define PCI_DEVICE_ID_REALTEK_8139 0x8139
|
|
|
|
#define PCI_VENDOR_ID_XILINX 0x10ee
|
|
|
|
#define PCI_VENDOR_ID_VIA 0x1106
|
|
#define PCI_DEVICE_ID_VIA_ISA_BRIDGE 0x0686
|
|
#define PCI_DEVICE_ID_VIA_IDE 0x0571
|
|
#define PCI_DEVICE_ID_VIA_UHCI 0x3038
|
|
#define PCI_DEVICE_ID_VIA_ACPI 0x3057
|
|
#define PCI_DEVICE_ID_VIA_AC97 0x3058
|
|
#define PCI_DEVICE_ID_VIA_MC97 0x3068
|
|
|
|
#define PCI_VENDOR_ID_MARVELL 0x11ab
|
|
|
|
#define PCI_VENDOR_ID_ENSONIQ 0x1274
|
|
#define PCI_DEVICE_ID_ENSONIQ_ES1370 0x5000
|
|
|
|
#define PCI_VENDOR_ID_FREESCALE 0x1957
|
|
#define PCI_DEVICE_ID_MPC8533E 0x0030
|
|
|
|
#define PCI_VENDOR_ID_INTEL 0x8086
|
|
#define PCI_DEVICE_ID_INTEL_82441 0x1237
|
|
#define PCI_DEVICE_ID_INTEL_82801AA_5 0x2415
|
|
#define PCI_DEVICE_ID_INTEL_82801D 0x24CD
|
|
#define PCI_DEVICE_ID_INTEL_ESB_9 0x25ab
|
|
#define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000
|
|
#define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010
|
|
#define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020
|
|
#define PCI_DEVICE_ID_INTEL_82371AB_0 0x7110
|
|
#define PCI_DEVICE_ID_INTEL_82371AB 0x7111
|
|
#define PCI_DEVICE_ID_INTEL_82371AB_2 0x7112
|
|
#define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113
|
|
#define PCI_DEVICE_ID_INTEL_82801I_UHCI1 0x2934
|
|
#define PCI_DEVICE_ID_INTEL_82801I_UHCI2 0x2935
|
|
#define PCI_DEVICE_ID_INTEL_82801I_UHCI3 0x2936
|
|
#define PCI_DEVICE_ID_INTEL_82801I_UHCI4 0x2937
|
|
#define PCI_DEVICE_ID_INTEL_82801I_UHCI5 0x2938
|
|
#define PCI_DEVICE_ID_INTEL_82801I_UHCI6 0x2939
|
|
#define PCI_DEVICE_ID_INTEL_82801I_EHCI1 0x293a
|
|
#define PCI_DEVICE_ID_INTEL_82801I_EHCI2 0x293c
|
|
|
|
#define PCI_VENDOR_ID_XEN 0x5853
|
|
#define PCI_DEVICE_ID_XEN_PLATFORM 0x0001
|
|
|
|
#define PCI_VENDOR_ID_NEC 0x1033
|
|
#define PCI_DEVICE_ID_NEC_UPD720200 0x0194
|