UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Contributor
Contributor
227 Views
Registered: ‎04-01-2019

SDK driver being set to generic

Hi

I'm having very weird behaviour using the SDK. I have a design with a number of IP blocks that have been developed in house. I have been using these with no issues at all. I upgraded one of the IP blocks and for some very strange reason the drivers for some of the IPs are set to generic instead of the actual driver. This is odd as I've not touched these blocks at all. I then decided to revert back to the design that was working and rebuild it. The drivers are still being set to generic. I'm guessing that either some setting in the SDK or Vivado has changed for these particular IP blocks. Any idea how I track down what?

The attached images show the odd behaviour. In the first the drivers are ok for all of the IP blocks. In the second the drivers for the last few IP blocks are set to generic which is wrong. The Vivado design for both are the same. The issue is with the generation of the hdf file. If I turn this into a ZIP file and look at the contents I can see that the drivers are not in the hdf file. The third image shows the IP generated with one design and in this design the drivers are present. So clearly the issue isn't with the IP. If I then do the full design the drivers disappear. The big difference between the 2 designs is that I do have an additional wrapper so that I can include some Verilog code at the very top level. Is it this which is causing the probelm?

I have completely convinced myself its not the IP as I have created a test design with the IP in it. When I do so all the IP drivers are available (see attached driver_issue3) in the hardware platform. So  the issue is with Vivado not adding the drivers when I have the full design. Reason still unknown!!

 

driver_issue.jpg
driver_issue1.jpg
driver_issue2.jpg
driver_issue3.jpg
0 Kudos
1 Reply
Moderator
Moderator
106 Views
Registered: ‎09-12-2007

Re: SDK driver being set to generic

The SDK uses the information in the MDD file to know what driver to use.

For example, taking the GPIO:

https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/gpio/data/gpio.mdd

The support peripherals can be seen here:

mdd.PNG

The SDK uses a utility called HSI (Hardware Software Interface) that cross reference this against the IP_NAME found for each cell (IP)

in the XSA or HDF (XSA replaces HDF in 2019.2). The HSI can be called from XSCT in SDK, or the command line.

For example, I created a simple script to get all the IP_NAME for all IP in the XSA/HDF

script.PNG

Here, you can see that the axi_gpio is found here.

So, in your case can you do the same. Cross reference the support_peripherals in your drivers MDD file against the IP_NAME for the respective IP

in HW

 

0 Kudos