Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12590 Discussions

identity forcing of multiple usb-blasters

Altera_Forum
Honored Contributor II
1,065 Views

When multiple blasters are installed, how does the driver make the determination of which one is -0 and which is -1, etc? Is it based on the order of initial driver installation? 

 

My experience with multiple devices (each with a unique FTDI serial number) is:1) after the initial installation and driver install, the devices always get assigned the same ID, regardless of the order of cable connection. 

2) using Windows device manager to uninstall the driver for both devices and then re-plugging the cables won't swap the assignments 

In order to change the assignements, do you have to delete registry keys and .inf files as well before re-installing in the desired order? Or are there registry keys that can be edited? 

 

(Reference this post (http://www.alteraforum.com/forum/showthread.php?t=17472)on multiple blasters.)
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
346 Views

 

--- Quote Start ---  

When multiple blasters are installed, how does the driver make the determination of which one is -0 and which is -1, etc? Is it based on the order of initial driver installation? 

 

My experience with multiple devices (each with a unique FTDI serial number) is:1) after the initial installation and driver install, the devices always get assigned the same ID, regardless of the order of cable connection. 

2) using Windows device manager to uninstall the driver for both devices and then re-plugging the cables won't swap the assignments 

In order to change the assignements, do you have to delete registry keys and .inf files as well before re-installing in the desired order? Or are there registry keys that can be edited? 

 

--- Quote End ---  

I recently looked at this. Here's my observations. 

 

1) Give the USB-Blasters unique serial numbers. 

 

I have two Stratix IV GX development kits that I would like to use simultaneously; one as the transmitter and the other as the receiver. These boards ship with identical FTDI EEPROM serial numbers. 

 

I reprogrammed the FTDI EEPROMs using FT_PROG (the updated version of MProg) and gave each board a unique serial number; S4GXDK01 and S4GXDK02. 

 

Plugging the new boards into Windows XP created the following registry entries; 

 

HKEY_LOCAL_MACHINE/CurrentControlSet/Enum/USB/Vid_09fb&Pid_6001/S4GXDK01 

HKEY_LOCAL_MACHINE/CurrentControlSet/Enum/USB/Vid_09fb&Pid_6001/S4GXDK02 

 

within those entries, the only thing that differs is the number at the end of the 'Driver' field.  

 

2) Here's the observations under Windows XP 

 

If S4GXDK01 is configured so that its factory default configuration does not get loaded, and S4GKDK02 does load, then "jtagconfig -n" can detect the two different designs (due to the different JTAG nodes detected). 

 

a) Under Windows XP, if I plug either board in, then "jtagconfig -n" detects either board as "USB-Blaster [USB-0]". 

 

b) If I plug the second board in, then "jtagconfig -n" detects two devices; "USB-Blaster [USB-0]" and "USB-Blaster [USB-1]". 

 

Based on the output from jtagconfig -n, I can tell that [USB-0] is the board with serial number S4GXDK01, and [USB-1] is S4GXDK02.  

 

The assignment of [USB-0] and [USB-1] stays the same regardless of the order I plug in the boards. 

 

If your boards are in the wrong order from what you desire, I suspect the registry key "Driver" might be the entry being used to distinguish them. Try uninstalling a specific USB-Blaster and then plug it back in. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
346 Views

This is the experiment I originally performed on a colleague's computer (and referred to in the original post) to test the theory: 

a) plug both devices in 

b) uninstall each blaster's device driver using device manager 

c) reconnect board A, then board B, auto-reinstalling blaster device drivers in the process 

d) correlate the blaster ID's to the physical board 

 

then repeat the above but swapping the order of re-installation in step c 

 

I got identical results both times: board A was always USB-0 and board B was always USB-1 

 

HOWEVER, when I repeated this experiment on my PC, the USB-0 blaster is always the last one installed. The boards used on my PC were different than the boards used on my colleague's, so there may be something to that. All should have unique serial numbers, though. 

 

Maybe more experiments are in order.
0 Kudos
Altera_Forum
Honored Contributor II
346 Views

 

--- Quote Start ---  

 

The boards used on my PC were different than the boards used on my colleague's, so there may be something to that. All should have unique serial numbers, though. 

 

--- Quote End ---  

 

 

Download FTDI's FT_PROG and plug in the USB-Blaster's one at a time. 

 

Use the Devices->Scan and Parse menu function to read the contents of the FTDI EEPROMs. 

 

That'll help confirm the serial numbers are unique. 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
346 Views

 

--- Quote Start ---  

 

I got identical results both times: board A was always USB-0 and board B was always USB-1 

 

HOWEVER, when I repeated this experiment on my PC, the USB-0 blaster is always the last one installed. The boards used on my PC were different than the boards used on my colleague's, so there may be something to that. 

--- Quote End ---  

 

 

Look at the registry entries for each USB-Blaster on the two computer systems. Does the number at the end of the "Driver" field correspond to the [USB-x] order on each computer? 

 

Cheers, 

Dave
0 Kudos
Altera_Forum
Honored Contributor II
346 Views

 

--- Quote Start ---  

Download FTDI's FT_PROG and plug in the USB-Blaster's one at a time. 

 

Use the Devices->Scan and Parse menu function to read the contents of the FTDI EEPROMs. 

 

That'll help confirm the serial numbers are unique. 

 

Cheers, 

Dave 

--- Quote End ---  

 

 

Yeah we use FT_PROG to program the FT245R devices in our boards (custom, with an embedded usb-blaster). I just said "should" be unique because I don't know that the engineer that tested those boards initially followed the procedure.
0 Kudos
Altera_Forum
Honored Contributor II
346 Views

 

--- Quote Start ---  

Look at the registry entries for each USB-Blaster on the two computer systems. Does the number at the end of the "Driver" field correspond to the [USB-x] order on each computer? 

 

Cheers, 

Dave 

--- Quote End ---  

 

 

Not really. The two in question have drivers of 

{36fc9e60-c465-11cf-8056-444553540000}\0044 

and 

{36fc9e60-c465-11cf-8056-444553540000}\0047 

 

The higher number has the lower USB-x number. 

 

They also have unique containerid (http://msdn.microsoft.com/en-us/library/ff546243%28v=vs.85%29.aspx)'s, so if it's that number that the driver is using to determine the order of USB-x blasters, I'm not sure there is an easy way to control the assignments. 

 

edit: the container id looks to be the same before and after the driver re-install, which makes sense since it's a hash of fixed values. so it's probably irrelevant to this discussion.
0 Kudos
Altera_Forum
Honored Contributor II
346 Views

 

--- Quote Start ---  

 

The higher number has the lower USB-x number. 

 

--- Quote End ---  

That shoots my theory down then :) 

 

 

--- Quote Start ---  

 

They also have unique containerid (http://msdn.microsoft.com/en-us/library/ff546243%28v=vs.85%29.aspx)'s, so if it's that number that the driver is using to determine the order of USB-x blasters, I'm not sure there is an easy way to control the assignments. 

 

edit: the container id looks to be the same before and after the driver re-install, which makes sense since it's a hash of fixed values. so it's probably irrelevant to this discussion.  

--- Quote End ---  

If you uninstall, does the registry entry get deleted too? I wonder if there is a 'remnant' that is preserving the original numbers. 

 

You can test this theory by changing the serial numbers to something new. That way the OS will have never seen the USB-Blasters before. Then plug them in in the order you would like to see them. 

 

Cheers, 

Dave
0 Kudos
Reply