diff options
Diffstat (limited to 'drivers/net/npe/include/IxFeatureCtrl.h')
| -rw-r--r-- | drivers/net/npe/include/IxFeatureCtrl.h | 742 | 
1 files changed, 742 insertions, 0 deletions
| diff --git a/drivers/net/npe/include/IxFeatureCtrl.h b/drivers/net/npe/include/IxFeatureCtrl.h new file mode 100644 index 000000000..dabc38e25 --- /dev/null +++ b/drivers/net/npe/include/IxFeatureCtrl.h @@ -0,0 +1,742 @@ +/** + * @file IxFeatureCtrl.h + * + * @date 30-Jan-2003 + + * @brief This file contains the public API of the IXP400 Feature Control + *        component. + * + *  + * @par + * IXP400 SW Release version 2.0 + *  + * -- Copyright Notice -- + *  + * @par + * Copyright 2001-2005, Intel Corporation. + * All rights reserved. + *  + * @par + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the Intel Corporation nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission. + *  + * @par + * 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. + *  + * @par + * -- End of Copyright Notice -- +*/ +/* ------------------------------------------------------ +   Doxygen group definitions +   ------------------------------------------------------ */ +/** + * @defgroup IxFeatureCtrlAPI IXP400 Feature Control (IxFeatureCtrl) API + * + * @brief The Public API for the IXP400 Feature Control. + *  + * @{ + */ + +#ifndef IXFEATURECTRL_H +#define IXFEATURECTRL_H + +/* + * User defined include files + */ +#include "IxOsal.h" + +/* + * #defines and macros + */ + +/************************************************************* + * The following are IxFeatureCtrlComponentCheck return values. + ************************************************************/ + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def  IX_FEATURE_CTRL_COMPONENT_DISABLED + * + * @brief Hardware Component is disabled/unavailable. + *        Return status by ixFeatureCtrlComponentCheck()   + */ +#define  IX_FEATURE_CTRL_COMPONENT_DISABLED 0 + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def  IX_FEATURE_CTRL_COMPONENT_ENABLED + * + * @brief Hardware Component is available.  + *        Return status by ixFeatureCtrlComponentCheck()   + */ +#define  IX_FEATURE_CTRL_COMPONENT_ENABLED  1 + +/*********************************************************************************** + * Product ID in XScale CP15 - Register 0 + *  - It contains information on the maximum XScale Core Frequency and + *    Silicon Stepping.   + *  - XScale Core Frequency Id indicates only the maximum XScale frequency + *    achievable and not the running XScale frequency (maybe stepped down).     + *  - The register is read by using ixFeatureCtrlProductIdRead. + *  - Usage example:  + *          productId = ixFeatureCtrlProductIdRead(); + *          if( (productId & IX_FEATURE_CTRL_SILICON_STEPPING_MASK) ==  + *              IX_FEATURE_CTRL_SILICON_TYPE_A0 ) + *          if( (productId & IX_FEATURE_CTRL_XSCALE_FREQ_MASK) ==  + *              IX_FEATURE_CTRL_XSCALE_FREQ_533 )     + *  + *  31 28 27 24 23 20 19 16 15 12 11        9 8                   4 3              0   + *  --------------------------------------------------------------------------------  + * | 0x6 | 0x9 | 0x0 | 0x5 | 0x4 | Device ID | XScale Core Freq Id | Si Stepping Id |     + *  -------------------------------------------------------------------------------- + * + *   Maximum Achievable XScale Core Frequency Id :  533MHz  - 0x1C  + *                                                  400MHz  - 0x1D  + *                                                  266MHz  - 0x1F + * + *   <b>THE CORE FREQUENCY ID IS NOT APPLICABLE TO IXP46X <\b> + *   + *   The above is applicable to IXP42X only. CP15 in IXP46X does not contain any + *   Frequency ID.  + *  + *  Si Stepping Id            :  A       - 0x0     + *                               B       - 0x1  + *   + *  XScale Core freq Id - Device ID [11:9] : IXP42X - 0x0 + *                                           IXP46X - 0x1 + *************************************************************************************/ + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURE_CTRL_SILICON_TYPE_A0 + * + * @brief This is the value of A0 Silicon in product ID.  + */ +#define IX_FEATURE_CTRL_SILICON_TYPE_A0   0 + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURE_CTRL_SILICON_TYPE_B0 + * + * @brief This is the value of B0 Silicon in product ID. + */ +#define IX_FEATURE_CTRL_SILICON_TYPE_B0   1 + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURE_CTRL_SILICON_STEPPING_MASK + * + * @brief This is the mask of silicon stepping in product ID.  + */ +#define IX_FEATURE_CTRL_SILICON_STEPPING_MASK  0xF  + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURE_CTRL_DEVICE_TYPE_MASK + * + * @brief This is the mask of silicon stepping in product ID. + */ +#define IX_FEATURE_CTRL_DEVICE_TYPE_MASK  (0x7)  + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURE_CTRL_DEVICE_TYPE_OFFSET + * + * @brief This is the mask of silicon stepping in product ID. + */ +#define IX_FEATURE_CTRL_DEVICE_TYPE_OFFSET  9 + + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURE_CTRL_XSCALE_FREQ_533 + * + * @brief This is the value of 533MHz XScale Core in product ID. + */ +#define IX_FEATURE_CTRL_XSCALE_FREQ_533  ((0x1C)<<4) + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURE_CTRL_XSCALE_FREQ_400 + * + * @brief This is the value of 400MHz XScale Core in product ID. + */ +#define IX_FEATURE_CTRL_XSCALE_FREQ_400  ((0x1D)<<4) + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURE_CTRL_XSCALE_FREQ_266 + * + * @brief This is the value of 266MHz XScale Core in product ID. + */ +#define IX_FEATURE_CTRL_XSCALE_FREQ_266 ((0x1F)<<4)    + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURE_CTRL_XSCALE_FREQ_MASK + * + * @brief This is the mask of XScale Core in product ID. + */ +#define IX_FEATURE_CTRL_XSCALE_FREQ_MASK ((0xFF)<<4)   + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURECTRL_REG_UTOPIA_32PHY + * + * @brief Maximum  UTOPIA PHY available is 32.   + *  + */ +#define IX_FEATURECTRL_REG_UTOPIA_32PHY  0x0 + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURECTRL_REG_UTOPIA_16PHY + * + * @brief Maximum  UTOPIA PHY available is 16.   + *  + */ +#define IX_FEATURECTRL_REG_UTOPIA_16PHY  0x1 + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURECTRL_REG_UTOPIA_8PHY + * + * @brief Maximum  UTOPIA PHY available to is 8.   + *  + */ +#define IX_FEATURECTRL_REG_UTOPIA_8PHY   0x2 + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @def IX_FEATURECTRL_REG_UTOPIA_4PHY + * + * @brief Maximum  UTOPIA PHY available to is 4.   + *  + */ +#define IX_FEATURECTRL_REG_UTOPIA_4PHY   0x3 + +#ifdef __ixp46X + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURECTRL_REG_XSCALE_533FREQ + * + * @brief Maximum  frequency available to IXP46x is 533 MHz. + * + */ +#define IX_FEATURECTRL_REG_XSCALE_533FREQ   0x0 + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURECTRL_REG_XSCALE_667FREQ + * + * @brief Maximum  frequency available to IXP46x is 667 MHz. + * + */ +#define IX_FEATURECTRL_REG_XSCALE_667FREQ   0x1 + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURECTRL_REG_XSCALE_400FREQ + * + * @brief Maximum  frequency available to IXP46x is 400 MHz. + * + */ +#define IX_FEATURECTRL_REG_XSCALE_400FREQ   0x2 + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURECTRL_REG_XSCALE_266FREQ + * + * @brief Maximum  frequency available to IXP46x is 266 MHz. + * + */ +#define IX_FEATURECTRL_REG_XSCALE_266FREQ   0x3 + +#endif /* __ixp46X */ + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE + * + * @brief Component selected is not available for device + * + */ +#define IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE  0x0000 + +/** + * @ingroup IxFeatureCtrlAPI + * + * @def IX_FEATURECTRL_COMPONENT_ALWAYS_AVAILABLE + * + * @brief Component selected is not available for device + * + */ +#define IX_FEATURECTRL_COMPONENT_ALWAYS_AVAILABLE  0xffff + +/** + * @defgroup IxFeatureCtrlSwConfig Software Configuration for Access Component + * + * @ingroup IxFeatureCtrlAPI  + * + * @brief This section describes software configuration in access component. The + *        configuration can be changed at run-time. ixFeatureCtrlSwConfigurationCheck( ) + *        will be used across applicable access component to check the configuration. + *        ixFeatureCtrlSwConfigurationWrite( ) is used to write the software configuration. + * + * @note <b>All software configurations are default to be enabled.</b>  + * + * @{ + */ +/** + * @ingroup IxFeatureCtrlSwConfig + * + * @def IX_FEATURE_CTRL_SWCONFIG_DISABLED + * + * @brief Software configuration is disabled.  + *  + */ +#define IX_FEATURE_CTRL_SWCONFIG_DISABLED 0   + +/** + * @ingroup IxFeatureCtrlSwConfig + * + * @def IX_FEATURE_CTRL_SWCONFIG_ENABLED + * + * @brief Software configuration is enabled.  + *  + */ +#define IX_FEATURE_CTRL_SWCONFIG_ENABLED 1   + +/** + * Section for enums + **/ + +/** + * @ingroup IxFeatureCtrlBuildDevice + * + * @enum IxFeatureCtrlBuildDevice + * + * @brief Indicates software build type. + * + * Default build type is IXP42X + * + */ +typedef enum +{ +    IX_FEATURE_CTRL_SW_BUILD_IXP42X = 0, /**<Build type is IXP42X */ +    IX_FEATURE_CTRL_SW_BUILD_IXP46X      /**<Build type is IXP46X */ +} IxFeatureCtrlBuildDevice; + +/** + * @ingroup IxFeatureCtrlSwConfig + * + * @enum IxFeatureCtrlSwConfig + * + * @brief Enumeration for software configuration in access components. + * + * Entry for new run-time software configuration should be added here. + */ +typedef enum +{ +    IX_FEATURECTRL_ETH_LEARNING = 0,       /**< EthDB Learning Feature */ +    IX_FEATURECTRL_ORIGB0_DISPATCHER,  /**< IXP42X B0 and IXP46X dispatcher without  +                                            livelock prevention functionality Feature */ +    IX_FEATURECTRL_SWCONFIG_MAX        /**< Maximum boudary for IxFeatureCtrlSwConfig  */ +} IxFeatureCtrlSwConfig; + + +/************************************************************************ + * IXP400 Feature Control Register + * - It contains the information (available/unavailable) of IXP425&IXP46X + *   hardware components in their corresponding bit location. + * - Bit value of 0 means the hardware component is available + *   or not software disabled. Hardware component that is available + *   can be software disabled. + * - Bit value of 1 means the hardware is unavailable or software + *   disabled.Hardware component that is unavailable cannot be software + *   enabled. + * - Use ixFeatureCtrlHwCapabilityRead() to read the hardware component's + *   availability. + * - Use ixFeatureCtrlRead() to get the current IXP425/IXP46X feature control + *   register value. + * + *   Bit            Field Description (Hardware Component Availability) + *   ---            --------------------------------------------------- + *    0             RComp Circuitry + *    1             USB Controller + *    2             Hashing Coprocessor + *    3             AES Coprocessor + *    4             DES Coprocessor + *    5             HDLC Coprocessor + *    6             AAL Coprocessor         - Always available in IXP46X + *    7             HSS Coprocesspr + *    8             Utopia Coprocessor + *    9             Ethernet 0 Coprocessor + *   10             Ethernet 1 Coprocessor + *   11             NPE A + *   12             NPE B + *   13             NPE C + *   14             PCI Controller + *   15             ECC/TimeSync Coprocessor -  Only applicable to IXP46X + *  16-17           Utopia PHY Limit Status : 0x0 - 32 PHY + *                                            0x1 - 16 PHY + *                                            0x2 -  8 PHY + *                                            0x3 -  4 PHY + * + *  Portions below are only applicable to IXP46X + *   18             USB Host Coprocessor + *   19             NPE A Ethernet - 0 for Enable if Utopia = 1 + *   20             NPE B Ethernet coprocessor 1-3. + *   21             RSA Crypto Block coprocessor. + *  22-23           Processor frequency : 0x0 - 533 MHz + *                                        0x1 - 667 MHz + *                                        0x2 - 400 MHz + *                                        0x3 - 266 MHz + *  24-31           Reserved + * + ************************************************************************/ +/*Section generic to both IXP42X and IXP46X*/ + +/** + * @ingroup IxFeatureCtrlAPI + * + * @enum IxFeatureCtrlComponentType + * + * @brief Enumeration for components availavble + * + */ +typedef enum +{ +    IX_FEATURECTRL_RCOMP = 0, /**<bit location for RComp Circuitry*/ +    IX_FEATURECTRL_USB,       /**<bit location for USB Controller*/ +    IX_FEATURECTRL_HASH,      /**<bit location for Hashing Coprocessor*/ +    IX_FEATURECTRL_AES,       /**<bit location for AES Coprocessor*/ +    IX_FEATURECTRL_DES,       /**<bit location for DES Coprocessor*/ +    IX_FEATURECTRL_HDLC,      /**<bit location for HDLC Coprocessor*/ +    IX_FEATURECTRL_AAL,       /**<bit location for AAL Coprocessor*/ +    IX_FEATURECTRL_HSS,       /**<bit location for HSS Coprocessor*/ +    IX_FEATURECTRL_UTOPIA,    /**<bit location for UTOPIA Coprocessor*/ +    IX_FEATURECTRL_ETH0,      /**<bit location for Ethernet 0 Coprocessor*/ +    IX_FEATURECTRL_ETH1,      /**<bit location for Ethernet 1 Coprocessor*/ +    IX_FEATURECTRL_NPEA,      /**<bit location for NPE A*/ +    IX_FEATURECTRL_NPEB,      /**<bit location for NPE B*/ +    IX_FEATURECTRL_NPEC,      /**<bit location for NPE C*/ +    IX_FEATURECTRL_PCI,       /**<bit location for PCI Controller*/ +    IX_FEATURECTRL_ECC_TIMESYNC,     /**<bit location for TimeSync Coprocessor*/ +    IX_FEATURECTRL_UTOPIA_PHY_LIMIT, /**<bit location for Utopia PHY Limit Status*/ +    IX_FEATURECTRL_UTOPIA_PHY_LIMIT_BIT2, /**<2nd bit of PHY limit status*/ +    IX_FEATURECTRL_USB_HOST_CONTROLLER, /**<bit location for USB host controller*/ +    IX_FEATURECTRL_NPEA_ETH,  /**<bit location for NPE-A Ethernet Disable*/ +    IX_FEATURECTRL_NPEB_ETH,  /**<bit location for NPE-B Ethernet 1-3 Coprocessors Disable*/ +    IX_FEATURECTRL_RSA,       /**<bit location for RSA Crypto block Coprocessors Disable*/ +    IX_FEATURECTRL_XSCALE_MAX_FREQ, /**<bit location for XScale max frequency*/ +    IX_FEATURECTRL_XSCALE_MAX_FREQ_BIT2, /**<2nd xscale max freq bit NOT TO BE USED */ +    IX_FEATURECTRL_MAX_COMPONENTS +} IxFeatureCtrlComponentType; + +/** + * @ingroup IxFeatureCtrlDeviceId + * + * @enum IxFeatureCtrlDeviceId + * + * @brief Enumeration for device type. + * + * @warning This enum is closely related to the npe image. Its format should comply + *          with formats used in the npe image ImageID. This is indicated by the   + *          first nibble of the image ID. This should also be in sync with the + *          with what is defined in CP15.  Current available formats are + *          - IXP42X - 0000 + *          - IXP46X - 0001 + * + */ +typedef enum +{ +    IX_FEATURE_CTRL_DEVICE_TYPE_IXP42X = 0, /**<Device type is IXP42X */ +    IX_FEATURE_CTRL_DEVICE_TYPE_IXP46X, /**<Device type is IXP46X */ +    IX_FEATURE_CTRL_DEVICE_TYPE_MAX /**<Max devices */ +} IxFeatureCtrlDeviceId; + + +/** + * @} addtogroup IxFeatureCtrlSwConfig + */ + +/* + * Typedefs + */ + +/** + * @ingroup IxFeatureCtrlAPI  + *  + * @typedef IxFeatureCtrlReg + * + * @brief Feature Control Register that contains hardware components' + *        availability information. + */ +typedef UINT32 IxFeatureCtrlReg; + +/** + * @ingroup IxFeatureCtrlAPI  + *  + * @typedef IxFeatureCtrlProductId + * + * @brief Product ID of Silicon that contains Silicon Stepping and  + *        Maximum XScale Core Frequency information.   + */ +typedef UINT32 IxFeatureCtrlProductId; + +/* + * Prototypes for interface functions + */ + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @fn IxFeatureCtrlReg ixFeatureCtrlRead (void) + *  + * @brief This function reads out the CURRENT value of Feature Control Register. + *        The current value may not be the same as that of the hardware component  + *        availability.     + *  + * The bit location of each hardware component is defined above.  + * A value of '1' in bit means the hardware component is not available.  A value of '0'    + * means the hardware component is available. + * + * @return  + *      - IxFeatureCtrlReg - the current value of IXP400 Feature Control Register + */  +PUBLIC IxFeatureCtrlReg +ixFeatureCtrlRead (void); + +/** + * @ingroup IxFeatureCtrlAPI + * + * @fn IxFeatureDeviceId ixFeatureCtrlDeviceRead (void) + * + * @brief This function gets the type of device that the software is currently running + *        on + * + * This function reads the feature Ctrl register specifically to obtain the device id. + * The definitions of the avilable IDs are as above. + * + * @return + *      - IxFeatureCtrlDeviceId - the type of device currently running + */ +IxFeatureCtrlDeviceId +ixFeatureCtrlDeviceRead (void); + +/** + * @ingroup IxFeatureCtrlAPI + * + * @fn IxFeatureCtrlBuildDevice ixFeatureCtrlSoftwareBuildGet (void) + * + * @brief This function refers to  the value set by the compiler flag to determine + *        the type of device the software is built for. + * + * The function reads the compiler flag to determine the device the software is + * built for. When the user executes build in the command line,  + * a compile time flag (__ixp42X/__ixp46X is set. This API reads this  + * flag and returns the software build type to the calling client. + * + * @return + *      - IxFeatureCtrlBuildDevice - the type of device software is built for. + */ +IxFeatureCtrlBuildDevice +ixFeatureCtrlSoftwareBuildGet (void); + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @fn IxFeatureCtrlReg ixFeatureCtrlHwCapabilityRead (void) + *  + * @brief This function reads out the hardware capability of a silicon type as defined in  + * feature control register.This value is different from that returned by  + * ixFeatureCtrlRead() because this function returns the actual hardware component + * availability.      + * + * The bit location of each hardware component is defined above.  + * A value of '1' in bit means the hardware component is not available.  A value of '0'    + * means the hardware component is available. + * + * @return  + *      - IxFeatureCtrlReg - the hardware capability of IXP400.  + * + * @warning + *      - This function must not be called when IXP400 is running as the result + *        is undefined.     + */  +PUBLIC IxFeatureCtrlReg +ixFeatureCtrlHwCapabilityRead (void); + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @fn void ixFeatureCtrlWrite (IxFeatureCtrlReg expUnitReg) + *  + * @brief This function write the value stored in IxFeatureCtrlReg expUnitReg   + *        to the Feature Control Register.  + *  + * The bit location of each hardware component is defined above. + * The write is only effective on available hardware components. Writing '1' in a   + * bit will software disable the respective hardware component. A '0' will mean that   + * the hardware component will remain to be operable.  + * + * @param expUnitReg @ref IxFeatureCtrlReg [in] - The value to be written to feature control  + *                                          register. + * + * @return none + * + */  +PUBLIC void +ixFeatureCtrlWrite (IxFeatureCtrlReg expUnitReg); + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @fn IX_STATUS ixFeatureCtrlComponentCheck (IxFeatureCtrlComponentType componentType) + *  + * @brief This function will check the availability of hardware component specified + *        as componentType value.  + * + *        Usage Example:<br>  + *         -  if(IX_FEATURE_CTRL_COMPONENT_DISABLED !=  + *              ixFeatureCtrlComponentCheck(IX_FEATURECTRL_ETH0)) <br> + *         -  if(IX_FEATURE_CTRL_COMPONENT_ENABLED ==  + *              ixFeatureCtrlComponentCheck(IX_FEATURECTRL_PCI)) <br> + * + * This function is typically called during component initialization time.  + * + * @param componentType @ref IxFeatureCtrlComponentType [in] - the type of a component as + *        defined above as IX_FEATURECTRL_XXX (Exp: IX_FEATURECTRL_PCI, IX_FEATURECTRL_ETH0)            + + *         + * @return  + *      - IX_FEATURE_CTRL_COMPONENT_ENABLED if component is available  + *      - IX_FEATURE_CTRL_COMPONENT_DISABLED if component is unavailable             + */  +PUBLIC IX_STATUS +ixFeatureCtrlComponentCheck (IxFeatureCtrlComponentType componentType); + +/** + * @ingroup IxFeatureCtrlAPI  + *  + * @fn IxFeatureCtrlProductId ixFeatureCtrlProductIdRead (void) + *  + * @brief This function will return IXP400 product ID i.e. CP15, + *        Register 0. + *                                                 + * @return  + *      - IxFeatureCtrlProductId - the value of product ID. + * + */  +PUBLIC IxFeatureCtrlProductId +ixFeatureCtrlProductIdRead (void) ; + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @fn IX_STATUS ixFeatureCtrlSwConfigurationCheck (IxFeatureCtrlSwConfig swConfigType) + *  + * @brief This function checks whether the specified software configuration is + *        enabled or disabled.  + * + *        Usage Example:<br>  + *        - if(IX_FEATURE_CTRL_SWCONFIG_DISABLED !=  + *            ixFeatureCtrlSwConfigurationCheck(IX_FEATURECTRL_ETH_LEARNING)) <br> + *        - if(IX_FEATURE_CTRL_SWCONFIG_ENABLED ==  + *            ixFeatureCtrlSwConfigurationCheck(IX_FEATURECTRL_ETH_LEARNING)) <br> + * + * This function is typically called during access component initialization time.  + * + * @param swConfigType @ref IxFeatureCtrlSwConfig [in] - the type of a software configuration + *        defined in IxFeatureCtrlSwConfig enumeration.           + *         + * @return  + *      - IX_FEATURE_CTRL_SWCONFIG_ENABLED if software configuration is enabled.  + *      - IX_FEATURE_CTRL_SWCONFIG_DISABLED if software configuration is disabled.             + */  +PUBLIC IX_STATUS +ixFeatureCtrlSwConfigurationCheck (IxFeatureCtrlSwConfig swConfigType); + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @fn void ixFeatureCtrlSwConfigurationWrite (IxFeatureCtrlSwConfig swConfigType, BOOL enabled) + *  + * @brief This function enable/disable the specified software configuration.   + * + *        Usage Example:<br>  + *        - ixFeatureCtrlSwConfigurationWrite(IX_FEATURECTRL_ETH_LEARNING, TRUE) is used + *          to enable Ethernet Learning Feature <br> + *        - ixFeatureCtrlSwConfigurationWrite(IX_FEATURECTRL_ETH_LEARNING, FALSE) is used + *          to disable Ethernet Learning Feature <br>  + * + * @param swConfigType IxFeatureCtrlSwConfig [in] - the type of a software configuration + *        defined in IxFeatureCtrlSwConfig enumeration.  + * @param enabled BOOL [in] - To enable(TRUE) / disable (FALSE) the specified software + *                           configuration.             + * + * @return none + *           + */  +PUBLIC void +ixFeatureCtrlSwConfigurationWrite (IxFeatureCtrlSwConfig swConfigType, BOOL enabled); + +/** + * @ingroup IxFeatureCtrlAPI  + * + * @fn void ixFeatureCtrlIxp400SwVersionShow (void) + *  + * @brief This function shows the current software release information for IXP400  + *           + * @return none + *           + */  +PUBLIC void +ixFeatureCtrlIxp400SwVersionShow (void); + +#endif /* IXFEATURECTRL_H */ + +/** + * @} defgroup IxFeatureCtrlAPI + */ |