AR# 32529: 11.1 EDK - Differences between 10.1 and 11.1 in libgen's Tcl API
11.1 EDK - Differences between 10.1 and 11.1 in libgen's Tcl API
Keywords: driver, generate, generation, library, BlueCat, BSP, Lynux, Works
What are the differences in libgen's Tcl API from 10.1 to 11.1?
In 11.1, SDK does not depend on XPS and/or ISE. In order to achieve this, all hardware information required by software tools and the libraries/drivers/bsp's is obtained from an XML file generated during the SDK handoff file generation process. This primarily affects LibGen.
EDK software libraries, drivers, and BSP's contain TCL code that was written against the XPS hardware API. This API was also rewritten to work from the XML file. However, a few incompatibilities exist between this new API and the old XPS hardware API. This could cause the TCL to crash unexpectedly, typically while running LibGen.
The following are the known differences in the API between 11.1 and 10.1:
1. xget_handle to the parameter HW_VER returns null in 11.1. In 10.1 and previous release, this will correctly return a handle to the hardware version parameter for an IP. This is considered a bug in 11.1, and will be fixed in 11.1 update 1. In 11.1, this issue can be worked around by requesting the value for HW_VER. i.e, instead of getting a handle and then obtaining its value, directly obtain the value of HW_VER by issuing xget_value API call.
2. API calls such as xget_hw_parameter_handle $hwproc_handle "*" that try to request all parameter handles will also not provide a handle to the HW_VER parameter. The same workaround as in (1) applies. This issue will also be fixed in the 11.1 Update 1.
3. In 10.1 and before, a parameter called "INSTANCE" was always present for all IP cores. In 11.1, such a parameter is not modeled. Instead, the API call xget_hw_name should be used to obtain the instance name for a peripheral. This issue will be fixed in 11.1 Update 1.
4. The API call to obtain the type of a parameter (xget_hw_subproperty_value $param "DT") will return NULL. This issue will be fixed in 11.1 Update 1.
5. The sequence of device ID's generated in xparameters.h in 10.1 and 11.1 will be different. This should not affect any software as long as they use the device id macros present in xparameters.h. However, software that assumes that device ID's will be in the same sequence as in the MHS file will break. This issue will be fixed only in 12.1. Until then, the API only guarantees that the sequence of devices will not change between multiple runs of libgen, but the sequence itself will not match the ordering inside MHS file.
The Lynuxworks BSP is the only known software library that has been affected by these issues. A modified version of this BSP that works around all of these issues are available as part of the updated Linux Appnote.