
This patch updates the doxygen for the drivers trafgen,ttcps,uartlite,uartns550,uartps to include .h files in the listof files provided in the index.html file. Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
124 lines
8.7 KiB
HTML
Executable file
124 lines
8.7 KiB
HTML
Executable file
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|
<title>
|
|
Xilinx Driver trafgen v3_2: trafgen v3_2
|
|
</title>
|
|
<link href="doxygen_kalyanidocs/doc/css/driver_api_doxygen.css" rel="stylesheet" type="text/css">
|
|
</head>
|
|
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
|
|
<hl>Software Drivers</hl>
|
|
<hr class="whs1">
|
|
|
|
<!-- Generated by Doxygen 1.6.1 -->
|
|
<div class="navigation" id="top">
|
|
<div class="tabs">
|
|
<ul>
|
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="annotated.html"><span>Classes</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="contents">
|
|
<h1>trafgen v3_2</h1><p>This file contains the implementation of the AXI Traffic Generator driver. User documentation for the driver functions is contained in this file in the form of comment blocks at the front of each function.</p>
|
|
<p>The AXI Traffic Generator IP is designed to generate AXI4 traffic which can be used to stress different modules/interconnect connected in the system. Different configurable options allow the user to generate a wide variety of traffic based on their requirements. The core is broadly separated into a master and slave block, each of which contains the write block and read block. Other support features are provided by the Control registers and Internal RAMs.</p>
|
|
<p>The commands to be issued by the AXI traffic generator are loaded in a 128-bit wide, 512 deep command RAM through AXI Slave interface. After the core is enabled, control logic issues the write/read commands based on the command settings programmed. The core updates the Status registers and asserts interrupts on the completion of issuing programmed commands.</p>
|
|
<p>The Axi Traffic Genrator has five different modes:</p>
|
|
<ul>
|
|
<li>Advanced Mode: Advanced Mode allows full control over the traffic genration Control registers are provided to you to program the core to genrate different AXI4 transactions.</li>
|
|
</ul>
|
|
<ul>
|
|
<li>Basic Mode: Basic Mode allows basic AXI4 traffic genration with less resource overhead.</li>
|
|
</ul>
|
|
<ul>
|
|
<li>Static Mode: Static Mode allows you to genrate a simple AXI4 traffic with very less resource and minimum processor intervention.In this Mode the core continuously genrates fixed address and fixed length INCR type read and write transfers.</li>
|
|
</ul>
|
|
<ul>
|
|
<li>System Init Mode: System Init Mode is a special Mode where core provides only AXI4-Lite Master write interface.This mode can be used in a system without a processor to initialize the system peripherals with preconfigured values on system reset.</li>
|
|
</ul>
|
|
<ul>
|
|
<li>Streaming Mode: In Streaming Mode the core can be configured to generate traffic based on the register configuration.</li>
|
|
</ul>
|
|
<p><b>Initialization & Configuration</b></p>
|
|
<p>The <a class="el" href="struct_x_traf_gen___config.html">XTrafGen_Config</a> structure is used by the driver to configure itself. This configuration structure is typically created by the tool-chain based on HW build properties.</p>
|
|
<p>To support multiple runtime loading and initialization strategies employed by various operating systems, the driver instance can be initialized in the following way:</p>
|
|
<ul>
|
|
<li>XTrafGen_LookupConfig(DeviceId) - Use the devide identifier to find the static configuration structure defined in <a class="el" href="xtrafgen__g_8c.html">xtrafgen_g.c</a>. This is setup by the tools. For some operating systems the config structure will be initialized by the software and this call is not needed.</li>
|
|
</ul>
|
|
<ul>
|
|
<li>XTrafGen_CfgInitialize(InstancePtr, CfgPtr, EffectiveAddr) - Uses a configuration structure provided by the caller. If running in a system with address translation, the provided virtual memory base address replaces the physical address present in the configuration structure.</li>
|
|
</ul>
|
|
<p><b>Command Handling</b></p>
|
|
<p>AXI Traffic Generator core operates based on the commands programmed into Command and Parameter RAMs. The CMDRAM and PARAMRAM is divided into two regions: write and read. Each region can hold 256 entries. Once the core is enabled, the internal control logic issues write/read commands. To handle command programming efficiently, we are maintaining a software list of commands. Following APIs are provided to handle this mechanism:</p>
|
|
<ul>
|
|
<li><a class="el" href="xtrafgen_8c.html#a39eaea669c1ff2df58e54c002b43f854">XTrafGen_AddCommand()</a>: This function prepares the Command Words and Parameter Word from the Command structure passed from the user application. It then adds to a software list of commands.</li>
|
|
</ul>
|
|
<ul>
|
|
<li><a class="el" href="xtrafgen_8c.html#a14377a8884e99ce01c0c76128c939c49">XTrafGen_WriteCmdsToHw()</a>: This function writes the prepared list of Command and Parameter Words prepared to CMDRAM and PARAMRAM.</li>
|
|
</ul>
|
|
<ul>
|
|
<li><a class="el" href="xtrafgen_8c.html#a262d850cbfc5b0495fbc2d84334a1fba">XTrafGen_GetLastValidIndex()</a>: This function gets last Valid Command Index of Write/Read region. The last valid command index is used to set 'my_depend' and 'other_depend' fields of the Command RAM.</li>
|
|
</ul>
|
|
<ul>
|
|
<li><a class="el" href="xtrafgen_8c.html#a539d4976ad3ace9e15d993e2b18143a0">XTrafGen_EraseAllCommands()</a>: This function clears the list of commands maintained in software and also updates the respective RAMs.</li>
|
|
</ul>
|
|
<ul>
|
|
<li>XTrafGen_PrintAllCmds(): This function displays the list of commands.</li>
|
|
</ul>
|
|
<p><b>Master RAM Handling</b></p>
|
|
<p>AXI Traffic Generator uses MSTRAM to</p>
|
|
<ul>
|
|
<li>Take data from this RAM for write transactions</li>
|
|
<li>Store data to this RAM for read transaction User need to call this API to write/read to/from Master RAM,</li>
|
|
</ul>
|
|
<ul>
|
|
<li><a class="el" href="xtrafgen_8c.html#aaea625b89454268bbbe7f93e309141c4">XTrafGen_AccessMasterRam()</a> - This function programs the Master RAM with the data which is used in master logic. The amount of the data is limited by the size of master RAM.</li>
|
|
</ul>
|
|
<p><b>Interrupts</b></p>
|
|
<p>The driver defaults to no interrupts at initialization such that interrupts must be enabled if desired. An interrupt is generated for one of the following conditions:</p>
|
|
<ul>
|
|
<li>Master Logic Completion Interrupt</li>
|
|
<li>Error Interrupt (For Master and Slave Errors)</li>
|
|
</ul>
|
|
<p>The application can control which interrupts are enabled using these functions:</p>
|
|
<ul>
|
|
<li><a class="el" href="xtrafgen_8h.html#a11a588bff0d2c58310d48da4c24126a1">XTrafGen_EnableMasterCmpInterrupt()</a></li>
|
|
<li><a class="el" href="xtrafgen_8h.html#a0a8a195712d5963fa07799d59045e86f">XTrafGen_MasterErrIntrEnable()</a></li>
|
|
<li><a class="el" href="xtrafgen_8h.html#acd4a2d138602873e0614886c7e11b751">XTrafGen_SlaveErrIntrEnable()</a></li>
|
|
</ul>
|
|
<p>The interrupt system has to be set up and if the interrupts are enabled, Traffic Generator notifies the software either about the completion or an error in transfer through interrupts.</p>
|
|
<p><b> Examples </b></p>
|
|
<p>We provided two examples to show how to use the driver API:</p>
|
|
<ul>
|
|
<li>One for interrupt mode (xtrafgen_interrupt_example.c)</li>
|
|
<li>One for polling mode (xtrafgen_polling_example.c)</li>
|
|
</ul>
|
|
<p><b> Asserts </b></p>
|
|
<p>Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.</p>
|
|
<p><b>RTOS Independence</b></p>
|
|
<p>This driver is intended to be RTOS and processor independent. It works with physical addresses only. Any needs for dynamic memory management, threads or thread mutual exclusion, virtual memory, or cache control must be satisfied by the layer above this driver.</p>
|
|
<pre>
|
|
MODIFICATION HISTORY:</pre><pre> Ver Who Date Changes
|
|
----- ---- -------- -------------------------------------------------------
|
|
1.00a srt 01/24/13 First release
|
|
1.01a adk 03/09/13 Updated Driver to Support Streaming and Static Mode
|
|
2.00a adk 16/09/13 Fixed CR:737291
|
|
2.01a adk 21/10/13 Fixed CR:740522 Updated the MasterRam offset as per latest
|
|
IP.This driver is valid only for IP(v2.0) onwards. The
|
|
XTG_MASTER_RAM_OFFSET has been changed from
|
|
0x10000 to 0xc000.
|
|
2.01a adk 15/11/13 Fixed CR:760808 added Macro's for the New bit fields added
|
|
in the latest tarfgen IP(v2.0).
|
|
3.0 adk 12/10/13 Updated as per the New Tcl API's
|
|
3.1 adk 28/04/14 Fixed CR:782131 Incorrect mask value for the
|
|
loopenable bit.
|
|
3.2 adk 05/08/14 Fixed CR:798742 The last word of 8KB Master RAM in
|
|
axi traffic generator can't access and CR:799554
|
|
Some incorrect parameter in axi traffic generator driver.
|
|
</pre> </div>
|
|
<p class="Copyright">
|
|
Copyright © 1995-2014 Xilinx, Inc. All rights reserved.
|
|
</p>
|
|
</body>
|
|
</html>
|