亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ixfeaturectrl.c

?? u-boot1.3.0的原碼,從配了網絡驅動和FLASH的驅動,并該用ESC竟如
?? C
字號:
/** * @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 * 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 --*/#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 __ixp42XUINT32 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 */PRIVATEvoid ixFeatureCtrlExpMap(void);PRIVATE void ixFeatureCtrlSwConfigurationInit(void);/** * Function to map EXP_CONFIG space */PRIVATEvoid 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 */voidixFeatureCtrlWrite (IxFeatureCtrlReg expUnitReg){#if CPU!=SIMSPARCSOLARIS    /* Write value to feature control register */    IX_FEATURE_CTRL_WRITE(expUnitReg);#endif}/** * Function definition: ixFeatureCtrlHwCapabilityRead */IxFeatureCtrlRegixFeatureCtrlHwCapabilityRead (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 */IxFeatureCtrlProductIdixFeatureCtrlProductIdRead (){#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 */IxFeatureCtrlDeviceIdixFeatureCtrlDeviceRead (){  return ((ixFeatureCtrlProductIdRead() >> IX_FEATURE_CTRL_DEVICE_TYPE_OFFSET)              & IX_FEATURE_CTRL_DEVICE_TYPE_MASK);} /* End function ixFeatureCtrlDeviceRead *//** * Function definition: ixFeatureCtrlSwConfigurationCheck */IX_STATUSixFeatureCtrlSwConfigurationCheck (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 */voidixFeatureCtrlSwConfigurationWrite (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 */voidixFeatureCtrlIxp400SwVersionShow (void){    printf ("\nIXP400 Software Release %s %s\n\n", IX_VERSION_ID, IX_VERSION_INTERNAL_ID);}/** * Function definition: ixFeatureCtrlSoftwareBuildGet */IxFeatureCtrlBuildDeviceixFeatureCtrlSoftwareBuildGet (void){    #ifdef __ixp42X    return IX_FEATURE_CTRL_SW_BUILD_IXP42X;    #else    return IX_FEATURE_CTRL_SW_BUILD_IXP46X;    #endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区成人在线观看| 一区二区三区四区不卡在线 | 国产欧美一区二区精品性色| 亚洲最大成人综合| 国产成人h网站| 欧美一区二区三区四区在线观看 | 日韩一区二区三区在线| 亚洲三级在线免费| 国产一区二区福利视频| 欧美亚洲综合网| 亚洲欧洲一区二区在线播放| 激情亚洲综合在线| 9191久久久久久久久久久| 亚洲欧美激情插| 国产成人午夜99999| 日韩欧美高清dvd碟片| 午夜成人在线视频| 欧美亚一区二区| 亚洲色图丝袜美腿| www.色综合.com| 中文字幕免费在线观看视频一区| 久久国产婷婷国产香蕉| 欧美一区三区四区| 亚洲444eee在线观看| 色综合色狠狠综合色| 国产精品毛片久久久久久| 国产精品一二二区| 久久亚洲欧美国产精品乐播 | 一区二区三区免费看视频| 成人污污视频在线观看| 久久视频一区二区| 精品一区二区免费视频| 日韩三级视频中文字幕| 日韩av网站在线观看| 欧美日韩黄色一区二区| 亚洲国产日韩一级| 欧美丝袜丝交足nylons| 一区二区三区在线视频免费观看| 97久久超碰国产精品电影| 国产精品成人午夜| 成人黄色一级视频| 最新久久zyz资源站| 成人美女视频在线观看18| 国产精品卡一卡二卡三| 成人99免费视频| 中文字幕亚洲在| 色999日韩国产欧美一区二区| 亚洲免费观看高清完整版在线| 91免费观看国产| 亚洲一二三专区| 在线91免费看| 精品一区二区在线看| 久久综合给合久久狠狠狠97色69| 国产精品一级在线| 国产精品国模大尺度视频| 99国产精品99久久久久久| 亚洲欧美成人一区二区三区| 欧美在线999| 亚洲超碰97人人做人人爱| 3d成人动漫网站| 韩国视频一区二区| 亚洲国产精品传媒在线观看| 一本在线高清不卡dvd| 亚洲成人先锋电影| 欧美videossexotv100| 国产在线一区二区综合免费视频| 日本一区二区不卡视频| 91在线云播放| 日韩精品一卡二卡三卡四卡无卡| 精品国产自在久精品国产| 风流少妇一区二区| 一区二区三区毛片| 日韩欧美久久久| av电影在线不卡| 天天综合日日夜夜精品| 精品国产髙清在线看国产毛片| 国产91丝袜在线播放九色| 亚洲精品日日夜夜| 日韩一区二区三区视频在线观看| 丰满少妇久久久久久久| 亚洲午夜一二三区视频| 精品欧美一区二区久久| 波波电影院一区二区三区| 亚洲综合无码一区二区| 精品国产成人系列| 色综合网站在线| 麻豆国产一区二区| 国产精品不卡一区二区三区| 91精品国产一区二区三区香蕉 | 午夜精品久久久久久久久| 久久夜色精品国产欧美乱极品| 91色综合久久久久婷婷| 麻豆精品在线播放| 亚洲品质自拍视频| 欧美成人免费网站| 色综合中文综合网| 成人精品gif动图一区| 亚洲高清三级视频| 欧美韩国日本不卡| 欧美一区二区在线看| 成人aa视频在线观看| 蜜臀av性久久久久蜜臀aⅴ| 综合网在线视频| 久久综合色鬼综合色| 欧美亚洲国产一区二区三区 | 秋霞午夜av一区二区三区| 奇米777欧美一区二区| 国产精品久久国产精麻豆99网站| 69av一区二区三区| 99国产精品久久久| 国产精品综合av一区二区国产馆| 亚洲成人av一区二区| 国产精品成人一区二区艾草| 精品美女一区二区| 欧美日韩一区久久| av在线综合网| 国模无码大尺度一区二区三区| 亚洲一区二区不卡免费| 国产精品久久久久久妇女6080| 日韩欧美不卡在线观看视频| 欧美熟乱第一页| 91麻豆免费看片| 成人免费va视频| 国产一区二区三区最好精华液| 丝袜脚交一区二区| 亚洲一区二区三区激情| 亚洲欧美日韩国产手机在线| 国产精品视频一二三| 精品国产乱码久久久久久浪潮 | 91丨porny丨最新| 国产精品99久久久久| 久久精品72免费观看| 日本免费在线视频不卡一不卡二 | 中文字幕二三区不卡| 26uuu欧美| 欧美mv日韩mv国产| 日韩一区二区电影| 欧美一区二区三区免费大片| 欧美日韩aaaaaa| 欧美日韩精品三区| 欧美日韩午夜精品| 欧美视频完全免费看| 色嗨嗨av一区二区三区| 99re成人在线| 91麻豆精品秘密| 91在线观看免费视频| bt欧美亚洲午夜电影天堂| 国产iv一区二区三区| 国产成人精品亚洲777人妖| 国产一区二区免费在线| 国产乱子伦一区二区三区国色天香| 蜜桃视频在线观看一区二区| 日本在线不卡视频| 日韩黄色免费电影| 日韩avvvv在线播放| 亚洲国产综合人成综合网站| 亚洲高清视频中文字幕| 亚洲二区在线观看| 婷婷夜色潮精品综合在线| 丝袜美腿成人在线| 裸体一区二区三区| 激情国产一区二区| 国产丶欧美丶日本不卡视频| 国产91精品入口| 99国产欧美另类久久久精品| 日本道色综合久久| 欧美在线看片a免费观看| 欧美精品色综合| 91精品国产一区二区三区蜜臀| 欧美xxxx在线观看| 国产三级精品三级| 亚洲视频一区在线观看| 一区二区三区高清在线| 亚洲va欧美va天堂v国产综合| 天堂精品中文字幕在线| 另类欧美日韩国产在线| 国产馆精品极品| 91在线视频播放| 欧美日韩综合不卡| 日韩欧美一二区| 国产精品色噜噜| 一区二区三区四区精品在线视频| 亚洲h在线观看| 激情综合网av| 成人91在线观看| 欧美日韩久久久| 精品少妇一区二区三区免费观看 | 亚洲男人的天堂av| 偷拍一区二区三区| 国产一区二区精品久久91| www.色综合.com| 3d动漫精品啪啪1区2区免费| 久久美女高清视频| 亚洲男女一区二区三区| 人人狠狠综合久久亚洲| 成人免费黄色大片| 欧美性受xxxx黑人xyx| 26uuu亚洲综合色欧美 | 精品精品欲导航| 综合久久国产九一剧情麻豆|