VirtualBox

Opened 6 years ago

Last modified 6 years ago

#17602 new defect

USB passthrough problem, when flashing embedded system using PSOC Creator.

Reported by: morali Owned by:
Component: USB Version: VirtualBox 5.2.6
Keywords: PSOC usb embedded Cc:
Guest type: Windows Host type: Linux

Description

I have a problem with PSOC Creator. I'm using usb passthrough to pass cypress development board to Windows 10 on virtual machine.

My host machine is Arch Linux. I've set up usb filter, and device is correctly recognized on guest machine, but when i try to program the board or connect debugger, PSOC Creator application hangs until i disconnect and reconnect usb cable. Then this error shows up: "There was an error while programming the device: failed to reacquire the device."

Trying several times, sometimes it works, sometimes it gets stuck and I need to reconnect device. But most of the time it doesn't work.

I have disabled auto suspend for this device.

If you need some extra information about the system please tell me, I will try to provide them.

Attachments (4)

VBox.log (151.3 KB ) - added by morali 6 years ago.
VBox.log.1 (157.3 KB ) - added by TecVita 6 years ago.
VBox.log.3 (155.7 KB ) - added by TecVita 6 years ago.
breusb.inf (2.9 KB ) - added by TecVita 6 years ago.

Download all attachments as: .zip

Change History (8)

by morali, 6 years ago

Attachment: VBox.log added

comment:1 by TecVita, 6 years ago

We have the Same issuses.

But the different is only our Host-Typ is Windows 7 64-bit.

Our Device is for Medical and use the cypress driver. I've set up usb filter, and device is correctly recognized on guest machine. But some serial functions work. Only when we flash the Device, disconect this.

Last edited 6 years ago by TecVita (previous) (diff)

by TecVita, 6 years ago

Attachment: VBox.log.1 added

by TecVita, 6 years ago

Attachment: VBox.log.3 added

comment:2 by Socratis, 6 years ago

Do you know if the device changed VID/PID during its "reset"? It's not that uncommon. You may have to broaden your USB filter in that case. Talk to Cypress and ask them to describe in detail what's going on during that part. In full detail, someone from engineering preferably.

comment:3 by TecVita, 6 years ago

No, VID / PID are the same after reset. There is only one VID / PID in the "Installation INF for the Cypress Generic USB Driver". But i make a debug log from the device. I will do it in the next time. I check the device properties when flashing. For a better understanding, I provide the device INF as an attachment.

by TecVita, 6 years ago

Attachment: breusb.inf added

comment:4 by Socratis, 6 years ago

I'm afraid that this (the .INF) doesn't help and here's why. Let's start with a physical computer:

  • Your device is identified as "vid:1DAF/pid:5060". You plug it in your (physical) computer. If the computer has the .INF installed, great, we have a match.
  • You reset the device. It temporarily flips and it gets a "vid:0000/pid:0000" (or something weird). After the reset, it gets back to "vid:1DAF/pid:5060". Your host OS temporarily sees an illegal named device, ignores it for the moment, but then it sees the known "vid:1DAF/pid:5060". Everything works!

Now, if we move to the virtual world, here's what might happen (that's the way I understand it at least):

  • Your device is identified as "vid:1DAF/pid:5060". You plug it in your (physical) computer. The VirtualBox filter for "vid:1DAF/pid:5060" grabs the device and passes it to the guest. If the guest has the .INF installed, great, we have a match.
  • You reset the device. It temporarily flips and it gets a "vid:0000/pid:0000" (or something weird). After the reset, the VirtualBox filter loses the device, because there's no filter for "vid:0000/pid:0000", it's illegal. Your host grabs it, and when it sees the known "vid:1DAF/pid:5060" it's too late for the VirtualBox filter to capture it, because the filter is activated at device insertion, not at a random time. You just lost your device.

There is one thing you might want to try temporarily; create a "blank" filter. It *will* capture everything under the sun, including your mouse and keyboard (if they're USB based), so be careful, and temporary.

And again, talk to Cypress engineering...

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use