VirtualBox

Ticket #4357 (assigned defect)

Opened 5 years ago

Last modified 4 years ago

Regression of Actel FlashPro3 USB JTAG programmer no longer working with 3.0

Reported by: jhodapp Owned by: michaln
Priority: major Component: USB
Version: VirtualBox 3.0.0 Keywords:
Cc: Guest type: Windows
Host type: Mac OS X

Description

I just upgraded to VB 3.0, having used all of the various 2.x versions successfully with the Actel FlashPro3 USB JTAG programmer device. Now when I use the software in Windows that utilizes the FlashPro3 device for programming a hex file onto a flash device for an embedded microprocessor, I get an error stating that the software cannot communicate with the device. As soon as I downgraded back to 2.2.4, it worked again.

Attachments

FlashPro3_device_details.png Download (99.1 KB) - added by jhodapp 5 years ago.
This show the FlashPro3 USB device details from the Apple "System Profiler" application.
Windows XP-2009-07-02-09-16-53.log Download (64.4 KB) - added by jhodapp 5 years ago.
3.0.0 log file

Change History

comment:1 Changed 5 years ago by michaln

  • Owner set to michaln
  • Status changed from new to assigned

Please attach output of 'lsusb -v' or similar (there's a USB probe utility that comes with Xcode). Without such information, we don't even know what to start looking at.

Changed 5 years ago by jhodapp

This show the FlashPro3 USB device details from the Apple "System Profiler" application.

comment:2 Changed 5 years ago by jhodapp

I don't currently have XCode on my Macbook Pro because it's rather large, so this was the best I could do. If you definitely need the output from the XCode USB profiler application, let me know.

comment:3 Changed 5 years ago by michaln

It helps somewhat. Now I know it's a high-speed USB device, which is important. But it would be really good to know the USB endpoint types on the device (bulk, interrupt, etc.). I tried to look up the information based on vendor/device ID, but couldn't find anything - I expect the device is not something the typical computer user would own :)

There may be other OS X utilities which show this information, or perhaps you have access to a Linux machine.

Also, please attach the machine log (VBox.log) for the failed run; it may not have anything very useful in it but it's always a good starting point.

comment:4 Changed 5 years ago by jhodapp

I'm not quite sure where the VBox.log file ends up on OS X. Any ideas where to find it?

Here is the output of lsusb -v for this device on a 2.6.28 kernel:

Bus 002 Device 007: ID 1514:2004 Device Descriptor:

bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 255 Vendor Specific Subclass bDeviceProtocol 255 Vendor Specific Protocol bMaxPacketSize0 64 idVendor 0x1514 idProduct 0x2004 bcdDevice 0.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration Descriptor:

bLength 9 bDescriptorType 2 wTotalLength 171 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80

(Bus Powered)

MaxPower 100mA Interface Descriptor:

bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0

Interface Descriptor:

bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 6 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x88 EP 8 IN bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Interface Descriptor:

bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 2 bNumEndpoints 6 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3

Transfer Type Interrupt Synch Type None Usage Type Data

wMaxPacketSize 0x0040 1x 64 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3

Transfer Type Interrupt Synch Type None Usage Type Data

wMaxPacketSize 0x0040 1x 64 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 3

Transfer Type Interrupt Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 3

Transfer Type Interrupt Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x88 EP 8 IN bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Interface Descriptor:

bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 3 bNumEndpoints 6 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3

Transfer Type Interrupt Synch Type None Usage Type Data

wMaxPacketSize 0x0040 1x 64 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3

Transfer Type Interrupt Synch Type None Usage Type Data

wMaxPacketSize 0x0040 1x 64 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 1

Transfer Type Isochronous Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 1

Transfer Type Isochronous Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 1

Endpoint Descriptor:

bLength 7 bDescriptorType 5 bEndpointAddress 0x88 EP 8 IN bmAttributes 2

Transfer Type Bulk Synch Type None Usage Type Data

wMaxPacketSize 0x0200 1x 512 bytes bInterval 0

Device Qualifier (for other device speed):

bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 255 Vendor Specific Class bDeviceSubClass 255 Vendor Specific Subclass bDeviceProtocol 255 Vendor Specific Protocol bMaxPacketSize0 64 bNumConfigurations 1

Device Status: 0x0000

(Bus Powered)

comment:5 Changed 5 years ago by michaln

Go to the Machine/Show Log... menu in the VirtualBox VM selector. You can then save the log file to a convenient location and attach it to this ticket (please attach, do not paste the contents).

Thanks for the lsusb output. Sadly, your device is using a generic USB controller chip which has all endpoint types, even though the device is highly unlikely to use them all. So without knowing how the device uses them, that doesn't help much :(

Do you have any other USB device that stopped working with 3.0? Or that *didn't* stop?

comment:6 Changed 5 years ago by jhodapp

Is there a way of getting more detailed output from Windows? This device is being used while in the Windows guest.

Changed 5 years ago by jhodapp

3.0.0 log file

comment:7 Changed 5 years ago by michaln

Thanks for the log file. As I suspected, it doesn't offer any clues as to what went wrong :( And no, you won't easily get anything useful out of Windows.

comment:8 Changed 5 years ago by jhodapp

Ok, here is a view of the FlashPro3 using the Windows program called USBlyzer. The trouble with this device is that it is just a generic set of USB endpoints until the driver does something specific with it for device initialization. So inserting it into Linux without a proper driver is meaningless for getting endpoint information.

Connection Status Device connected Current Configuration 1 Speed High Device Address 1 Number Of Open Pipes 2

Device Descriptor FlashPro3 Programmer Offset Field Size Value Description 0 bLength 1 12h 1 bDescriptorType 1 01h Device 2 bcdUSB 2 0200h USB Spec 2.0 4 bDeviceClass 1 00h Class info in Ifc Descriptors 5 bDeviceSubClass 1 00h 6 bDeviceProtocol 1 00h 7 bMaxPacketSize0 1 40h 64 bytes 8 idVendor 2 1514h 10 idProduct 2 2005h 12 bcdDevice 2 0000h 0.00 14 iManufacturer 1 01h "Actel" 15 iProduct 1 02h "FlashPro3 Programmer" 16 iSerialNumber 1 00h 17 bNumConfigurations 1 01h

Configuration Descriptor 1 Bus Powered, 500 mA Offset Field Size Value Description 0 bLength 1 09h 1 bDescriptorType 1 02h Configuration 2 wTotalLength 2 0029h 4 bNumInterfaces 1 01h 5 bConfigurationValue 1 01h 6 iConfiguration 1 00h 7 bmAttributes 1 80h Bus Powered

4..0: Reserved ...00000 5: Remote Wakeup ..0..... No 6: Self Powered .0...... No, Bus Powered 7: Reserved (set to one)

(bus-powered for 1.0) 1....... 8 bMaxPower 1 FAh 500 mA

Interface Descriptor 0/0 Vendor-Specific, 2 Endpoints Offset Field Size Value Description 0 bLength 1 09h 1 bDescriptorType 1 04h Interface 2 bInterfaceNumber 1 00h 3 bAlternateSetting 1 00h 4 bNumEndpoints 1 02h 5 bInterfaceClass 1 FFh Vendor-Specific 6 bInterfaceSubClass 1 FFh 7 bInterfaceProtocol 1 FFh 8 iInterface 1 00h

Unrecognized Class-Specific Descriptor Offset Field Size Value Description 0 bLength 1 09h 1 bDescriptorType 1 21h 2 7 10 01 00 01 22 1D 00

Endpoint Descriptor 02 2 Out, Bulk, 512 bytes Offset Field Size Value Description 0 bLength 1 07h 1 bDescriptorType 1 05h Endpoint 2 bEndpointAddress 1 02h 2 Out 3 bmAttributes 1 02h Bulk

1..0: Transfer Type ......10 Bulk 7..2: Reserved 000000..

4 wMaxPacketSize 2 0200h 512 bytes 6 bInterval 1 00h

Endpoint Descriptor 86 6 In, Bulk, 512 bytes Offset Field Size Value Description 0 bLength 1 07h 1 bDescriptorType 1 05h Endpoint 2 bEndpointAddress 1 86h 6 In 3 bmAttributes 1 02h Bulk

1..0: Transfer Type ......10 Bulk 7..2: Reserved 000000..

4 wMaxPacketSize 2 0200h 512 bytes 6 bInterval 1 00h

comment:9 Changed 5 years ago by jhodapp

Sorry about that, the formatting on that output did not translate to HTML well. Can you make any sense of that or do you need it in a text file as an attachment?

comment:10 Changed 5 years ago by michaln

The broken formatting is not a real problem, and at any rate it's the same information that lsusb -v printed. The problem is that I don't really have any idea why your device stopped working and without access to it, I can't easily find out.

So far I'm not aware of other complains re USB regressions in 3.0, so whatever the problem is, it does not appear to be widespread... and I can't reproduce it. If you are interested in working with me, I can give you instrumented builds to help pinpoint the problem. Feel free to contact me at michaln at sun dot com.

comment:11 Changed 5 years ago by jhodapp

Sure, I would certainly be willing to work with you to try and identify this. Just for your information, I am an electrical engineer with several years of experience, meaning that you can use technical terms with me and I should be able to understand them. Thanks for taking a look at this bug.

comment:12 Changed 5 years ago by michaln

Please e-mail me at the address I have in the previous comment; I don't have access to your e-mail address.

comment:13 Changed 5 years ago by npmaclean

I have what may be a similar problem with an Alladin HASP USB security dongle. In 2.2.4 it works fine, since upgrading to 3.0 or 3.0.2 when I plug it into a Windows7 host I get a 'USB Device Not Recognized' message and the software I use with it doesn't see it. Let me know if I can send you anything to help diagnose the problem.

comment:14 Changed 5 years ago by npmaclean

Sorry, that should be 'Windows7 guest'.

comment:15 Changed 4 years ago by nabilt

[WORKAROUND]

I have successfully programmed my M1 Fusion evaluation board (it has a built in Flashpro3) using the following steps:

  1. Connect the Flashpro3 device to virtualbox ( click the usb icon in the bottom right of the virtualbox window and check "Actel Flashpro3 Programmer" )
  2. Open the flashpro software and load a project.
  3. Disable then enable the Flashpro3 device using the same method as step 1
  4. Get the flashpro software to rescan for programmers by pressing "Refresh/Rescan for Programmers"
  5. Disable then enable the Flashpro3 device again by using the same method as step 1
  6. Program the device

Virtualbox version 3.1.2 r56127 Flashpro software versoin 8.6.2.10 Release SP1

Hope that helps

comment:16 Changed 4 years ago by albert2004

Hi, I have similar problem with that device using VirtualBox 3.1.4 and FlashPro version 9.0.xx. I noticed that Flashpro software finds device but when I try to rescan programmers, device stops responding. I found following workaround: disable USB 2.0 support ;)

Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use