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

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

?? sysfei82557end.c

?? pentium4 pc的vxworks bsp源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* sysFei82557End.c - system configuration module for fei82557End driver */ /* Copyright 1984-2002 Wind River Systems, Inc. *//*modification history--------------------01d,16jul02,jln  Added PCI device ID for 82559 chip in I82845 (spr 79781) 01c,29may02,pai  Added workaround for H/W errata relating to 82562 PHY                 integrated in i82801BA/M ICH2.01b,07nov01,pai  Updated documentation and routines for new device discovery                 algorithm (SPR# 35716).01a,11oct01,pai  Written from sysNetif.  Added dmh 8255x device discovery                 (SPR# 29068).*/ /*DESCRIPTIONThis is the WRS-supplied configuration module for the VxWorksfei82557End (fei) END driver.  It has routines for initializing deviceresources and provides BSP-specific fei82557End driver routines for anyIntel 82557, 82558, 82559, and 82562 fast Ethernet PCI bus controllersfound on the system.The number of supported devices that can be configured for a particularsystem is finite and is specified by the FEI_MAX_UNITS configurationconstant.  This value, and the internal data structures using it, can bemodified in this file for specific implementations.SEE ALSO: muxLib, endLib, ifLib,\tb "Intel 82557 User's Manual,"\tb "Intel 82558 Fast Ethernet PCI Bus Controller with Integrated PHY,"\tb "Intel 82559 Fast Ethernet Multifunction PCI/Cardbus Controller,"\tb "Intel 82559ER Fast Ethernet PCI Controller,"\tb "Intel PRO100B PCI Adapter Driver Technical Reference."INTERNALThe 8255x MII management interface allows the CPU control over the PHY unitvia a control regsiter in the 8255X.  This register, called the ManagementData Interface (MDI) Control Register, allows driver software to place thePHY in specific modes and query the PHY unit for link status.  The structureof the MDI Control Register is described in the following figure.    +-----+--+--+-----+----------+----------+----------------------+    |31 30|29|28|27 26|25      21|20      16|15                   0|    +-----+--+--+-----+----------+----------+----------------------+    | 0  0| I| R|  OP |  PHYADD  |  REGADD  |         DATA         |    +-----+--+--+-----+----------+----------+----------------------+Where:    Bits     Name              -----------------------------     0-15    Data    16-20    PHY Register Address    21-25    PHY Address    26-27    Opcode    28       Ready    29       Interrupt Enable    30-31    ReservedIn a write command, software places the data bits in the "Data" field,and the 8255x shifts them out to the PHY unit.  In a read command the8255x reads these bits serially from the PHY unit, and software canread them from this location.  The "PHY Register Address" field holdsthe PHY register address.  The "PHY Address" field holds the PHY address.The "Opcode" field has valid values:    01 - MDI write    10 - MDI readAny other values for the Opcode field are reserved.  The "Ready" field isset to '1' by the 8255x at the end of an MDI transaction (for example, aread or a write has been completed).  It should be reset to '0' by softwareat the same time the command is written.  The "Interrupt Enable" field,when set to '1' by software, will cause the 8255x to assert an interruptto indicate the end of an MDI cycle.  The "Reserved" field should alwaysbe set to 00b.This configuration module uses local routines sys557mdioRead() andsys557mdioWrite() as an interface for reading and writing MDI data.  BSPusers should not be using these routines to adjust the PHY independent ofthe driver and configuration routines contained herein.ERRATAFrom the Errata secion of Intel document number 298242-015, 'Intel 82801BAI/O Controller Hub 2 (ICH2) and Intel 82801BAM I/O Controller Hub 2 Mobile(ICH2-M) Specification Update':    "30.  LAN Microcontroller PCI Protocol Violation     Problem:     When the ICH2/ICH2-M (using the 82562ET PLC) is receiving large files     from a peer LAN device using the 10 Mbps data rate, the ICH2/ICH2-M     can cause a system lock-up.  Specifically, if the LAN controller has     Standby Enable set (EEPROM Word 0Ah bit-1 = 1), while receiving large     files using the 10 Mbps data rate and receives a CU_RESUME command     when it is just entering IDLE state, the ICH2/ICH2-M will cause a PCI     protocol violation (typically by asserting FRAME# and IRDY# together)     within the next few PCI cycles.  This will cause the PCI bus to     lock-up, further resulting in system lock-up.      Implication:     Large file transfers to the ICH2/ICH2-M using 10 Mpbs can cause the     receiving system to lock-up.      Workaround:     Clear EEPROM Word 0Ah bit-1 to 0.  This will result in an increase     power consumption of the ICH2/ICH2-M of ~ 40 mW.      Status:     There are no plans to fix this erratum."The sys557Init() routine implements the specified workaround for thiserrata.*/#if defined(INCLUDE_FEI_END)/* includes */#include <end.h>#include <drv/end/fei82557End.h>/* defines *//* BSP specific FEI ethernet device type constants */#define TYPE_PRO100B_PCI  (1)           /* Intel EtherExpress PRO-100B PCI */#define TYPE_I82557_PCI   (2)           /* Intel 82557 - 82559 */#define TYPE_I82559_PCI   (3)           /* Intel "InBusiness" model */#define TYPE_I82559ER_PCI (4)           /* Intel 82559ER */#define TYPE_I82562_PCI   (5)           /* Intel ICH2 integrated 82562 */#define TYPE_I82562ET_PCI (6)           /* Intel 82562, PCI Revs 1 & 3 *//* EEPROM control bits */#define EE_SK             (0x01)        /* shift clock */#define EE_CS             (0x02)        /* chip select */#define EE_DI             (0x04)        /* chip data in */#define EE_DO             (0x08)        /* chip data out *//* EEPROM opcode */#define EE_CMD_WRITE      (0x05)        /* WRITE opcode, 101 */#define EE_CMD_READ       (0x06)        /* READ  opcode, 110 */#define EE_CMD_ERASE      (0x07)        /* ERASE opcode, 111 *//* EEPROM misc. defines */#define EE_CMD_BITS       (3)           /* number of opcode bits */#define EE_ADDR_BITS      (6)           /* number of address bits */#define EE_DATA_BITS      (16)          /* number of data bits */#define EE_SIZE           (0x40)        /* 0x40 WORDS */#define EE_SIZE_BITS      (6)#define EE_CHECKSUM       (0xbaba)      /* checksum *//* Management Data Interface (MDI) Register */#define MDI_OPC_READ      (0x08000000)  /* MDI Read command opcode */#define MDI_OPC_WRITE     (0x04000000)  /* MDI Write command opcode *//* form an MDI Read command */#define MDI_COMMAND_RD(phyAddr, regAddr) \    (MDI_OPC_READ | ((phyAddr) << 21) | ((regAddr) << 16))/* form an MDI Write command */#define MDI_COMMAND_WR(phyAddr, regAddr, val) \    (MDI_OPC_WRITE | ((phyAddr) << 21) | ((regAddr) << 16) | (val))/* test the MDI "Ready" field */#define MDI_READY_SET(mdiReg)  ((mdiReg) & 0x10000000)/* get the content of the MDI "Data" field */#define MDI_DATA_GET(mdiReg)   ((UINT16)((UINT32)(mdiReg) & 0x0000ffff))/* PCI Vendor IDs for NICs supported by fei82557End */#define FEI_VENDORID_INTEL     (0x8086)      /* Intel PCI vendor ID */#ifndef INTEL_PCI_VENDOR_ID#define INTEL_PCI_VENDOR_ID    (0x8086)      /* Intel PCI vendor ID */#endif /* INTEL_PCI_VENDOR_ID *//* short list of PCI Device IDs for NICs supported by fei82557End */#define FEI_DEVICEID_i82557        (0x1229)      /* 82557 - 82559 */#define FEI_DEVICEID_i82559        (0x1030)      /* The "InBusiness" model */#define FEI_DEVICEID_i82559ER      (0x1209)      /* 82559ER */#define FEI_DEVICEID_i82562        (0x2449)      /* chipset integrated 82562 */#define FEI_DEVICEID_i82559_I82845 (0x103a)      /* 82559 compatible chip in I82845 */  /* typedefs */typedef struct feiResource             /* FEI_RESOURCE */    {    UINT16           eeprom[EE_SIZE];  /* Ethernet Address of this unit */    INT32            timeout;          /* timeout for the self-test */    INT32            str[6];           /* storage for the self-test result */    volatile INT32 * pResults;         /* pointer to the self-test result */    BOOL             initDone;         /* driver has called sys557Init() */    } FEI_RESOURCE;/* locals */LOCAL UINT32 feiUnits = 0;        /* number of FEIs we found *//* This table defines board extended resources */LOCAL FEI_RESOURCE feiResources [FEI_MAX_UNITS] =    {    {{NONE}, NONE, {NONE}, NULL, FALSE},    {{NONE}, NONE, {NONE}, NULL, FALSE},    {{NONE}, NONE, {NONE}, NULL, FALSE},    {{NONE}, NONE, {NONE}, NULL, FALSE}    };/* This table defines board PCI resources */LOCAL PCI_BOARD_RESOURCE feiPciResources [FEI_MAX_UNITS] =    {    {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,    {NONE, NONE, NONE, NONE, NONE, NONE},     (void * const)(&feiResources[0])    },    {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,    {NONE, NONE, NONE, NONE, NONE, NONE},     (void * const)(&feiResources[1])    },    {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,    {NONE, NONE, NONE, NONE, NONE, NONE},     (void * const)(&feiResources[2])    },    {NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE,    {NONE, NONE, NONE, NONE, NONE, NONE},     (void * const)(&feiResources[3])    }    };/* English descriptions of supported PHY devices */LOCAL const char * phyNames [] =     {    "None", "i82553-A/B", "i82553-C", "i82503",    "DP83840", "80c240", "80c24", "i82555",    "unknown-8", "unknown-9", "DP83840A", "unknown-11",    "unknown-12", "unknown-13", "unknown-14", "unknown-15"    };enum phyChips     {    NonSuchPhy=0, I82553AB, I82553C, I82503,    DP83840, S80C240, S80C24, I82555, DP83840A=10, UndefinedPhy    };LOCAL const char * connectors [] = {" RJ45", " BNC", " AUI", " MII"};/* forward declarations */LOCAL UINT16  sys557eepromRead (int unit, int loc);LOCAL void    sys557eepromWrite (int unit, int loc, UINT16 data);LOCAL void    sys557eepromWriteBits (int unit, UINT16 data, int bitlen);LOCAL void    sys557eepromChecksumSet (int unit);LOCAL UINT16  sys557mdioRead   (int unit, int phyId, int loc);LOCAL UINT16  sys557mdioWrite  (int unit, int phyId, int loc, UINT16 value);LOCAL int     sys557IntEnable  (int unit);LOCAL int     sys557IntDisable (int unit);LOCAL int     sys557IntAck     (int unit);LOCAL UINT32  sysFeiDevToType  (UINT32, UINT32, UINT8); /* imports */IMPORT FUNCPTR feiEndIntConnect;IMPORT FUNCPTR feiEndIntDisconnect;/********************************************************************************* sys557PciInit - initialize a 82557 PCI ethernet device** This routine performs basic PCI initialization for FEI 82557 PCI ethernet* devices supported by the fei82557End driver.  If supported, the device* memory and I/O addresses are mapped into the local CPU address space* and an internal board-specific resource table is updated with information* on the board type, memory and I/O addresses.** CAVEATS* This routine must be called before the driver attempts to initialize itself* and the physical device via sys557Init().  Also, this routine must be done* prior to MMU initialization, usrMmuInit().** The number of supported devices that can be configured for a particular* system is finite and is specified by the FEI_MAX_UNITS configuration* constant.** RETURNS:* OK, else ERROR when the specified device is not supported, or if* the device could not be mapped into the local CPU memory space.*/STATUS sys557PciInit    (    UINT32  pciBus,      /* store a PCI bus number */    UINT32  pciDevice,   /* store a PCI device number */    UINT32  pciFunc,     /* store a PCI function number */    UINT32  vendorId,    /* store a PCI vendor ID */    UINT32  deviceId,    /* store a PCI device ID */    UINT8   revisionId   /* store a PCI revision ID */    )    {    UINT32  boardType;   /* store a BSP-specific board type constant */    UINT32  memIo32;     /* memory-mapped IO address (BAR 0) */    UINT32  ioBase;      /* IO base address (BAR 1) */    UINT32  flash32;     /* optional flash memory base (BAR 2) */    UINT8   irq;         /* interrupt line number (IRQ) for device */    /* number of physical units exceeded the number supported ? */    if (feiUnits >= FEI_MAX_UNITS)        {        return (ERROR);        }    if ((boardType = sysFeiDevToType (vendorId, deviceId, revisionId))        == BOARD_TYPE_UNKNOWN)        {        return (ERROR);        }    pciConfigInLong  (pciBus, pciDevice, pciFunc,                      PCI_CFG_BASE_ADDRESS_0, &memIo32);    pciConfigInLong  (pciBus, pciDevice, pciFunc,                      PCI_CFG_BASE_ADDRESS_1, &ioBase);    pciConfigInLong  (pciBus, pciDevice, pciFunc,                      PCI_CFG_BASE_ADDRESS_2, &flash32);    memIo32 &= PCI_MEMBASE_MASK;    ioBase  &= PCI_IOBASE_MASK;    flash32 &= PCI_MEMBASE_MASK;    /* map a 4Kb 32-bit non-prefetchable memory IO address decoder */    if (sysMmuMapAdd ((void *)(memIo32 & PCI_DEV_MMU_MSK),        PCI_DEV_ADRS_SIZE, VM_STATE_MASK_FOR_ALL, VM_STATE_FOR_PCI) == ERROR)        {        return (ERROR);        }    /* read the IRQ number and vector and save to the resource table */    pciConfigInByte (pciBus, pciDevice, pciFunc,                     PCI_CFG_DEV_INT_LINE, &irq);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久一区二区| 日韩女优av电影在线观看| 日本成人超碰在线观看| 欧美激情一区二区三区四区 | 91亚洲永久精品| 麻豆国产精品官网| 亚洲国产精品人人做人人爽| 国产精品久久夜| 日韩三级在线免费观看| 在线视频你懂得一区二区三区| 韩国女主播成人在线| 午夜精品久久久久久久久久| 中文字幕一区二区不卡| 欧美国产日产图区| 久久蜜桃av一区二区天堂 | 欧美在线影院一区二区| 成人av在线电影| 国产激情视频一区二区三区欧美| 日韩精品一级中文字幕精品视频免费观看 | 一区二区在线观看免费视频播放| 久久精品在线观看| 日韩视频一区二区三区在线播放 | 久久久91精品国产一区二区三区| 欧美日韩国产系列| 在线免费观看日本欧美| av在线播放成人| 成人国产精品免费观看视频| 国产乱码字幕精品高清av| 国产在线一区二区综合免费视频| 日韩国产精品91| 日韩av中文字幕一区二区三区| 亚洲国产精品自拍| 亚洲高清免费观看| 五月天中文字幕一区二区| 亚洲一级二级三级| 午夜激情综合网| 天天色综合成人网| 欧美96一区二区免费视频| 热久久久久久久| 久久国产精品第一页| 精品一区二区三区香蕉蜜桃| 久久成人精品无人区| 激情av综合网| 国产精品一区二区三区网站| 国产精品影音先锋| 国产成人av一区二区三区在线 | 在线观看精品一区| 欧美手机在线视频| 在线播放91灌醉迷j高跟美女| 在线成人午夜影院| 精品少妇一区二区三区在线视频| 日韩久久精品一区| 久久免费视频色| 欧美国产日本视频| 一区二区在线观看视频在线观看| 亚洲一二三四在线观看| 日韩综合在线视频| 激情欧美一区二区| 成人一二三区视频| 日本二三区不卡| 91精品国产麻豆| 久久免费精品国产久精品久久久久 | 欧美日韩一级片在线观看| 欧美一区日本一区韩国一区| 精品国产99国产精品| 国产精品欧美一区喷水| 夜夜精品视频一区二区| 日本中文字幕不卡| 国产成人综合在线| 欧美性猛片aaaaaaa做受| 欧美一级在线免费| 国产精品五月天| 亚洲国产一区二区视频| 国产一区二区三区精品视频| 一本色道亚洲精品aⅴ| 欧美高清激情brazzers| 国产亚洲女人久久久久毛片| 一区二区三区四区五区视频在线观看| 日日夜夜免费精品| 丁香六月久久综合狠狠色| 欧美视频一区二| 欧美国产激情一区二区三区蜜月| 亚洲影视资源网| 国产高清在线精品| 欧美精品在线一区二区三区| 中文字幕欧美日本乱码一线二线| 亚洲成人av免费| av亚洲产国偷v产偷v自拍| 欧美一区二区高清| 一区二区三区四区高清精品免费观看| 美女精品一区二区| 色88888久久久久久影院野外| 精品国产不卡一区二区三区| 午夜欧美在线一二页| 成人黄色av电影| 26uuu国产电影一区二区| 亚洲午夜精品在线| 91在线你懂得| 久久综合九色综合欧美亚洲| 亚洲bt欧美bt精品| 色偷偷久久人人79超碰人人澡| 精品国产欧美一区二区| 亚洲成人av一区二区三区| 99久久er热在这里只有精品15 | 国产精品三级久久久久三级| 日本系列欧美系列| 在线免费视频一区二区| 中文一区二区在线观看| 九九国产精品视频| 欧美一区二区三区人| 亚洲国产综合色| 一本久道久久综合中文字幕| 国产午夜精品久久久久久免费视| 麻豆精品久久久| 制服丝袜av成人在线看| 亚洲尤物视频在线| 在线免费观看不卡av| 日韩毛片精品高清免费| 成人免费精品视频| 国产日本一区二区| 国产精品一区二区久久不卡| 欧美成人a∨高清免费观看| 五月天婷婷综合| 欧美视频一区二区在线观看| 一二三区精品福利视频| 日本道色综合久久| 亚洲免费毛片网站| 色综合久久综合网97色综合| 亚洲人成影院在线观看| 99久久99久久久精品齐齐| 18涩涩午夜精品.www| av不卡一区二区三区| 亚洲三级在线免费观看| 91福利在线观看| 亚洲一区免费在线观看| 欧美日韩情趣电影| 天使萌一区二区三区免费观看| 欧美高清激情brazzers| 另类欧美日韩国产在线| 精品国产乱码91久久久久久网站| 国产一区二区在线观看视频| 国产性天天综合网| jvid福利写真一区二区三区| 17c精品麻豆一区二区免费| 91丝袜高跟美女视频| 亚洲柠檬福利资源导航| 欧洲精品在线观看| 日韩激情视频网站| 精品日韩在线一区| 成人国产精品免费| 夜夜嗨av一区二区三区网页 | 中文字幕在线一区二区三区| av在线不卡电影| 亚洲高清一区二区三区| 3d动漫精品啪啪一区二区竹菊 | 成人精品免费视频| 亚洲欧美一区二区三区极速播放 | 天天综合色天天| 久久综合色一综合色88| 国产91富婆露脸刺激对白| 中文字幕色av一区二区三区| 欧美日韩高清影院| 国产一区二区三区四区五区入口 | 亚洲视频在线观看一区| 欧美日韩精品电影| 韩国三级电影一区二区| 国产精品国产三级国产aⅴ原创| 在线观看亚洲专区| 久久爱另类一区二区小说| 国产精品亲子伦对白| 欧美日韩不卡一区| 国产精品一二三四五| 亚洲国产wwwccc36天堂| 久久精品夜色噜噜亚洲aⅴ| 色久综合一二码| 精品在线观看免费| 亚洲女人****多毛耸耸8| 日韩视频在线永久播放| 91网上在线视频| 精品综合免费视频观看| 一区二区免费看| 精品国产1区2区3区| 色综合一区二区三区| 六月丁香婷婷久久| 亚洲综合视频在线| 国产亲近乱来精品视频| 欧美日本视频在线| av成人老司机| 韩日精品视频一区| 香蕉加勒比综合久久 | 久久成人免费网站| 亚洲综合一区二区三区| 久久精品视频一区二区| 欧美日韩dvd在线观看| 不卡在线视频中文字幕| 狠狠色丁香久久婷婷综| 日韩精品电影在线| 亚洲黄色小说网站| 国产精品久久久久久久久免费桃花| 日韩免费性生活视频播放|