09-13-2020 12:20 PM
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:
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.
01-26-2021 01:28 PM
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.
01-26-2021 01:48 PM
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?
01-28-2021 09:37 AM
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.
02-08-2021 02:56 PM
If any of the previous information helped to find a resolution, please mark the helpful post as an accepted solution, for others to find.
02-09-2021 08:25 AM - edited 02-09-2021 08:25 AM
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.