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!

AR# 24996

9.1i EDK, FSL Interface - Multiple FSL peripheral instances were not defined properly in "xparameters.h"

Description

I have two FSL IP instances of the same type connected to a MicroBlaze via FSL that use the same driver for the software interface, but I only get one set of "defines" in the "xparameters.h" file.

For example, there is an IP called test and two instances called test_0 and test_1 connected to FSL interfaces 0 and 1, but I only see the following in the "xparameters.h" file:

/******************************************************************/

#define XPAR_FSL_TEST_0_OUTPUT_SLOT_ID 0

#define XPAR_FSL_TEST_0_INPUT_SLOT_ID 0

/******************************************************************/

Solution

Replace the contents of <edk_project>/drivers/<ip_name>/data/<ip_name>.tcl with the code below:

proc generate {drv_handle} {

puts "Generating Macros for FSL peripheral access ..."

set iplist [xget_sw_iplist_for_driver $drv_handle]

set drv_name_handle [xget_sw_parameter_handle $drv_handle "DRIVER_NAME"]

foreach ip_handle $iplist {

set core_name [xget_value $ip_handle "name"]

set file_name "xparameters.h"

set core_def_name [string toupper $core_name]

puts "CORE NAME: $core_name"

if {[string compare -nocase "none" $core_name] != 0} {

set conffile [xopen_include_file $file_name]

set mhs_handle [xget_handle $ip_handle "parent"]

set mfsl_name [xget_value $ip_handle "BUS_INTERFACE" "MFSL"]

puts "MFSL B: $mfsl_name"

if {$mfsl_name != ""} {

puts "MFSL $mfsl_name"

set mfsl_slave [xget_hw_connected_busifs_handle $mhs_handle $mfsl_name "slave"]

set mfsl_index [xget_value $mfsl_slave "NAME"]

set mfsl_index [string toupper $mfsl_index]

set mfsl_index [string map {SFSL ""} $mfsl_index]

puts $conffile "#define XPAR_FSL_${core_def_name}_OUTPUT_SLOT_ID ${mfsl_index}"

}

set sfsl_name [xget_value $ip_handle "BUS_INTERFACE" "SFSL"]

if {$sfsl_name != ""} {

set sfsl_master [xget_hw_connected_busifs_handle $mhs_handle $sfsl_name "master"]

set sfsl_index [xget_value $sfsl_master "NAME"]

set sfsl_index [string toupper $sfsl_index]

set sfsl_index [string map {MFSL ""} $sfsl_index]

puts $conffile "#define XPAR_FSL_${core_def_name}_INPUT_SLOT_ID ${sfsl_index}"

}

puts $conffile ""

puts $conffile "/******************************************************************/"

puts $conffile ""

close $conffile

}

}

}

AR# 24996
Date Created 09/04/2007
Last Updated 12/15/2012
Status Active
Type General Article