cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
maps-mpls
Mentor
Mentor
758 Views
Registered: ‎06-20-2017

Vitis bug report multiple versions of driver for design with multiple instances of IP

if I have multiple instances of an IP, and multiple versions of a driver (e.g., 0.9 for development, 1.0 forwarded via the XSA) and go into the board support package settings and try to select 0.9 version of the driver for each instance, only the first one sticks.

If I have 3 instances, I need to modify the board support package settings -> drivers 3 times in sequence.

The interested Xilinx employee can recreate:

1.  Forward the 1.0 driver from Create and Package IP

2.  Add a repository in Vitis for the 0.9 version of the driver.

3.  Go into the Board Support Package of the platform project, select Modify BSP settings, go to driver, and change the driver from 1.0 to 0.9 version.

You will get an error message like this:

maps-mpls_0-1600024485404.png

 

MYIP.mdd for 0.9 version:

OPTION psf_version = 2.1;

BEGIN DRIVER MYIP
	OPTION supported_peripherals = (MYIP);
	OPTION copyfiles = all;
	OPTION VERSION = 0.9;
	OPTION NAME = MYIP;
END DRIVER

1.0 version for MYIP.mdd:

OPTION psf_version = 2.1;

BEGIN DRIVER MYIP
	OPTION supported_peripherals = (MYIP);
	OPTION copyfiles = all;
	OPTION VERSION = 1.0;
	OPTION NAME = MYIP;
END DRIVER

 

I will have to repeat step 3 N times if there are N instances, even if at each step I ensure that all three instances have the 0.9 version of the driver.

 

If I go from 0.9 to 1.0, again I'll have to do it 3 times, even though on the version drop down I make sure 1.0 is selected for all three instances.

 

*** Destination: Rapid design and development cycles ***
0 Kudos
5 Replies
stephenm
Moderator
Moderator
339 Views
Registered: ‎09-12-2007

The expected behaviour is that the latest driver will be used by default.

You could control this via the MDD by making the driver you don't want not active. This could be scripted.

0 Kudos
maps-mpls
Mentor
Mentor
332 Views
Registered: ‎06-20-2017

Thanks @stephenm , I got that.  But in the in between time when a driver is getting mostly stable, but then you have to do some modifications, this is the scenario.  Or are you implying that I should change the repository to 1.1 instead of 0.9 in the vitis repository?

*** Destination: Rapid design and development cycles ***
0 Kudos
stephenm
Moderator
Moderator
287 Views
Registered: ‎09-12-2007

If you are developing your driver, then I wouldn't add the driver at all in Vitis. Keep it as set to generic. Then you can develop your driver and call its makefile directly (with slight mods) to update the bsp libs. Once you are happy with the driver, then give it a version number, and make the stable version active.

 

0 Kudos
marcb
Moderator
Moderator
199 Views
Registered: ‎05-08-2012

Hi @maps-mpls 

If any of the previous information helped to find a resolution, please mark the helpful post as an accepted solution, for others to find.

---------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
---------------------------------------------------------------------------------------------
0 Kudos
maps-mpls
Mentor
Mentor
176 Views
Registered: ‎06-20-2017

Hi @stephenm ,

Well, to clarify, there is initial development, then there is deployment, than there is the inevitable change requests that are always deemed to be smaller than they actually are.  I thought the repository feature Vitis was for this sort of Scenario (modifying a stable driver to meet new feature requests and/or to fix latent bugs recently made patent).  I got this idea of using repositories from some Xilinx badged person at some point in the past.  Is that not recommended for that scenario?  What scenario it recommended for if not this?

I haven't tried using the 1.1 instead of the 0.9, but when I do, and I will try it, I do not think it will solve the original problem description, unless there has been a change to Vitis.

I am guessing Vitis initially supports a different driver on an instance by instance basis. 

But this seems to be a bug in the UI. 

To be clear, the context here is baremetal driver development on the R5s using Vitis.

*** Destination: Rapid design and development cycles ***
0 Kudos