0

I am trying to connect a MicroSemi FlashPro 4 to my Linux system. When I plug it in, dmesg shows:

[13728.408610] usb 11-1: New USB device found, idVendor=1514, idProduct=2006, bcdDevice= 0.00
[13728.408617] usb 11-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0

The device/programmer doesn't turn on. But lsusb adds this when it's plugged in:

Bus 011 Device 016: ID 1514:2006 Actel

I looked up the idVendor and idProduct and they match MicroSemi (formerly known as Actel) and my device. However I don't understand why the second line of dmesg gives values of 0 for fields that it apparently just read the line before. What actually is going on behind the scenes between the two output lines? And do values of 0 mean it didn't find a driver?

2 Answers 2

2

Basically, every USB device must have a standardized USB device descriptor: essentially a block of metadata about the device that can be read without knowing anything about the device (except that it's obviously a USB device of some sort). This allows automatic configuration of the USB device drivers.

This descriptor must always contain numeric vendor & product identifiers, as the numbers are the easiest for computers to process. But it may also include the same information in a string form, so that even older computers that might not have the newest catalog of USB vendors&devices could provide a human-readable name for the device.

In your case, the device can be positively identified as "Actel/MicroSemi device 0x2006", but the human-readable string fields in the device descriptor are not populated with anything useful. There is even no unique serial number programmed into the device.

Here is the installation guide for your device: https://www.microsemi.com/document-portal/doc_view/130807-flashpro-software-and-hardware-installation-guide

Page 9 indicates FlashPro 4 "has a dual-driver installation" just like its predecessor FlashPro 3. For the older model, the next page indicates that Product ID 2004 means the device is waiting for firmware to be loaded, and after the firmware has been successfully sent by the driver, the device will change its Product ID to 2005.

For FlashPro 4, the document indicates similarly two product IDs: 2006 and 2007, but doesn't specifically tell what the IDs mean. Assuming they mean the same as for FlashPro 3, the ID 2006 means the device is waiting to receive its firmware, and that would be the likely reason why the device won't "turn on": it needs the firmware for that.

2
  • Thanks very much! Just for my curiosity, is there a standard document that details what the format of the USB device descriptor is? I did some searching and can't find anything definitive.
    – MW2023
    Aug 26, 2023 at 1:46
  • For that, it's best to go to the usb.org documentation library and look for documents with type base specification. For example, the USB 3.2 Revision 1.1 - June 2022 seems good. Chapter 9.6 is titled Standard USB descriptor definitions and the device descriptor is indeed the first one documented there. Also, when you run lsusb -v for a particular USB device, you'll see its device, configuration, interface and endpoint descriptors.
    – telcoM
    Aug 26, 2023 at 10:08
-1

However I don't understand why the second line of dmesg gives values of 0 for fields that it apparently just read the line before.

No, these are different things; they're not the same.

And do values of 0 mean it didn't find a driver?

No.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .