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

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

?? sysfei82557end.c

?? Vxworks For PC Pentium 的BSP,已在Vmware上調試通過,可以在pentium/pentiumII/pentium/PentiumIV 上運行,以太網口工作正常. 調試環境,
?? 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电影| 精品国产一区二区精华| 日韩一区和二区| 国产视频一区二区在线观看| 亚洲在线中文字幕| 国产不卡在线一区| 日韩免费观看高清完整版| 亚洲精品乱码久久久久| 成人夜色视频网站在线观看| 欧美一区二区三区在线看| 亚洲美女区一区| 国产成人免费av在线| 欧美一区二区成人6969| 亚洲精品v日韩精品| 成人国产精品免费网站| ww亚洲ww在线观看国产| 免费看精品久久片| 在线观看视频91| 亚洲男人都懂的| 成人av电影在线观看| 亚洲国产一区二区视频| 东方aⅴ免费观看久久av| 日韩欧美二区三区| 日本欧美加勒比视频| 欧美日韩综合不卡| 亚洲一线二线三线久久久| 成人国产精品视频| 国产精品卡一卡二| 高清在线成人网| 欧美激情一区二区三区全黄| 国产一区二区91| 久久久亚洲欧洲日产国码αv| 老司机免费视频一区二区三区| 欧美精品少妇一区二区三区| 亚洲动漫第一页| 欧美日韩一本到| 日韩不卡在线观看日韩不卡视频| 欧美日韩国产高清一区| 亚洲一区在线视频| 欧美亚洲国产一区二区三区va | 成人高清视频在线观看| 国产欧美日韩在线看| 成人毛片在线观看| 亚洲精品欧美二区三区中文字幕| 91麻豆福利精品推荐| 依依成人综合视频| 欧美精品乱码久久久久久| 日韩高清欧美激情| 精品av久久707| 成人开心网精品视频| 亚洲男女一区二区三区| 在线观看免费成人| 日韩电影一区二区三区四区| 精品国产一区二区三区不卡| 国产精品白丝av| 樱花影视一区二区| 日韩一级片网站| 国产福利一区二区| 伊人开心综合网| 日韩欧美aaaaaa| 波多野结衣一区二区三区| 一区二区三区在线看| 日韩一区二区三| 99精品视频在线免费观看| 午夜精品久久久久久久| 久久网这里都是精品| 91亚洲精华国产精华精华液| 日本视频中文字幕一区二区三区| 久久久高清一区二区三区| 欧洲国产伦久久久久久久| 麻豆国产一区二区| 亚洲免费av高清| 欧美mv和日韩mv国产网站| 93久久精品日日躁夜夜躁欧美| 午夜久久久久久久久| 国产人成一区二区三区影院| 欧美在线观看禁18| 国产69精品久久777的优势| 视频一区二区欧美| 国产精品久久久久影院老司| 777色狠狠一区二区三区| 99在线精品观看| 国产自产2019最新不卡| 亚洲高清视频的网址| 免费成人在线观看| 国产精品久久久久毛片软件| 日韩欧美在线观看一区二区三区| 99久久国产综合精品女不卡| 毛片av一区二区| 亚洲伊人色欲综合网| 中文字幕乱码亚洲精品一区 | 洋洋成人永久网站入口| 国产色综合久久| 日韩一区二区电影网| 色综合久久综合中文综合网| 狠狠色丁香婷综合久久| 午夜精品久久久久| 亚洲一区在线视频观看| 亚洲色欲色欲www| 欧美国产综合一区二区| 精品久久久久久久久久久久久久久久久 | 精品国产123| 欧美高清视频在线高清观看mv色露露十八 | 国产自产v一区二区三区c| 日韩精品欧美成人高清一区二区| 一区二区三区在线观看国产| 亚洲欧洲日韩av| 国产精品灌醉下药二区| 欧美国产精品一区二区| 久久网站最新地址| 日韩欧美在线1卡| 日韩欧美一区二区久久婷婷| 欧美高清视频不卡网| 欧美优质美女网站| 欧美体内she精高潮| 欧美性受xxxx黑人xyx性爽| 在线免费观看日本一区| 91久久人澡人人添人人爽欧美| 99热在这里有精品免费| 99久久精品国产网站| 色中色一区二区| 欧美影片第一页| 欧美久久久久中文字幕| 日韩限制级电影在线观看| 日韩精品一区二区三区四区视频 | 欧美天天综合网| 欧美日韩免费电影| 9191久久久久久久久久久| 欧美一区二区在线免费播放| 欧美videos中文字幕| 久久精品无码一区二区三区| 国产精品视频yy9299一区| 亚洲视频1区2区| 亚洲第一成人在线| 美女一区二区三区在线观看| 国产伦理精品不卡| av动漫一区二区| 欧美日韩一区二区电影| 欧美成人女星排名| 国产精品久久久久久亚洲毛片 | 一区二区三区在线影院| 日韩专区在线视频| 韩国av一区二区三区在线观看| 欧美日韩国产首页| 欧美本精品男人aⅴ天堂| 国产日韩欧美麻豆| 亚洲一二三区视频在线观看| 蜜臀av一区二区在线免费观看| 国产成人夜色高潮福利影视| 日本乱人伦aⅴ精品| 日韩免费视频一区| 亚洲精选免费视频| 激情久久久久久久久久久久久久久久| 国产成人aaa| 精品污污网站免费看| 久久蜜桃一区二区| 亚洲一二三四久久| 国产ts人妖一区二区| 正在播放一区二区| 国产精品欧美极品| 伦理电影国产精品| 欧美最新大片在线看| 国产视频亚洲色图| 日韩av网站免费在线| 91在线视频官网| 久久综合成人精品亚洲另类欧美| 亚洲精品日韩一| 国产成人精品亚洲日本在线桃色 | 色综合网站在线| 久久综合色8888| 日韩va亚洲va欧美va久久| 99在线精品一区二区三区| 久久一日本道色综合| 肉色丝袜一区二区| 色呦呦日韩精品| 国产精品免费视频一区| 极品瑜伽女神91| 日韩欧美一区二区三区在线| 亚洲最色的网站| av亚洲产国偷v产偷v自拍| 久久综合九色综合久久久精品综合| 午夜精品福利在线| 日本高清不卡一区| 综合自拍亚洲综合图不卡区| 国产精品123| 久久久久高清精品| 蜜桃视频第一区免费观看| 欧美日韩国产美| 五月婷婷综合激情| 欧美午夜电影一区| 亚洲午夜精品一区二区三区他趣| 不卡一区二区中文字幕| 国产欧美视频在线观看| 黑人巨大精品欧美一区| 日韩欧美国产1| 蜜桃久久av一区| 欧美成人伊人久久综合网| 久久精品国产**网站演员| 日韩一区二区高清| 精品一区二区成人精品|