diff options
Diffstat (limited to 'drivers/net/npe/IxFeatureCtrl.c')
| -rw-r--r-- | drivers/net/npe/IxFeatureCtrl.c | 398 | 
1 files changed, 0 insertions, 398 deletions
| diff --git a/drivers/net/npe/IxFeatureCtrl.c b/drivers/net/npe/IxFeatureCtrl.c deleted file mode 100644 index 0b6807d9d..000000000 --- a/drivers/net/npe/IxFeatureCtrl.c +++ /dev/null @@ -1,398 +0,0 @@ -/** - * @file IxFeatureCtrl.c - * - * @author Intel Corporation - * @date 29-Jan-2003 - * - * @brief Feature Control Public API Implementation - * - *  - * @par - * IXP400 SW Release version 2.0 - *  - * -- Copyright Notice -- - *  - * @par - * Copyright 2001-2005, Intel Corporation. - * All rights reserved. - *  - * @par - * SPDX-License-Identifier:	BSD-3-Clause - * @par - * -- End of Copyright Notice -- -*/ - -#include "IxOsal.h" -#include "IxVersionId.h" -#include "IxFeatureCtrl.h" - -/* Macro to read from the Feature Control Register */ -#define IX_FEATURE_CTRL_READ(result) \ -do { \ -ixFeatureCtrlExpMap(); \ -(result) = IX_OSAL_READ_LONG(ixFeatureCtrlRegister); \ -} while (0) - -/* Macro to write to the Feature Control Register */ -#define IX_FEATURE_CTRL_WRITE(value) \ -do { \ -ixFeatureCtrlExpMap(); \ -IX_OSAL_WRITE_LONG(ixFeatureCtrlRegister, (value)); \ -} while (0) - -/* - * This is the offset of the feature register relative to the base of the - * Expansion Bus Controller MMR. - */ -#define IX_FEATURE_CTRL_REG_OFFSET (0x00000028) - - -/* Boolean to mark the fact that the EXP_CONFIG address space was mapped */ -PRIVATE BOOL ixFeatureCtrlExpCfgRegionMapped = false; - -/* Pointer holding the virtual address of the Feature Control Register */ -PRIVATE VUINT32 *ixFeatureCtrlRegister = NULL; - -/* Place holder to store the software configuration */ -PRIVATE BOOL swConfiguration[IX_FEATURECTRL_SWCONFIG_MAX]; - -/* Flag to control swConfiguration[] is initialized once */ -PRIVATE BOOL swConfigurationFlag = false ; - -/* Array containing component mask values */ -#ifdef __ixp42X -UINT32 componentMask[IX_FEATURECTRL_MAX_COMPONENTS] = { -    (0x1<<IX_FEATURECTRL_RCOMP), -    (0x1<<IX_FEATURECTRL_USB), -    (0x1<<IX_FEATURECTRL_HASH), -    (0x1<<IX_FEATURECTRL_AES), -    (0x1<<IX_FEATURECTRL_DES), -    (0x1<<IX_FEATURECTRL_HDLC), -    (0x1<<IX_FEATURECTRL_AAL), -    (0x1<<IX_FEATURECTRL_HSS), -    (0x1<<IX_FEATURECTRL_UTOPIA), -    (0x1<<IX_FEATURECTRL_ETH0), -    (0x1<<IX_FEATURECTRL_ETH1), -    (0x1<<IX_FEATURECTRL_NPEA), -    (0x1<<IX_FEATURECTRL_NPEB), -    (0x1<<IX_FEATURECTRL_NPEC), -    (0x1<<IX_FEATURECTRL_PCI), -    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE, -    (0x3<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT), -    (0x1<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT_BIT2), -    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE, -    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE, -    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE, -    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE, -    IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE -}; -#elif defined (__ixp46X) -UINT32 componentMask[IX_FEATURECTRL_MAX_COMPONENTS] = { -    (0x1<<IX_FEATURECTRL_RCOMP), -    (0x1<<IX_FEATURECTRL_USB), -    (0x1<<IX_FEATURECTRL_HASH), -    (0x1<<IX_FEATURECTRL_AES), -    (0x1<<IX_FEATURECTRL_DES), -    (0x1<<IX_FEATURECTRL_HDLC), -    IX_FEATURECTRL_COMPONENT_ALWAYS_AVAILABLE,  /* AAL component is always on */ -    (0x1<<IX_FEATURECTRL_HSS), -    (0x1<<IX_FEATURECTRL_UTOPIA), -    (0x1<<IX_FEATURECTRL_ETH0), -    (0x1<<IX_FEATURECTRL_ETH1), -    (0x1<<IX_FEATURECTRL_NPEA), -    (0x1<<IX_FEATURECTRL_NPEB), -    (0x1<<IX_FEATURECTRL_NPEC), -    (0x1<<IX_FEATURECTRL_PCI), -    (0x1<<IX_FEATURECTRL_ECC_TIMESYNC), -    (0x3<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT), -    (0x1<<IX_FEATURECTRL_UTOPIA_PHY_LIMIT_BIT2), /* NOT TO BE USED */ -    (0x1<<IX_FEATURECTRL_USB_HOST_CONTROLLER), -    (0x1<<IX_FEATURECTRL_NPEA_ETH), -    (0x1<<IX_FEATURECTRL_NPEB_ETH), -    (0x1<<IX_FEATURECTRL_RSA), -    (0x3<<IX_FEATURECTRL_XSCALE_MAX_FREQ), -    (0x1<<IX_FEATURECTRL_XSCALE_MAX_FREQ_BIT2) -}; -#endif /* __ixp42X */ - -/** - * Forward declaration - */ -PRIVATE -void ixFeatureCtrlExpMap(void); - -PRIVATE  -void ixFeatureCtrlSwConfigurationInit(void); - -/** - * Function to map EXP_CONFIG space - */ -PRIVATE -void ixFeatureCtrlExpMap(void) -{ -    UINT32 expCfgBaseAddress = 0; - -    /* If the EXP Configuration space has already been mapped then -     * return */ -    if (ixFeatureCtrlExpCfgRegionMapped == true) -    { -	return; -    } - -    /* Map (get virtual address) for the EXP_CONFIG space */ -    expCfgBaseAddress = (UINT32) -	(IX_OSAL_MEM_MAP(IX_OSAL_IXP400_EXP_BUS_REGS_PHYS_BASE, -			   IX_OSAL_IXP400_EXP_REG_MAP_SIZE)); - -    /* Assert that the mapping operation succeeded */ -    IX_OSAL_ASSERT(expCfgBaseAddress); - -    /* Set the address of the Feature register */ -    ixFeatureCtrlRegister = -	(VUINT32 *) (expCfgBaseAddress + IX_FEATURE_CTRL_REG_OFFSET); - -    /* Mark the fact that the EXP_CONFIG space has already been mapped */ -    ixFeatureCtrlExpCfgRegionMapped = true; -} - -/** - * Function definition: ixFeatureCtrlSwConfigurationInit - * This function will only initialize software configuration once. - */ -PRIVATE void ixFeatureCtrlSwConfigurationInit(void) -{ -  UINT32 i; -  if (false == swConfigurationFlag) -  { -    for (i=0; i<IX_FEATURECTRL_SWCONFIG_MAX ; i++) -    { -        /* By default, all software configuration are enabled */ -        swConfiguration[i]= true ; -    } -    /*Make sure this function only initializes swConfiguration[] once*/ -    swConfigurationFlag = true ; -  }   -} - -/** - * Function definition: ixFeatureCtrlRead - */ -IxFeatureCtrlReg  -ixFeatureCtrlRead (void) -{ -    IxFeatureCtrlReg result; - -#if CPU!=SIMSPARCSOLARIS -    /* Read the feature control register */ -    IX_FEATURE_CTRL_READ(result); -    return result; -#else -    /* Return an invalid value for VxWorks simulation */ -    result = 0xFFFFFFFF; -    return result; -#endif -} - -/** - * Function definition: ixFeatureCtrlWrite - */ -void -ixFeatureCtrlWrite (IxFeatureCtrlReg expUnitReg) -{ -#if CPU!=SIMSPARCSOLARIS -    /* Write value to feature control register */ -    IX_FEATURE_CTRL_WRITE(expUnitReg); -#endif -} - - -/** - * Function definition: ixFeatureCtrlHwCapabilityRead - */ -IxFeatureCtrlReg -ixFeatureCtrlHwCapabilityRead (void) -{  -  IxFeatureCtrlReg currentReg, hwCapability; -   -  /* Capture a copy of feature control register */ -  currentReg = ixFeatureCtrlRead();  - -  /* Try to enable all hardware components.  -   * Only software disable hardware can be enabled again */ -  ixFeatureCtrlWrite(0); -   -  /* Read feature control register to know the hardware capability. */  -  hwCapability = ixFeatureCtrlRead(); -      -  /* Restore initial feature control value */ -  ixFeatureCtrlWrite(currentReg); - -  /* return Hardware Capability */ -  return hwCapability;   -} - - -/** - * Function definition: ixFeatureCtrlComponentCheck - */ -IX_STATUS  -ixFeatureCtrlComponentCheck (IxFeatureCtrlComponentType componentType) -{ -  IxFeatureCtrlReg expUnitReg;  -  UINT32 mask = 0; - -  /* Lookup mask of component */ -  mask=componentMask[componentType]; - -  /* Check if mask is available or not */ -  if(IX_FEATURECTRL_COMPONENT_NOT_AVAILABLE == mask) -  { -      return IX_FEATURE_CTRL_COMPONENT_DISABLED; -  } - -  if(IX_FEATURECTRL_COMPONENT_ALWAYS_AVAILABLE == mask) -  { -      return IX_FEATURE_CTRL_COMPONENT_ENABLED; -  } - -  /* Read feature control register to know current hardware capability. */  -  expUnitReg = ixFeatureCtrlRead(); - -  /* For example: To check for Hashing Coprocessor (bit-2)  -   *                   expUniteg    = 0x0010 -   *                  ~expUnitReg   = 0x1101  -   *                  componentType = 0x0100 -   *    ~expUnitReg & componentType = 0x0100 (Not zero)                       -   */ -  -  /*  -   * Inverse the bit value because available component is 0 in value  -   */ -  expUnitReg = ~expUnitReg ; - -  if (expUnitReg & mask) -  { -     return (IX_FEATURE_CTRL_COMPONENT_ENABLED); -  }    -  else -  {   -     return (IX_FEATURE_CTRL_COMPONENT_DISABLED); -  }  -} - - -/** - * Function definition: ixFeatureCtrlProductIdRead - */ -IxFeatureCtrlProductId -ixFeatureCtrlProductIdRead () -{ -#if CPU!=SIMSPARCSOLARIS -  IxFeatureCtrlProductId  pdId = 0 ; -    -  /* Use ARM instruction to move register0 from coprocessor to ARM register */  -     -#ifndef __wince -    __asm__("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(pdId) :); -#else -       -#ifndef IN_KERNEL -        BOOL  mode; -#endif -    extern  IxFeatureCtrlProductId AsmixFeatureCtrlProductIdRead(); -     -#ifndef IN_KERNEL -    mode = SetKMode(true); -#endif -    pdId = AsmixFeatureCtrlProductIdRead(); -#ifndef IN_KERNEL -    SetKMode(mode); -#endif - -#endif -  return (pdId); -#else -  /* Return an invalid value for VxWorks simulation */ -  return 0xffffffff; -#endif -} - -/** - * Function definition: ixFeatureCtrlDeviceRead - */ -IxFeatureCtrlDeviceId -ixFeatureCtrlDeviceRead () -{ -  return ((ixFeatureCtrlProductIdRead() >> IX_FEATURE_CTRL_DEVICE_TYPE_OFFSET)  -             & IX_FEATURE_CTRL_DEVICE_TYPE_MASK); -} /* End function ixFeatureCtrlDeviceRead */ - - -/** - * Function definition: ixFeatureCtrlSwConfigurationCheck - */ -IX_STATUS -ixFeatureCtrlSwConfigurationCheck (IxFeatureCtrlSwConfig swConfigType) -{ -  if (swConfigType >= IX_FEATURECTRL_SWCONFIG_MAX)   -  { -     ixOsalLog(IX_OSAL_LOG_LVL_WARNING,  -               IX_OSAL_LOG_DEV_STDOUT, -               "FeatureCtrl: Invalid software configuraiton input.\n", -               0, 0, 0, 0, 0, 0);   - -     return IX_FEATURE_CTRL_SWCONFIG_DISABLED; -  } - -  /* The function will only initialize once. */ -  ixFeatureCtrlSwConfigurationInit(); -   -  /* Check and return software configuration */ -  return  ((swConfiguration[(UINT32)swConfigType] == true) ? IX_FEATURE_CTRL_SWCONFIG_ENABLED: IX_FEATURE_CTRL_SWCONFIG_DISABLED); -} - -/** - * Function definition: ixFeatureCtrlSwConfigurationWrite - */ -void -ixFeatureCtrlSwConfigurationWrite (IxFeatureCtrlSwConfig swConfigType, BOOL enabled) -{ -  if (swConfigType >= IX_FEATURECTRL_SWCONFIG_MAX)   -  { -     ixOsalLog(IX_OSAL_LOG_LVL_WARNING,  -               IX_OSAL_LOG_DEV_STDOUT, -               "FeatureCtrl: Invalid software configuraiton input.\n", -               0, 0, 0, 0, 0, 0);   - -     return; -  } - -  /* The function will only initialize once. */ -  ixFeatureCtrlSwConfigurationInit(); -   -  /* Write software configuration */ -  swConfiguration[(UINT32)swConfigType]=enabled ; -} - -/** - * Function definition: ixFeatureCtrlIxp400SwVersionShow - */ -void -ixFeatureCtrlIxp400SwVersionShow (void) -{ -    printf ("\nIXP400 Software Release %s %s\n\n", IX_VERSION_ID, IX_VERSION_INTERNAL_ID); - -} - -/** - * Function definition: ixFeatureCtrlSoftwareBuildGet - */ -IxFeatureCtrlBuildDevice -ixFeatureCtrlSoftwareBuildGet (void) -{ -    #ifdef __ixp42X -    return IX_FEATURE_CTRL_SW_BUILD_IXP42X; -    #else -    return IX_FEATURE_CTRL_SW_BUILD_IXP46X; -    #endif -} |