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

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

?? sysfei82557end.c

?? Vxworks For PC Pentium 的BSP,已在Vmware上調試通過,可以在pentium/pentiumII/pentium/PentiumIV 上運行,以太網口工作正常. 調試環境,
?? 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色图| 久久成人免费日本黄色| 日本黄色一区二区| 中文字幕在线观看一区| 久久精品国产在热久久| jiyouzz国产精品久久| 亚洲精品免费在线| 国产网站一区二区| 久久国产精品免费| 欧美私模裸体表演在线观看| 中文字幕在线免费不卡| 国产福利一区在线观看| 日韩欧美区一区二| 午夜久久福利影院| 色嗨嗨av一区二区三区| 国产精品妹子av| 国产不卡高清在线观看视频| 日本欧美一区二区| 欧美在线|欧美| 亚洲欧美欧美一区二区三区| 国产成人8x视频一区二区| 久久免费的精品国产v∧| 美女任你摸久久| 日韩欧美一区二区在线视频| 天天综合网天天综合色| 欧美猛男gaygay网站| 亚洲午夜久久久久久久久电影院| 色香蕉成人二区免费| 中文字幕日本不卡| 成人精品高清在线| 中文无字幕一区二区三区| 国产精品一区二区不卡| 国产亚洲欧美日韩在线一区| 国产麻豆精品久久一二三| 欧美精品一区二区久久久| 久久成人麻豆午夜电影| 精品黑人一区二区三区久久| 免费成人美女在线观看.| 日韩午夜激情视频| 日韩福利电影在线观看| 51精品国自产在线| 麻豆91免费观看| 欧美sm极限捆绑bd| 国产一区二区女| 国产日韩欧美精品在线| 国产成人久久精品77777最新版本| 久久久www免费人成精品| 国产精品亚洲第一| 中文字幕五月欧美| 在线精品亚洲一区二区不卡| 亚洲一卡二卡三卡四卡| 欧美午夜精品久久久| 五月婷婷久久综合| 日韩一区二区免费在线电影| 精品一区二区久久久| 久久精品亚洲国产奇米99| 成人99免费视频| 亚洲综合色视频| 91精品国产高清一区二区三区蜜臀 | 国产真实精品久久二三区| 久久亚洲春色中文字幕久久久| 国产成人综合在线播放| 综合婷婷亚洲小说| 欧美日韩电影在线| 极品销魂美女一区二区三区| 国产欧美精品国产国产专区| 成人av免费在线| 亚洲综合av网| 日韩一级黄色片| 成人精品国产一区二区4080 | 欧美一区二区三区不卡| 国产成人免费9x9x人网站视频| 亚洲欧洲国产日韩| 欧美美女黄视频| 国产毛片精品一区| 亚洲免费观看在线视频| 91麻豆精品国产自产在线观看一区| 狠狠色2019综合网| 亚洲日本韩国一区| 欧美电影免费观看高清完整版在线 | 国产精品免费视频一区| 欧美影视一区二区三区| 精品一区二区三区免费观看| 中文字幕欧美一| 3d动漫精品啪啪| 国产精品66部| 亚洲综合在线免费观看| 久久日韩粉嫩一区二区三区 | 日本午夜精品一区二区三区电影| 久久久久久久久久看片| 欧日韩精品视频| 国产一区中文字幕| 亚洲综合在线观看视频| 国产亚洲一区二区在线观看| 欧美性感一区二区三区| 国产精品一区二区在线观看网站| 亚洲午夜三级在线| 亚洲国产精品av| 日韩三级在线免费观看| 色综合天天综合色综合av| 精品中文字幕一区二区小辣椒| 亚洲色图色小说| 精品国产乱子伦一区| 欧美在线不卡视频| 国产v综合v亚洲欧| 麻豆精品久久久| 一区二区三区四区在线| 久久久久久久久99精品| 欧美欧美午夜aⅴ在线观看| 成人a免费在线看| 久草热8精品视频在线观看| 一区二区三区资源| 国产精品视频免费| 精品粉嫩aⅴ一区二区三区四区| 欧美性生交片4| 99久久久久免费精品国产| 激情深爱一区二区| 日韩有码一区二区三区| 亚洲猫色日本管| 欧美激情中文字幕一区二区| 日韩欧美国产一区二区在线播放| 欧洲亚洲精品在线| 不卡视频一二三四| 激情综合色播激情啊| 亚洲成人手机在线| 日韩理论片中文av| 亚洲国产成人午夜在线一区| 精品精品国产高清a毛片牛牛 | 欧美美女网站色| 日本久久精品电影| 成人av在线影院| 国产高清视频一区| 精品亚洲成a人在线观看| 美女一区二区在线观看| 午夜精品久久久久久久99水蜜桃| 亚洲靠逼com| 亚洲人成精品久久久久久| 国产精品日韩成人| 国产女人18水真多18精品一级做| 精品福利二区三区| 精品99999| 精品国产123| 欧美精品一区二区在线观看| 日韩亚洲欧美中文三级| 777久久久精品| 制服丝袜亚洲色图| 制服丝袜亚洲网站| 日韩一区二区高清| 日韩精品一区二区三区三区免费| 91精品在线麻豆| 91麻豆精品国产91久久久资源速度| 欧美日韩国产另类不卡| 欧美日韩久久久久久| 欧美日韩免费在线视频| 欧美揉bbbbb揉bbbbb| 欧美精品日韩一本| 欧美一区二区三区视频免费| 91精品国产手机| 精品国产三级a在线观看| 精品国产乱码久久久久久影片| 欧美tk丨vk视频| 国产日韩欧美精品电影三级在线| 国产精品美女视频| 亚洲精品老司机| 亚洲va韩国va欧美va精品| 青青草原综合久久大伊人精品| 蜜桃av一区二区| 国产精品系列在线观看| 春色校园综合激情亚洲| 99re6这里只有精品视频在线观看| 一本色道久久综合精品竹菊| 欧美丝袜第三区| 日韩一级大片在线观看| 久久久久久久久免费| 国产精品福利一区二区三区| 一区二区三区国产| 日韩制服丝袜av| 国产精品1区2区| 97国产一区二区| 欧美日韩国产小视频在线观看| 日韩欧美一区二区视频| 欧美激情一区二区三区四区| 亚洲欧美激情一区二区| 日一区二区三区| 国产精品一品二品| av日韩在线网站| 欧美片网站yy| 久久久精品影视| 亚洲美女免费视频| 人禽交欧美网站| 成人免费不卡视频| 欧美喷潮久久久xxxxx| 久久综合九色综合欧美98| 中文字幕亚洲一区二区av在线 | 17c精品麻豆一区二区免费| 亚洲午夜免费视频| 国精产品一区一区三区mba桃花| av午夜精品一区二区三区|