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: 
Adventurer
Adventurer
1,214 Views
Registered: ‎10-16-2017

Custom Drivers and xparameters.h content

I am currently building an IP-Core and I would like to add custom drivers to it. I found out, that whenever i switch the driver in the BSP (bare-metal) from "generic" to my custom driver, the entries for BASEADDR and HIGHADDR are completely wrong.

 

When using the "generic" driver, the entries are correct (with slightly different names). Also are the addresses correct in the .hdf file. So the problem seems not to be in the Vivado export but in the BSP generation.

 

My driver .tcl looks like this (same as other custom IP we have that works correctly):

proc generate {drv_handle} {
	xdefine_include_file $drv_handle "xparameters.h" "axi_rffe_iic" "NUM_INSTANCES" "DEVICE_ID"  "C_S00_AXI_BASEADDR" "C_S00_AXI_HIGHADDR"
}

wrong xparameters.h output I get:

/* Definitions for driver AXI_RFFE_IIC */
#define XPAR_AXI_RFFE_IIC_NUM_INSTANCES 2

/* Definitions for peripheral RFFE1_AXI_RFFE_IIC */
#define XPAR_RFFE1_AXI_RFFE_IIC_DEVICE_ID 0
#define XPAR_RFFE1_AXI_RFFE_IIC_S00_AXI_BASEADDR 0xFFFFFFFF
#define XPAR_RFFE1_AXI_RFFE_IIC_S00_AXI_HIGHADDR 0x00000000


/* Definitions for peripheral RFFE2_AXI_RFFE_IIC */
#define XPAR_RFFE2_AXI_RFFE_IIC_DEVICE_ID 1
#define XPAR_RFFE2_AXI_RFFE_IIC_S00_AXI_BASEADDR 0xFFFFFFFF
#define XPAR_RFFE2_AXI_RFFE_IIC_S00_AXI_HIGHADDR 0x00000000
0 Kudos
4 Replies
Xilinx Employee
Xilinx Employee
1,209 Views
Registered: ‎10-21-2010

Re: Custom Drivers and xparameters.h content

Hi,

It appears that C_S00_AXI_* parameters do not exist in the IP/HDF. Have you checked for the correct format. They could be in the form C_S_AXI_BASEADDR, C_S0_AXI_BASEADDR, or C_BASEADDR

 

Moderator
Moderator
1,176 Views
Registered: ‎09-12-2007

Re: Custom Drivers and xparameters.h content

You can use the AR below to update your driver

https://www.xilinx.com/support/answers/64980.html
0 Kudos
Adventurer
Adventurer
1,153 Views
Registered: ‎10-16-2017

Re: Custom Drivers and xparameters.h content

Hi sadanan,

 

As far as I see the parameter exists in the component.xml of the IP core (see below). Any other ideas why this does not work?

 

The parameter I pass to the TCL script refers to parameers in the component.xml, right? If not, what does it refer to? Unfortunately I could not find any documentation about thecommand xdefine_include_file.

 

Oliver

 

 

    <spirit:parameter>
      <spirit:name>C_S00_AXI_BASEADDR</spirit:name>
      <spirit:displayName>C S00 AXI BASEADDR</spirit:displayName>
      <spirit:value spirit:format="bitString" spirit:resolve="user" spirit:id="PARAM_VALUE.C_S00_AXI_BASEADDR" spirit:order="5" spirit:bitStringLength="32">0xFFFFFFFF</spirit:value>
      <spirit:vendorExtensions>
        <xilinx:parameterInfo>
          <xilinx:enablement>
            <xilinx:isEnabled xilinx:id="PARAM_ENABLEMENT.C_S00_AXI_BASEADDR">false</xilinx:isEnabled>
          </xilinx:enablement>
        </xilinx:parameterInfo>
      </spirit:vendorExtensions>
    </spirit:parameter>

 

0 Kudos
Visitor fingew
Visitor
133 Views
Registered: ‎11-17-2017

Re: Custom Drivers and xparameters.h content

I have the same error with Vivado 2017.4.  Using hsi, I was able to determine that C_S00_AXI_BASEADDR is not updated, but rather a property '0' was added, that contains the correct base address.  I editted the tcl script to export this property to xparameters.h.

I also tried to get the IP packager to properly produce a component.xml that would produce the correct hdf file, but failed.

0 Kudos