Jump to content
  • 0

Different GPIO driver versions?


engrpetero

Question

I've been away from Vivado/Vitis for a few weeks.  I wanted to confirm some behavior of a project today so like usual, I opened my Vivado 2023.1 and Vitis Classic.  Loaded my two projects into both.  I made a minor change to some verilog code in a peripheral used in the design in the Vivado project.  I then, saved, resynthesized, implemented, generate bit stream, exported hardware.  Updated the hardware spec in Vitis and get an error I haven't seen before, not related to the change I made.

ERROR: [Hsi 55-2091] Multiple versions of driver "gpio" assigned to different peripherals."gpio" driver version 4.10 assigned to peripheral "Zybo_UI_ZYBO_BUTTONS", version 4.9 assigned to peripheral "AXI_GPIO_DSPL".Assign same version of driver to all peripherals.
 

I'm not sure how a different driver version could be assigned - I certainly don't remember doing anything to assign a different driver version.  In the Vivado project, all the AXI CPIO instances are at version AXI GPIO:2.0.  And when I go look at the BSP items in Vitis, they simply list the driver as being 'gpio' - I can't figure out how to determine a driver version, much less update it.

Maybe if I 'Reset BSP Sources' that would do it?  But not sure how this happened anyway since last time I used Vivado or Vitis, I did not see this issue.

image.png.edba602afc040ba11e176a719b10ddb2.png

 

image.png

Edited by engrpetero
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 1

@engrpetero

I'm not familiar with this error/warning or why exactly it might be happening, but a couple of pieces of related info that might help:

1. There are more settings that can be changed down in "Modify BSP Settings". I've more commonly seen this for stuff like changing which PS UART is used for standard output, and for library settings like for Ethernet/LWIP. This is where to find the versions used. The Driver Version field should have a dropdown associated with each peripheral where you can change version - though at least in the project I grabbed the screenshot below from, only 4.11 is available.

image.png

2. The place the drivers come from on the filesystem is buried down in the Vitis installation's data directory, and there are usually a couple versions of various common drivers associated with a specific version of the tools, presumably to help maintain backward compatibility when migrating projects into newer versions. Pretty sure these files are copied over into the BSP when you reset/regenerate sources (so like, if you find a bug you want to permanently fix for yourself, this is where to make changes).

image.png  

Screenshot is of "C:\Xilinx\Vitis\2024.1\data\embeddedsw\XilinxProcessorIPLib\drivers".

Thanks,

Arthur

Link to comment
Share on other sites

  • 0

Thanks @artvvb.  As the error message indicated, somehow the driver version for that one GPIO item was set to 4.9.  I changed in on the drivers tab to 4.10 to match the others (on both the zynq_fsbl and the ps_cortexta9_0 items).  Then a 'clean' and 'build' worked.  I'll have to do some research to try to find out how this was changed because as mentioned, I certainly don't remember doing anythingn to explicitly change them.

Your help, as always, very much appreciated!

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...