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

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

?? sysfei82557end.c

?? vxworks嵌入式開發vmware bsp包 其中已包括網卡的驅動 本人試過 非常好用
?? C
?? 第 1 頁 / 共 3 頁
字號:
    /* update the board-specific resource table */    feiPciResources[feiUnits].bar[0]     = memIo32;    feiPciResources[feiUnits].bar[1]     = ioBase;    feiPciResources[feiUnits].bar[2]     = flash32;    feiPciResources[feiUnits].irq        = irq;    feiPciResources[feiUnits].irqvec     = INT_NUM_GET (irq);    feiPciResources[feiUnits].vendorID   = vendorId;    feiPciResources[feiUnits].deviceID   = deviceId;    feiPciResources[feiUnits].revisionID = revisionId;    feiPciResources[feiUnits].boardType  = boardType;    /* the following support legacy interfaces and data structures */    feiPciResources[feiUnits].pciBus     = pciBus;    feiPciResources[feiUnits].pciDevice  = pciDevice;    feiPciResources[feiUnits].pciFunc    = pciFunc;    /* enable mapped memory and IO decoders */    pciConfigOutWord (pciBus, pciDevice, pciFunc, PCI_CFG_COMMAND,                      PCI_CMD_MEM_ENABLE | PCI_CMD_IO_ENABLE |                      PCI_CMD_MASTER_ENABLE);    /* disable sleep mode */    pciConfigOutByte (pciBus, pciDevice, pciFunc, PCI_CFG_MODE,                      SLEEP_MODE_DIS);    ++feiUnits;  /* increment number of units initialized */    return (OK);    }/********************************************************************************* sys557Init - prepare 82557 PCI ethernet device for initialization** This routine is expected to perform any adapter-specific or target-specific* initialization that must be done before an 82557 device is initialized* by the driver.** The 82557 drivers call this routine in the course of initializing driver* internal structures and the associated underlying physical device.  The* drivers will call this routine every time there is a requirement to* [re]initialize the device.** INTERNAL* The fei82557End driver will call this function in the second pass of the* xxxEndLoad() routine.** RETURNS:* OK, or ERROR if the device could not be prepared for initialization.*/STATUS sys557Init    (    int                  unit,    /* END driver unit number */    FEI_BOARD_INFO *     pBoard   /* board information for the END driver */    )    {    PCI_BOARD_RESOURCE * pRsrc;   /* point to a board PCI resource entry */    FEI_RESOURCE *       pReso;   /* point to board extended resources */    /* alias BOARD_INFO <enetAddr> for a more efficient data copy */    UINT16 * const pBoardEnetAddr = (UINT16 * const)(pBoard->enetAddr);    /* is there a PCI resource associated with this driver unit ? */    if (unit >= feiUnits)        {        /* This is an error - no physical devs available to this unit */        return ERROR;        }    /* associate the driver unit number with a PCI resource */    pRsrc  = &feiPciResources [unit];    pReso  = (FEI_RESOURCE *)(pRsrc->pExtended);    /* perform one-time base initialization ? */    if (pReso->initDone == FALSE)        {        /* read the configuration in EEPROM */        UINT16  sum = 0;        UINT16  value;        int     ix;        for (ix = 0; ix < EE_SIZE; ix++)             {            value = sys557eepromRead (unit, ix);            pReso->eeprom[ix] = value;            sum += value;            }        if (sum != EE_CHECKSUM)            {            printf ("i8255x(%d): Invalid EEPROM checksum %#4.4x\n", unit, sum);            }        /* Handle Intel 82801BA/M ICH2 Errata ? */        if (pRsrc->boardType == TYPE_I82562ET_PCI)            {            value = pReso->eeprom[0x0A];            if (value & 0x02)                {                puts ("Found Intel 82562 with Standby Enable set.  "                      "Fixing and rebooting ...");                sys557eepromWrite (unit, 0x0A, (value & ~0x02));                sys557eepromChecksumSet (unit);                taskDelay (5 * sysClkRateGet ());                sysToMonitor (BOOT_COLD);                }            }        /* NS DP83840 Physical Layer Device specific setup */        if (((pReso->eeprom[6] >> 8) & 0x3f) == DP83840)            {            UINT16 reg23 = sys557mdioRead (unit, pReso->eeprom[6] & 0x1f, 23);            sys557mdioWrite (unit, pReso->eeprom[6] & 0x1f, 23, reg23 | 0x0420);            }        /* perform system self-test */        pReso->timeout  = 16000;    /* self-test timeout */        pReso->pResults = (volatile INT32 *)((((int) pReso->str) + 0xf) & ~0xf);        pReso->pResults[0] = 0;        pReso->pResults[1] = -1;        sysOutLong ((pRsrc->bar[1]) + SCB_PORT, (int)(pReso->pResults) | 1);        do  {            sysDelay ();        /* delay for one IO read cycle */            } while ((pReso->pResults[1] == -1)  &&  (--(pReso->timeout) >= 0));        /* bind driver-specific PCI interrupt connection routines */        feiEndIntConnect    = (FUNCPTR) pciIntConnect;        feiEndIntDisconnect = (FUNCPTR) pciIntDisconnect;        pReso->initDone = TRUE;        }    /* initialize the board information structure */    /* pass along the PCI Device ID to support the fix for SPR# 69298 */    pBoard->spare1    = pRsrc->deviceID;    pBoard->vector    = INT_NUM_GET (pRsrc->irq);    pBoard->baseAddr  = pRsrc->bar[0];    /* copy the Ethernet address to the board information structure */    pBoardEnetAddr[0] = pReso->eeprom[0];    pBoardEnetAddr[1] = pReso->eeprom[1];    pBoardEnetAddr[2] = pReso->eeprom[2];    pBoard->intEnable     = sys557IntEnable;    pBoard->intDisable    = sys557IntDisable;    pBoard->intAck        = sys557IntAck;    pBoard->sysLocalToBus = NULL;     pBoard->sysBusToLocal = NULL; #ifdef FEI_10MB     pBoard->phySpeed      = NULL;    pBoard->phyDpx        = NULL;#endif    return (OK);    }/********************************************************************************* sys557IntAck - acknowledge an 82557 PCI ethernet device interrupt** This routine performs any 82557 interrupt acknowledge that may be* required.  This typically involves an operation to some interrupt* control hardware.** This routine gets called from the 82557 driver's interrupt handler.** This routine assumes that the PCI configuration information has already* been setup.** RETURNS: OK, or ERROR if the interrupt could not be acknowledged.*/LOCAL STATUS sys557IntAck    (    int      unit                /* END driver unit number */    )    {    return (OK);    }/********************************************************************************* sys557IntEnable - enable 82557 PCI ethernet device interrupts** This routine enables 82557 interrupts.  This may involve operations on* interrupt control hardware.** The 82557 driver calls this routine throughout normal operation to terminate* critical sections of code.** This routine assumes that the PCI configuration information has already* been setup.** RETURNS: OK, or ERROR if interrupts could not be enabled.*/LOCAL STATUS sys557IntEnable    (    int    unit                /* END driver unit number */    )    {    return ((unit >= feiUnits) ? ERROR :           (sysIntEnablePIC (feiPciResources[unit].irq)));    }/********************************************************************************* sys557IntDisable - disable 82557 PCI ethernet device interrupts** This routine disables 82557 interrupts.  This may involve operations on* interrupt control hardware.** The 82557 driver calls this routine throughout normal operation to enter* critical sections of code.** This routine assumes that the PCI configuration information has already* been setup.** RETURNS: OK, or ERROR if interrupts could not be disabled.*/LOCAL STATUS sys557IntDisable    (    int    unit                /* END driver unit number */    )    {    return ((unit >= feiUnits) ? ERROR :           (sysIntDisablePIC (feiPciResources[unit].irq)));    }/********************************************************************************* sys557eepromRead - read a word from 82557 PCI ethernet device EEPROM** RETURNS: The EEPROM data word read in.** NOMANUAL*/LOCAL UINT16 sys557eepromRead    (    int      unit,           /* END driver unit number */    int      location        /* address of word to read */    )    {    UINT16   iobase = (feiPciResources[unit].bar[1]);    UINT16   retval = 0;    UINT16   dataval;    int      ix;    volatile UINT16 dummy;    /* enable EEPROM */    sysOutWord (iobase + SCB_EEPROM, EE_CS);    /* write the READ opcode */    for (ix = EE_CMD_BITS - 1; ix >= 0; ix--)        {        dataval = (EE_CMD_READ & (1 << ix)) ? EE_DI : 0;        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);        sysDelay ();        /* delay for one IO READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval | EE_SK);        sysDelay ();        /* delay for one IO READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);         sysDelay ();        /* delay for one IO READ cycle */        }    /* write the location */    for (ix = EE_ADDR_BITS - 1; ix >= 0; ix--)        {        dataval = (location & (1 << ix)) ? EE_DI : 0;        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);        sysDelay ();        /* delay for one IO READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval | EE_SK);        sysDelay ();        /* delay for one IO READ cycle */        sysOutWord (iobase + SCB_EEPROM, EE_CS | dataval);         sysDelay ();        /* delay for one IO READ cycle */        dummy = sysInWord (iobase + SCB_EEPROM);        }    if ((dummy & EE_DO) == 0)        {        ;  /* dummy read */        }    /* read the data */    for (ix = EE_DATA_BITS - 1; ix >= 0; ix--)        {        sysOutWord (iobase + SCB_EEPROM, EE_CS | EE_SK);        sysDelay ();        /* delay for one IO READ cycle */        retval = (retval << 1) |                  ((sysInWord (iobase + SCB_EEPROM) & EE_DO) ? 1 : 0);        sysOutWord (iobase + SCB_EEPROM, EE_CS);        sysDelay ();        /* delay for one IO READ cycle */        }     /* disable EEPROM */    sysOutWord (iobase + SCB_EEPROM, 0x00);    return (retval);    }/********************************************************************************* sys557eepromWrite - write a word to 82557 PCI ethernet device EEPROM** RETURNS: N/A** NOMANUAL*/LOCAL void sys557eepromWrite    (    int     unit,           /* END driver unit number */    int     location,       /* address of word to write */    UINT16  data            /* the data to write */    )    {    UINT16  iobase = (feiPciResources[unit].bar[1]);    int i;    int j;        /* Enable the EEPROM for writing */    sysOutWord (iobase + SCB_EEPROM, FEI_EECS);    sys557eepromWriteBits (unit, 0x4, 3);    sys557eepromWriteBits (unit, 0x03 << (EE_SIZE_BITS - 2), EE_SIZE_BITS);    sysOutWord (iobase + SCB_EEPROM, 0);    sysDelay ();    /* (1) Activite EEPROM by writing '1' to the EECS bit */    sysOutWord (iobase + SCB_EEPROM, FEI_EECS);    /* (2) Write the WRITE Opcode */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品中文在线观看| 一区二区三区丝袜| 欧美日韩中文国产| 不卡的av网站| 94色蜜桃网一区二区三区| 成人蜜臀av电影| 91久久精品一区二区三| 91色porny在线视频| 成人h动漫精品一区二区| 成人动漫av在线| av激情综合网| 欧美精品日韩一区| 欧美白人最猛性xxxxx69交| 一区二区三区中文字幕| 亚洲专区一二三| 精品一区二区三区在线视频| 亚洲一级片在线观看| 成人自拍视频在线观看| 欧美无砖砖区免费| 日韩精品一区二区在线观看| 国产欧美日韩在线观看| 亚洲一级二级三级在线免费观看| 亚洲午夜三级在线| 日韩在线一区二区| 成人av在线资源| 亚洲免费观看高清在线观看| 天天色 色综合| 91在线国产福利| 精品日韩一区二区三区| 精品国产一区a| 日韩激情一区二区| 在线影视一区二区三区| 26uuu欧美| 日本在线不卡视频| 欧洲一区二区av| 亚洲人成在线播放网站岛国| 日韩精品一二三四| 成人黄色一级视频| 久久精品视频免费| 亚洲福中文字幕伊人影院| 99re热视频精品| 成人免费在线播放视频| 成人app软件下载大全免费| 精品久久久久久久久久久久包黑料 | 成人av影视在线观看| 欧美精品一区二区在线观看| 亚洲一区成人在线| 91在线播放网址| 国产亚洲欧洲997久久综合 | 亚洲小说春色综合另类电影| 91女神在线视频| 亚洲女厕所小便bbb| 在线免费观看日韩欧美| 亚洲私人影院在线观看| 色综合一个色综合| 亚洲人成精品久久久久| 色综合久久综合网97色综合| 中文字幕一区二区三区蜜月| 99riav久久精品riav| 亚洲国产欧美日韩另类综合| 91精品国产高清一区二区三区| 免费日韩伦理电影| 精品日韩av一区二区| 寂寞少妇一区二区三区| 欧美国产精品劲爆| 色婷婷av一区| 国产成人在线网站| 亚洲欧美日韩中文播放| 日韩视频在线你懂得| 91香蕉视频在线| 国产美女在线观看一区| 亚洲一区二区av电影| 久久午夜老司机| 91美女片黄在线| 国产福利不卡视频| 日本伊人午夜精品| 亚洲一区二区三区在线看| 26uuu亚洲综合色欧美| 日韩欧美一级精品久久| 日韩一区二区三区四区| 日韩欧美国产1| 日韩欧美国产综合一区| 精品国产99国产精品| 精品国产乱子伦一区| 欧美xxxxxxxxx| 国产欧美精品区一区二区三区 | 91精品福利在线| 日本道色综合久久| 91麻豆精品国产自产在线观看一区| 欧美在线999| 日韩欧美不卡在线观看视频| 久久综合色综合88| 欧美国产激情二区三区| 亚洲美腿欧美偷拍| 日韩成人av影视| 懂色av一区二区三区蜜臀| 在线视频国产一区| 久久久综合九色合综国产精品| 国产亚洲一本大道中文在线| 亚洲天堂2016| 久久99精品一区二区三区| www.亚洲国产| 精品福利视频一区二区三区| 18欧美乱大交hd1984| 精品一区二区三区不卡| 色88888久久久久久影院按摩| 91精品国产免费| 亚洲激情在线播放| 国产传媒一区在线| 日韩一卡二卡三卡四卡| 国产精品美女视频| 国产一区二区伦理| 欧美一区二区三区视频在线| 亚洲三级在线免费| 高清不卡在线观看av| 精品精品国产高清a毛片牛牛 | 欧美日韩精品免费观看视频| 国产精品天天看| 国产不卡免费视频| 久久久精品综合| 国产一区二区三区在线观看免费视频| 91看片淫黄大片一级在线观看| 久久网站热最新地址| 久久精品国产免费看久久精品| 欧美日韩黄色一区二区| 亚洲蜜臀av乱码久久精品| 欧美日韩的一区二区| 久久婷婷国产综合国色天香| 美女脱光内衣内裤视频久久网站 | 欧美精品一区二区三区蜜臀 | 欧美性受xxxx| 日本在线播放一区二区三区| 91久久一区二区| 日韩主播视频在线| 日韩欧美国产一区二区在线播放| 日本欧美韩国一区三区| 欧美不卡123| 成人免费视频一区二区| 亚洲精品美国一| 欧美一区二区三区在线观看| 久久99精品久久久久久国产越南 | 国产制服丝袜一区| 亚洲欧美一区二区视频| 欧美性色黄大片| 另类欧美日韩国产在线| 国产精品五月天| 欧美一区二区播放| 91丝袜美女网| 毛片一区二区三区| 亚洲欧美综合网| 欧美另类变人与禽xxxxx| 欧美在线免费播放| 日本不卡视频在线| 亚洲主播在线观看| 国产三级精品三级在线专区| 制服视频三区第一页精品| 91丨porny丨中文| 国产成人啪免费观看软件| 日韩不卡一区二区| 日韩伦理免费电影| 国产欧美在线观看一区| 精品88久久久久88久久久| 欧美日韩国产另类一区| 91在线国产观看| 一本大道久久a久久综合| 成人毛片老司机大片| 狠狠色伊人亚洲综合成人| 男男视频亚洲欧美| 天堂精品中文字幕在线| 亚洲成人激情av| 偷窥少妇高潮呻吟av久久免费| 亚洲图片一区二区| 日韩av中文在线观看| 日韩成人一级片| 久久99精品久久久久久国产越南| 日韩激情在线观看| 国产激情一区二区三区| 不卡的av电影在线观看| 99riav久久精品riav| 欧美日韩日日夜夜| 91精品国产色综合久久久蜜香臀| 欧美影片第一页| 精品国产一区二区三区不卡 | 久久精品理论片| 成人av免费在线播放| 欧美三片在线视频观看| 日韩视频免费观看高清完整版在线观看 | 欧美在线短视频| 91精品国产综合久久香蕉麻豆 | 亚洲欧美日韩国产综合在线| 亚洲免费av高清| 青青草原综合久久大伊人精品优势| 日韩av网站免费在线| 国产在线视频一区二区三区| 成人做爰69片免费看网站| 在线亚洲欧美专区二区| 在线成人av网站| www成人在线观看| 午夜精品久久久久影视| 国产成人午夜精品影院观看视频 |