qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] OVMF, Q35 and USB keyboard/mouse


From: Gabriel L. Somlo
Subject: Re: [Qemu-devel] OVMF, Q35 and USB keyboard/mouse
Date: Sun, 21 Sep 2014 16:00:59 -0400
User-agent: Mutt/1.5.23 (2014-03-12)

On Tue, Sep 16, 2014 at 10:15:20AM +0200, Gerd Hoffmann wrote:
>   Hi,
> 
> > OK, so I forgot to articulate that with the above patch, I'm seeing
> > *both* uhci2 and uhci3, but not uhci1. Basically, if uhciX has an
> > irq_pin less than 2, it won't show up in OSX if booted with ovmf.
> > We're no longer looking at PIIX, this is q35 with ovmf or without.
> 
> Can you test what happens with piix4 + usb2?  (I suspect you can't as
> osx will simply not boot then due to the piix4 being much older than the
> intel port of osx).

By default, when running OS X on PIIX, I get this in qtree:

      dev: piix3-usb-uhci, id ""
        masterbus = ""
        firstport = 0 (0x0)
        bandwidth = 1280 (0x500)
        maxframes = 128 (0x80)
        addr = 01.2
        romfile = ""
        rombar = 1 (0x1)
        multifunction = false
        command_serr_enable = true
        class USB controller, addr 00:01.2, pci id 8086:7020 (sub 1af4:1100)
        bar 4: i/o at 0xc060 [0xc07f]
        bus: usb-bus.0
          type usb-bus
          dev: usb-hub, id ""
            port = ""
            serial = ""
            full-path = true
            msos-desc = true
            addr 0.2, port 2, speed 12, name QEMU USB Hub, attached
          dev: usb-mouse, id ""
            usb_version = 2 (0x2)
            port = ""
            serial = ""
            full-path = true
            msos-desc = true
            addr 0.3, port 2.1, speed 12, name QEMU USB Mouse, attached
          dev: usb-kbd, id ""
            usb_version = 2 (0x2)
            display = ""
            port = ""
            serial = ""
            full-path = true
            msos-desc = true
            addr 0.1, port 1, speed 12, name QEMU USB Keyboard, attached

irq_pin for piix3-usb-uhci is set to 3 (in hcd-uhci.c); I tried setting
it to 2 (which changes device addresses on the usb bus to 0.3, 0.4, 0.2,
respectively) and to 1 (which restores device addresses to the same
values as irq_pin==3). Everything continues to work with both ovmf and
with seabios/chameleon.

However, using irq_pin = 0 for piix3-usb-uhci gets me the broken ovmf
behavior, while continuing to work fine with seabios/chameleon. Qtree
output is identical to when irq_pin was 2 (i.e. hub addr is 0.3, mouse
addr. is 0.4, and kbd addr. is 0.2, but otherwise identical to the above).

> I think ovmf simply doesn't get the IRQ routing right (doesn't
> initialize PCI_INTERRUPT_LINE register correctly).  It is *not* the same
> on piix and q35.  See piix_pci_slot_get_irq vs. mch_pci_slot_get_irq in
> seabios source code.

I'll go study that next... :)

> I think if you boot linux guests with "noacpi" it will have trouble with
> usb interrupts too.

Linux doesn't seem to care, and keyboard+mouse work fine when booted
with "noacpi" on the kernel command line. Actually, Linux seems to
recover as soon as grub loads and runs (or whatever component generates
the "start fedora live" vs. "test media and start fedora" vs.
"troubleshooting" menu).

Holding down a key (e.g. enter) while OVMF boots will cause "usb-kbd:
warning: key event queue full" warnings to qemu stdout, but they stop
as soon as either grub is launched (on either piix or q35), or the OSX
bootloader is fired up on piix. They don't stop on OS X + q35, which
means that whatever state OVMF left the q35 USB hardware in isn't making
OS X happy, but Grub (and Linux) can deal with it...


On Mon, Sep 15, 2014 at 09:56:29PM +0200, BALATON Zoltan wrote:
> I think you can find these in the ioreg output. Try ioreg -lfw0 and look for
> IOInterruptSpecifiers or you can try different IORegistryPlanes with the -p
> option (I don't have OS X at hand to test). Alternatively there's a GUI tool
> to get the same info called IORegistryExplorer that used to be part of older
> XCode versions, not sure where can you get it now.

It appears that ich9-usb-uhci[1,2] remain uninitialized. Below is a diff
I obtained after a bit of doctoring the ioreg output, which illustrates
the differences between booting with seabios/chameleon (working) vs. OVMF
(non-working).

Thanks,
--Gabriel

--- ioreg-uhci-chameleon.txt    2014-09-21 14:41:49.044185884 -0400
+++ ioreg-uhci-edk2_ovmf.txt    2014-09-16 15:25:25.723848777 -0400
@@ -1,277 +1,111 @@
- +-o address@hidden  <class IOPCIDevice, id 0x10000014a, registered, matched, 
active, busy 0 (127 ms), retain 11>
+ +-o address@hidden  <class IOPCIDevice, id 0x10000014e, registered, matched, 
active, busy 0 (16 ms), retain 9>
  |   {
  |     "acpi-path" = "IOACPIPlane:/_SB/address@hidden/address@hidden"
  |     "acpi-device" = "IOACPIPlatformDevice is not serializable"
  |     "built-in" = <00>
  |     "IOName" = "pci8086,2934"
  |     "name" = <"pci8086,2934">
  |     "compatible" = <"pci1af4,1100","pci8086,2934","pciclass,0c0300","SE8">
  |     "vendor-id" = <86800000>
  |     "subsystem-id" = <00110000>
  |     "subsystem-vendor-id" = <f41a0000>
  |     "revision-id" = <03000000>
  |     "pcidebug" = "0:29:0"
  |     "class-code" = <00030c00>
  |     "device-id" = <"4)">
  |     "assigned-addresses" = 
- |       00: phys.hi: 8100e820 phys.mid: 00000000 phys.lo: 0000c080
+ |       00: phys.hi: 8100e820 phys.mid: 00000000 phys.lo: 0000c0e0
  |           size.hi: 00000000 size.lo: 00000020
  |           bus: 0 dev: 29 func: 0 reg: 32
  |           type: I/O flags: abs
  |     "reg" = 
  |       00000000: 00 E8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
20 E8 00 01 00 00 00 00 00 00 00 00 .................... ...........
  |       00000020: 00 00 00 00 20 00 00 00                                     
                                    .... ...
- |     "IOPowerManagement" = 
{"ChildrenPowerState"=2,"CurrentPowerState"=2,"ChildProxyPowerState"=2,"MaxPowerState"=3}
+ |     "IOPowerManagement" = 
{"MaxPowerState"=3,"ChildProxyPowerState"=2,"CurrentPowerState"=2}
  |     "IOPCIResourced" = Yes
  |     "IODeviceMemory" = ("IOSubMemoryDescriptor is not serializable")
- |     "IOInterruptControllers" = ("io-apic-0")
- |     "IOInterruptSpecifiers" = (<0a00000007000000>)
- |     "USBBusNumber" = 29
- |     "locationID" = 486539264
  |   }
  |   
- | | 
- | +-o AppleUSBUHCI  <class AppleUSBUHCI, id 0x10000016b, registered, matched, 
active, busy 0 (3 ms), retain 11>
- |   | {
- |   |   "IOClass" = "AppleUSBUHCI"
- |   |   "CFBundleIdentifier" = "com.apple.driver.AppleUSBUHCI"
- |   |   "IOProviderClass" = "IOPCIDevice"
- |   |   "Card Type" = "PCI"
- |   |   "IOPCIClassMatch" = "0x0C030000"
- |   |   "IOUserClientClass" = "IOUSBControllerUserClient"
- |   |   "IOPowerManagement" = 
{"ChildrenPowerState"=3,"DevicePowerState"=3,"CurrentPowerState"=3,"MaxPowerState"=4,"DriverPowerState"=3}
- |   |   "IOProbeScore" = 0
- |   |   "IOMatchCategory" = "IODefaultMatchCategory"
- |   |   "Errata" = 0
- |   |   "Companion" = "yes"
- |   |   "Need contiguous memory for isoch" = Yes
- |   | }
- |   | 
- |   +-o UHCI Root Hub address@hidden  <class IOUSBRootHubDevice, id 
0x10000018e, registered, matched, active, busy 0 (3 ms), retain 9>
- |     | {
- |     |   "sessionID" = 607144662
- |     |   "Low Power Displayed" = No
- |     |   "iManufacturer" = 2
- |     |   "bNumConfigurations" = 1
- |     |   "idProduct" = 32773
- |     |   "bcdDevice" = 272
- |     |   "Bus Power Available" = 250
- |     |   "bMaxPacketSize0" = 8
- |     |   "USB Product Name" = "UHCI Root Hub Simulation"
- |     |   "iProduct" = 1
- |     |   "iSerialNumber" = 0
- |     |   "USB Address" = 1
- |     |   "bDeviceClass" = 9
- |     |   "locationID" = 486539264
- |     |   "bDeviceSubClass" = 0
- |     |   "IOUserClientClass" = "IOUSBDeviceUserClientV2"
- |     |   "Ports" = 2
- |     |   "IOCFPlugInTypes" = 
{"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
- |     |   "bDeviceProtocol" = 0
- |     |   "USB Vendor Name" = "Apple Inc."
- |     |   "Device Speed" = 1
- |     |   "idVendor" = 1452
- |     |   "Requested Power" = 0
- |     |   "IOGeneralInterest" = "IOCommand is not serializable"
- |     |   "AAPL,current-extra-in-sleep" = 500
- |     |   "AAPL,max-port-current-in-sleep" = 1000
- |     |   "AAPL,standard-port-current-in-sleep" = 500
- |     | }
- |     | 
- |     +-o AppleUSBHub  <class AppleUSBHub, id 0x100000190, registered, 
matched, active, busy 0 (0 ms), retain 7>
- |     |   {
- |     |     "IOProbeScore" = 50000
- |     |     "CFBundleIdentifier" = "com.apple.driver.AppleUSBHub"
- |     |     "IOProviderClass" = "IOUSBDevice"
- |     |     "IOClass" = "AppleUSBHub"
- |     |     "bDeviceSubClass" = 0
- |     |     "IOMatchCategory" = "IODefaultMatchCategory"
- |     |     "Errata" = 0
- |     |     "Interrupt Pending" = No
- |     |     "IOPowerManagement" = 
{"DevicePowerState"=3,"CurrentPowerState"=3,"MaxPowerState"=4,"DriverPowerState"=3}
- |     |     "IOUserClientClass" = "AppleUSBHSHubUserClient"
- |     |     "bDeviceClass" = 9
- |     |   }
- |     |   
- |     +-o address@hidden  <class IOUSBInterface, id 0x100000192, !registered, 
!matched, active, busy 0, retain 7>
- |         {
- |           "bcdDevice" = 272
- |           "idProduct" = 32773
- |           "bConfigurationValue" = 1
- |           "bInterfaceSubClass" = 0
- |           "locationID" = 486539264
- |           "idVendor" = 1452
- |           "iInterface" = 0
- |           "bAlternateSetting" = 0
- |           "bInterfaceProtocol" = 0
- |           "bInterfaceNumber" = 0
- |           "bInterfaceClass" = 9
- |           "bNumEndpoints" = 1
- |         }
- |         
- +-o pci8086,address@hidden,1  <class IOPCIDevice, id 0x100000154, registered, 
matched, active, busy 0 (124 ms), retain 10>
+ +-o pci8086,address@hidden,1  <class IOPCIDevice, id 0x100000159, registered, 
matched, active, busy 0 (15 ms), retain 8>
  |   {
  |     "IOName" = "pci8086,2935"
  |     "name" = <"pci8086,2935">
  |     "compatible" = <"pci1af4,1100","pci8086,2935","pciclass,0c0300">
  |     "vendor-id" = <86800000>
  |     "subsystem-id" = <00110000>
  |     "subsystem-vendor-id" = <f41a0000>
  |     "revision-id" = <03000000>
  |     "pcidebug" = "0:29:1"
  |     "class-code" = <00030c00>
  |     "device-id" = <"5)">
  |     "assigned-addresses" = 
- |       00: phys.hi: 8100e920 phys.mid: 00000000 phys.lo: 0000c0a0
+ |       00: phys.hi: 8100e920 phys.mid: 00000000 phys.lo: 0000c0c0
  |           size.hi: 00000000 size.lo: 00000020
  |           bus: 0 dev: 29 func: 1 reg: 32
  |           type: I/O flags: abs
  |     "reg" = 
  |       00000000: 00 E9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
20 E9 00 01 00 00 00 00 00 00 00 00 .................... ...........
  |       00000020: 00 00 00 00 20 00 00 00                                     
                                    .... ...
- |     "IOPowerManagement" = 
{"ChildrenPowerState"=2,"CurrentPowerState"=2,"ChildProxyPowerState"=2,"MaxPowerState"=3}
+ |     "IOPowerManagement" = 
{"MaxPowerState"=3,"ChildProxyPowerState"=2,"CurrentPowerState"=2}
  |     "IOPCIResourced" = Yes
  |     "IODeviceMemory" = ("IOSubMemoryDescriptor is not serializable")
- |     "IOInterruptControllers" = ("io-apic-0")
- |     "IOInterruptSpecifiers" = (<0a00000007000000>)
- |     "USBBusNumber" = 61
- |     "locationID" = 1023410176
  |   }
  |   
- | | 
- | +-o AppleUSBUHCI  <class AppleUSBUHCI, id 0x100000169, registered, matched, 
active, busy 0 (3 ms), retain 11>
- |   | {
- |   |   "IOClass" = "AppleUSBUHCI"
- |   |   "CFBundleIdentifier" = "com.apple.driver.AppleUSBUHCI"
- |   |   "IOProviderClass" = "IOPCIDevice"
- |   |   "Card Type" = "PCI"
- |   |   "IOPCIClassMatch" = "0x0C030000"
- |   |   "IOUserClientClass" = "IOUSBControllerUserClient"
- |   |   "IOPowerManagement" = 
{"ChildrenPowerState"=3,"DevicePowerState"=3,"CurrentPowerState"=3,"MaxPowerState"=4,"DriverPowerState"=3}
- |   |   "IOProbeScore" = 0
- |   |   "IOMatchCategory" = "IODefaultMatchCategory"
- |   |   "Errata" = 0
- |   |   "Companion" = "yes"
- |   |   "Need contiguous memory for isoch" = Yes
- |   | }
- |   | 
- |   +-o UHCI Root Hub address@hidden,1  <class IOUSBRootHubDevice, id 
0x100000189, registered, matched, active, busy 0 (3 ms), retain 9>
- |     | {
- |     |   "sessionID" = 602137484
- |     |   "Low Power Displayed" = No
- |     |   "iManufacturer" = 2
- |     |   "bNumConfigurations" = 1
- |     |   "idProduct" = 32773
- |     |   "bcdDevice" = 272
- |     |   "Bus Power Available" = 250
- |     |   "bMaxPacketSize0" = 8
- |     |   "USB Product Name" = "UHCI Root Hub Simulation"
- |     |   "iProduct" = 1
- |     |   "iSerialNumber" = 0
- |     |   "USB Address" = 1
- |     |   "bDeviceClass" = 9
- |     |   "locationID" = 1023410176
- |     |   "bDeviceSubClass" = 0
- |     |   "IOUserClientClass" = "IOUSBDeviceUserClientV2"
- |     |   "Ports" = 2
- |     |   "IOCFPlugInTypes" = 
{"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
- |     |   "bDeviceProtocol" = 0
- |     |   "USB Vendor Name" = "Apple Inc."
- |     |   "Device Speed" = 1
- |     |   "idVendor" = 1452
- |     |   "Requested Power" = 0
- |     |   "IOGeneralInterest" = "IOCommand is not serializable"
- |     |   "AAPL,current-extra-in-sleep" = 500
- |     |   "AAPL,max-port-current-in-sleep" = 1000
- |     |   "AAPL,standard-port-current-in-sleep" = 500
- |     | }
- |     | 
- |     +-o AppleUSBHub  <class AppleUSBHub, id 0x10000018b, registered, 
matched, active, busy 0 (0 ms), retain 7>
- |     |   {
- |     |     "IOProbeScore" = 50000
- |     |     "CFBundleIdentifier" = "com.apple.driver.AppleUSBHub"
- |     |     "IOProviderClass" = "IOUSBDevice"
- |     |     "IOClass" = "AppleUSBHub"
- |     |     "bDeviceSubClass" = 0
- |     |     "IOMatchCategory" = "IODefaultMatchCategory"
- |     |     "Errata" = 0
- |     |     "Interrupt Pending" = No
- |     |     "IOPowerManagement" = 
{"DevicePowerState"=3,"CurrentPowerState"=3,"MaxPowerState"=4,"DriverPowerState"=3}
- |     |     "IOUserClientClass" = "AppleUSBHSHubUserClient"
- |     |     "bDeviceClass" = 9
- |     |   }
- |     |   
- |     +-o address@hidden  <class IOUSBInterface, id 0x10000018d, !registered, 
!matched, active, busy 0, retain 7>
- |         {
- |           "bcdDevice" = 272
- |           "idProduct" = 32773
- |           "bConfigurationValue" = 1
- |           "bInterfaceSubClass" = 0
- |           "locationID" = 1023410176
- |           "idVendor" = 1452
- |           "iInterface" = 0
- |           "bAlternateSetting" = 0
- |           "bInterfaceProtocol" = 0
- |           "bInterfaceNumber" = 0
- |           "bInterfaceClass" = 9
- |           "bNumEndpoints" = 1
- |         }
- |         
- +-o pci8086,address@hidden,2  <class IOPCIDevice, id 0x100000155, registered, 
matched, active, busy 0 (123 ms), retain 10>
+ +-o pci8086,address@hidden,2  <class IOPCIDevice, id 0x10000015a, registered, 
matched, active, busy 0 (121 ms), retain 10>
  | | {
  | |   "IOName" = "pci8086,2936"
  | |   "name" = <"pci8086,2936">
  | |   "compatible" = <"pci1af4,1100","pci8086,2936","pciclass,0c0300">
  | |   "vendor-id" = <86800000>
  | |   "subsystem-id" = <00110000>
  | |   "subsystem-vendor-id" = <f41a0000>
  | |   "revision-id" = <03000000>
  | |   "pcidebug" = "0:29:2"
  | |   "class-code" = <00030c00>
  | |   "device-id" = <"6)">
  | |   "assigned-addresses" = 
- | |     00: phys.hi: 8100ea20 phys.mid: 00000000 phys.lo: 0000c0c0
+ | |     00: phys.hi: 8100ea20 phys.mid: 00000000 phys.lo: 0000c0a0
  | |         size.hi: 00000000 size.lo: 00000020
  | |         bus: 0 dev: 29 func: 2 reg: 32
  | |         type: I/O flags: abs
  | |   "reg" = 
  | |     00000000: 00 EA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
20 EA 00 01 00 00 00 00 00 00 00 00 .................... ...........
  | |     00000020: 00 00 00 00 20 00 00 00                                     
                                    .... ...
  | |   "IOPowerManagement" = 
{"ChildrenPowerState"=2,"CurrentPowerState"=2,"ChildProxyPowerState"=2,"MaxPowerState"=3}
  | |   "IOPCIResourced" = Yes
  | |   "IODeviceMemory" = ("IOSubMemoryDescriptor is not serializable")
  | |   "IOInterruptControllers" = ("io-apic-0")
  | |   "IOInterruptSpecifiers" = (<1200000007000000>)
  | |   "USBBusNumber" = 93
  | |   "locationID" = 1560281088
  | | }
  | | 
- | +-o AppleUSBUHCI  <class AppleUSBUHCI, id 0x10000016c, registered, matched, 
active, busy 0 (3 ms), retain 11>
+ | +-o AppleUSBUHCI  <class AppleUSBUHCI, id 0x100000178, registered, matched, 
active, busy 0 (3 ms), retain 11>
  |   | {
  |   |   "IOClass" = "AppleUSBUHCI"
  |   |   "CFBundleIdentifier" = "com.apple.driver.AppleUSBUHCI"
  |   |   "IOProviderClass" = "IOPCIDevice"
  |   |   "Card Type" = "PCI"
  |   |   "IOPCIClassMatch" = "0x0C030000"
  |   |   "IOUserClientClass" = "IOUSBControllerUserClient"
  |   |   "IOPowerManagement" = 
{"ChildrenPowerState"=3,"DevicePowerState"=3,"CurrentPowerState"=3,"MaxPowerState"=4,"DriverPowerState"=3}
  |   |   "IOProbeScore" = 0
  |   |   "IOMatchCategory" = "IODefaultMatchCategory"
  |   |   "Errata" = 0
  |   |   "Companion" = "yes"
  |   |   "Need contiguous memory for isoch" = Yes
  |   | }
  |   | 
- |   +-o UHCI Root Hub address@hidden,2  <class IOUSBRootHubDevice, id 
0x100000184, registered, matched, active, busy 0 (3 ms), retain 9>
+ |   +-o UHCI Root Hub address@hidden,2  <class IOUSBRootHubDevice, id 
0x100000188, registered, matched, active, busy 0 (3 ms), retain 9>
  |     | {
- |     |   "sessionID" = 597168905
+ |     |   "sessionID" = 634036749
  |     |   "Low Power Displayed" = No
  |     |   "iManufacturer" = 2
  |     |   "bNumConfigurations" = 1
  |     |   "idProduct" = 32773
  |     |   "bcdDevice" = 272
  |     |   "Bus Power Available" = 250
  |     |   "bMaxPacketSize0" = 8
  |     |   "USB Product Name" = "UHCI Root Hub Simulation"
  |     |   "iProduct" = 1
  |     |   "iSerialNumber" = 0
@@ -281,41 +115,38 @@
  |     |   "bDeviceSubClass" = 0
  |     |   "IOUserClientClass" = "IOUSBDeviceUserClientV2"
  |     |   "Ports" = 2
  |     |   "IOCFPlugInTypes" = 
{"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"}
  |     |   "bDeviceProtocol" = 0
  |     |   "USB Vendor Name" = "Apple Inc."
  |     |   "Device Speed" = 1
  |     |   "idVendor" = 1452
  |     |   "Requested Power" = 0
  |     |   "IOGeneralInterest" = "IOCommand is not serializable"
- |     |   "AAPL,current-extra-in-sleep" = 500
- |     |   "AAPL,max-port-current-in-sleep" = 1000
- |     |   "AAPL,standard-port-current-in-sleep" = 500
  |     | }
  |     | 
- |     +-o AppleUSBHub  <class AppleUSBHub, id 0x100000186, registered, 
matched, active, busy 0 (0 ms), retain 7>
+ |     +-o AppleUSBHub  <class AppleUSBHub, id 0x10000018a, registered, 
matched, active, busy 0 (0 ms), retain 7>
  |     |   {
  |     |     "IOProbeScore" = 50000
  |     |     "CFBundleIdentifier" = "com.apple.driver.AppleUSBHub"
  |     |     "IOProviderClass" = "IOUSBDevice"
  |     |     "IOClass" = "AppleUSBHub"
  |     |     "bDeviceSubClass" = 0
  |     |     "IOMatchCategory" = "IODefaultMatchCategory"
  |     |     "Errata" = 0
  |     |     "Interrupt Pending" = No
  |     |     "IOPowerManagement" = 
{"DevicePowerState"=3,"CurrentPowerState"=3,"MaxPowerState"=4,"DriverPowerState"=3}
  |     |     "IOUserClientClass" = "AppleUSBHSHubUserClient"
  |     |     "bDeviceClass" = 9
  |     |   }
  |     |   
- |     +-o address@hidden  <class IOUSBInterface, id 0x100000188, !registered, 
!matched, active, busy 0, retain 7>
+ |     +-o address@hidden  <class IOUSBInterface, id 0x10000018c, !registered, 
!matched, active, busy 0, retain 7>
  |         {
  |           "bcdDevice" = 272
  |           "idProduct" = 32773
  |           "bConfigurationValue" = 1
  |           "bInterfaceSubClass" = 0
  |           "locationID" = 1560281088
  |           "idVendor" = 1452
  |           "iInterface" = 0
  |           "bAlternateSetting" = 0
  |           "bInterfaceProtocol" = 0



reply via email to

[Prev in Thread] Current Thread [Next in Thread]