123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376 |
- /**
- * @file csl_srio.h
- *
- * @brief
- * This is the header file for the SRIO CSL Functional Layer.
- *
- * \par
- * ============================================================================
- * @n (C) Copyright 2008-2011, Texas Instruments, Inc.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of Texas Instruments Incorporated nor the names of
- * its contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
- /** @defgroup CSL_SRIO_API SRIO
- *
- * @section Introduction
- *
- * @subsection xxx Overview
- * RapidIOTM is a non-proprietary high-bandwidth system level interconnect. It is
- * intended to offer giga-byte per second performance levels for chip-to-chip and
- * board-to-board communication. Its layered architecture, allows a highly
- * scalable interconnect capable of future enhancements.
- *
- * @subsection References
- * -# Rapid IO Module Specification
- *
- */
-
- #ifndef CSL_SRIO_H
- #define CSL_SRIO_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <ti/csl/soc.h>
- #include <ti/csl/csl.h>
- #include <ti/csl/cslr_srio.h>
- /**
- @defgroup CSL_SRIO_SYMBOL SRIO Symbols Defined
- @ingroup CSL_SRIO_API
- */
- /**
- @defgroup CSL_SRIO_DATASTRUCT SRIO Data Structures
- @ingroup CSL_SRIO_API
- */
- /**
- @defgroup CSL_SRIO_FUNCTION SRIO Functions
- @ingroup CSL_SRIO_API
- */
- /** @addtogroup CSL_SRIO_DATASTRUCT
- @{ */
-
- /** @brief This is the handle to the SRIO instance */
- typedef volatile CSL_SrioRegs* CSL_SrioHandle;
- /** @brief SRIO Message Description.
- *
- * This structure is used to define a SRIO message and is used by the
- * SRIO module to compare all received RIO packets to determine the
- * receive queue where the packet is pushed to.
- */
- typedef struct SRIO_MESSAGE_s
- {
- Uint16 srcId;
- Uint8 mbx;
- Uint8 ltr;
- Uint8 mbxMask;
- Uint8 ltrMask;
- Uint8 segMap;
- Uint8 srcProm;
- Uint8 tt;
- Uint8 dstProm;
- Uint16 dstId;
- Uint8 flowId;
- }SRIO_MESSAGE;
- /** @brief SRIO Type 9 Message Description.
- *
- * This structure is used to define the TYPE9 Message. This is then
- * used to MAP Type9 messages to a specific destination queue.
- */
- typedef struct SRIO_TYPE9_MESSAGE_s
- {
- Uint16 srcId;
- Uint8 cos;
- Uint8 cosMask;
- Uint8 srcProm;
- Uint8 tt;
- Uint8 dstProm;
- Uint16 dstId;
- Uint16 streamId;
- Uint16 streamMask;
- Uint8 flowId;
- }SRIO_TYPE9_MESSAGE;
- /** @brief SRIO AMU Window
- *
- * This structure is used to define the SRIO AMU Window
- * properties.
- */
- typedef struct SRIO_AMU_WINDOW_s
- {
- Uint8 xambs;
- Uint8 paneCount;
- Uint16 paneSize;
- Uint8 winSize;
- Uint32 rapidIOMsb;
- Uint32 rapidIOLsb;
- }SRIO_AMU_WINDOW;
- /** @brief SRIO AMU Pane
- *
- * This structure is used to define the SRIO AMU Pane
- * properties.
- */
- typedef struct SRIO_AMU_PANE_s
- {
- Uint8 cmdEnc;
- Uint8 portId;
- Uint8 idSize;
- Uint16 dstID;
- }SRIO_AMU_PANE;
- /** @brief SRIO LSU Transfer
- *
- * This structure is used to configure LSU module for Transfer
- */
- typedef struct SRIO_LSU_TRANSFER_s
- {
- Uint32 rapidIOMSB;
- Uint32 rapidIOLSB;
- Uint32 dspAddress;
- Uint32 bytecount;
- Uint8 doorbellValid;
- Uint8 intrRequest;
- Uint8 supInt;
- Uint8 xambs;
- Uint8 priority;
- Uint8 outPortID;
- Uint8 idSize;
- Uint8 srcIDMap;
- Uint16 dstID;
- Uint8 ttype;
- Uint8 ftype;
- Uint8 hopCount;
- Uint16 doorbellInfo;
- }SRIO_LSU_TRANSFER;
- /** @brief SRIO Processing Element Features
- *
- * This structure is used to configure the Tundra
- * Processing Element Features.
- */
- typedef struct SRIO_PE_FEATURES_s
- {
- Uint8 isBridge;
- Uint8 isEndpoint;
- Uint8 isProcessor;
- Uint8 isSwitch;
- Uint8 isMultiport;
- Uint8 isFlowArbiterationSupported;
- Uint8 isMulticastSupported;
- Uint8 isExtendedRouteConfigSupported;
- Uint8 isStandardRouteConfigSupported;
- Uint8 isFlowControlSupported;
- Uint8 isCRFSupported;
- Uint8 isCTLSSupported;
- Uint8 isExtendedFeaturePtrValid;
- Uint8 numAddressBitSupported;
- }SRIO_PE_FEATURES;
- /** @brief SRIO Operation Capability Register
- *
- * This structure is used to store the operation capability
- * configuration.
- */
- typedef struct SRIO_OP_CAR_s
- {
- Uint8 gsmRead;
- Uint8 gsmInstrnRead;
- Uint8 gsmReadOwn;
- Uint8 gsmDataCacheInvalidate;
- Uint8 gsmCastout;
- Uint8 gsmDataCacheFlush;
- Uint8 gsmIORead;
- Uint8 gsmInstrnCacheInvalidate;
- Uint8 gsmTLBInvalidate;
- Uint8 gsmTLBSync;
- Uint8 dataStreamingTM;
- Uint8 dataStreamingSupport;
- Uint8 implnDefined;
- Uint8 readSupport;
- Uint8 writeSupport;
- Uint8 streamWriteSupport;
- Uint8 writeResponseSupport;
- Uint8 dataMessageSupport;
- Uint8 doorbellSupport;
- Uint8 atomicCompareSwapSupport;
- Uint8 atomicTestSwapSupport;
- Uint8 atomicIncSupport;
- Uint8 atomicDecSupport;
- Uint8 atomicSetSupport;
- Uint8 atomicClearSupport;
- Uint8 atomicSwapSupport;
- Uint8 portWriteOperationSupport;
- Uint8 implnDefined2;
- }SRIO_OP_CAR;
- /** @brief SRIO Error Rate
- *
- * This structure is used to store the error rate CSR configuration
- * which is used to monitor and control the port physical layer
- * errors.
- */
- typedef struct SRIO_ERR_RATE_s
- {
- Uint8 errRateBias;
- Uint8 errRateRecovery;
- Uint8 peak;
- Uint8 errRateCnt;
- }SRIO_ERR_RATE;
- /** @brief SRIO Lane Status
- *
- * This structure is used to store the lane status information.
- */
- typedef struct SRIO_LANE_STATUS_s
- {
- Uint8 portNum;
- Uint8 laneNum;
- Uint8 txType;
- Uint8 txMode;
- Uint8 rxType;
- Uint8 rxInv;
- Uint8 rxTrn;
- Uint8 rxSync;
- Uint8 rxReady;
- Uint8 errCnt;
- Uint8 chgSync;
- Uint8 chgTrn;
- Uint8 stat1;
- Uint8 stat2_7;
- Uint8 idle2;
- Uint8 infoOk;
- Uint8 chg;
- Uint8 implSpecific;
- Uint8 lpRxTrn;
- Uint8 lpWidth;
- Uint8 lpLaneNum;
- Uint8 lpTapM1;
- Uint8 lpTapP1;
- Uint8 lpScrm;
- }SRIO_LANE_STATUS;
- /** @brief SRIO Lane Status
- *
- * This structure is used to store the PLM Implementation specific
- * control register
- */
- typedef struct SRIO_PLM_IMPL_CONTROL_s
- {
- Uint8 payloadCapture;
- Uint8 useIdle2;
- Uint8 useIdle1;
- Uint8 dlbEn;
- Uint8 forceReinit;
- Uint8 softRstPort;
- Uint8 txBypass;
- Uint8 lineLoopbackMode;
- Uint8 portSelfReset;
- Uint8 selfReset;
- Uint8 swapTx;
- Uint8 swapRx;
- Uint8 dltThresh;
- }SRIO_PLM_IMPL_CONTROL;
- /** @brief SRIO PLM VMin Exponent
- *
- * This structure is used to store the PLM VMin Exponent configuration
- */
- typedef struct SRIO_PLM_VMIN_EXPONENT_s
- {
- Uint8 vminExp;
- Uint8 imax;
- Uint8 mmax;
- }SRIO_PLM_VMIN_EXPONENT;
- /** @brief SRIO PLM Polarity Control
- *
- * This structure is used to store the PLM Polarity Control
- */
- typedef struct SRIO_PLM_POLARITY_CONTROL_s
- {
- Uint8 tx3Pol;
- Uint8 tx2Pol;
- Uint8 tx1Pol;
- Uint8 tx0Pol;
- Uint8 rx3Pol;
- Uint8 rx2Pol;
- Uint8 rx1Pol;
- Uint8 rx0Pol;
- }SRIO_PLM_POLARITY_CONTROL;
- /** @brief SRIO PLM Control Symbol Configuration
- *
- * This structure is used to store the PLM Control Symbol configuration
- */
- typedef struct SRIO_PLM_CONTROL_SYMBOL_s
- {
- Uint8 stype0;
- Uint8 par0;
- Uint8 par1;
- Uint8 csEmb;
- Uint8 stype1;
- Uint8 cmd;
- Uint8 stype2;
- Uint8 parm;
- }SRIO_PLM_CONTROL_SYMBOL;
- /** @brief SRIO TLM Control Configuration
- *
- * This structure is used to store the SRIO TLM Control configuration
- */
- typedef struct SRIO_TLM_CONTROL_s
- {
- Uint8 portGroupSelect;
- Uint8 voqSelect;
- Uint8 tgtIDDis;
- Uint8 mtcTgtIDDis;
- Uint8 length;
- }SRIO_TLM_CONTROL;
- /**
- @}
- */
- /* Device specific API which opens the SRIO instance and returns a handle used in all subsequent calls */
- extern CSL_SrioHandle CSL_SRIO_Open (Int32 instNum);
- #ifdef __cplusplus
- }
- #endif
- #endif /* CSL_SRIO_H */
|