⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fei82557end.html

📁 vxworks相关论文
💻 HTML
字号:
<html><head><!-- /vobs/wpwr/docs/vxworks/ref/fei82557End.html - generated by refgen from fei82557End.c --> <title> fei82557End </title></head><body bgcolor="#FFFFFF"> <hr><a name="top"></a><p align=right><a href="libIndex.html"><i>VxWorks Reference Manual :  Libraries</i></a></p></blockquote><h1>fei82557End</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong>fei82557End</strong> - END style Intel 82557 Ethernet network interface driver </p></blockquote><h4>ROUTINES</h4><blockquote><p><p><b><i><a href="./fei82557End.html#fei82557EndLoad">fei82557EndLoad</a></i>(&nbsp;)</b>  -  initialize the driver and device<br><p></blockquote><h4>DESCRIPTION</h4><blockquote><p>This module implements an Intel 82557 Ethernet network interface driver.This is a fast Ethernet PCI bus controller, IEEE 802.3 10Base-T and 100Base-T compatible. It also features a glueless 32-bit PCI bus master interface, fully compliant with PCI Spec version 2.1. An interface to MII compliant physical layer devices is built-in in the card. The 82557Ethernet PCI bus controller also includes Flash support up to 1 MByteand EEPROM support, altough these features are not dealt with in the driver.<p>The 82557 establishes a shared memory communication system with the CPU,which is divided into three parts: the Control/Status Registers (CSR),the Command Block List (CBL) and the Receive Frame Area (RFA). The CSRis on chip and is either accessible with I/O or memory cycles, whereas theother structures reside on the host.<p>The CSR is the main meance of communication between the device and thehost, meaning that the latter issues commands through these registerswhile the chip posts status changes in it, occurred as a result of thosecommands. Pointers to both the CBL and RFA are also stored in the CSR.<p>The CBL consists of a linked list of frame descriptors through which individual action commands can be performed. These may be transmit commands as well as non-transmit commands, e.g. Configure or Multicastsetup commands. While the CBL list may function in two different modes,only the simplified memory mode is implemented in the driver.<p>The RFA is a linked list of receive frame descriptors. Only support forthe simplified memory mode is granted. In this model, the data buffer immediately follows the related frame descriptor.<p>The driver is designed to be moderately generic, operating unmodifiedacross the range of architectures and targets supported by VxWorks.  To achieve this, this driver must be given several target-specific parameters, and some external support routines must be provided.  These parameters, and the mechanisms used to communicate them to the driver, are detailed below.<p></blockquote><h4>BOARD LAYOUT</h4><blockquote><p>This device is on-board.  No jumpering diagram is necessary.<p></blockquote><h4>EXTERNAL INTERFACE</h4><blockquote><p><p>The driver provides the standard external interface, <b><i><a href="./fei82557End.html#fei82557EndLoad">fei82557EndLoad</a></i>(&nbsp;)</b>, whichtakes a string of colon separated parameters. The parameters should bespecified in hexadecimal, optionally preceeded by "0x" or a minus sign "-".<p>The parameter string is parsed using <b><i><a href="./ansiString.html#strtok_r">strtok_r</a></i>(&nbsp;)</b> and each parameter isconverted from a string representation to binary by a call tostrtoul(parameter, NULL, 16).<p>The format of the parameter string is:<p>&nbsp;"<i>memBase</i>:<i>memSize</i>:<i>nTfds</i>:<i>nRfds</i>:<i>flags</i>"<p>In addition, the two global variables <b>feiEndIntConnect</b> and <b>feiEndIntDisconnect</b> specify respectively the interrupt connect routine and the interrupt disconnect routine to be used depending on the BSP. The former defaults to <b><i><a href="./intArchLib.html#intConnect">intConnect</a></i>(&nbsp;)</b> and the user can override this to use any other interrupt connect routine (say <b><i><a href="../bsp/cma220/sysLib.html#pciIntConnect" >pciIntConnect</a></i>(&nbsp;)</b>) in <b><i><a href="./sysLib.html#sysHwInit">sysHwInit</a></i>(&nbsp;)</b> or any device specific initialization routine called in <b><i><a href="./sysLib.html#sysHwInit">sysHwInit</a></i>(&nbsp;)</b>. Likewise, the latter is set by default to NULL, but it may be overridden in the BSP in the same way.<p></blockquote><h4>TARGET-SPECIFIC PARAMETERS</h4><blockquote><p><p><dl><dt><i>memBase</i><dd>This parameter is passed to the driver via <b><i><a href="./fei82557End.html#fei82557EndLoad">fei82557EndLoad</a></i>(&nbsp;)</b>.<p>The Intel 82557 device is a DMA-type device and typically sharesaccess to some region of memory with the CPU.  This driver is designedfor systems that directly share memory between the CPU and the 82557.<p>This parameter can be used to specify an explicit memory region for useby the 82557.  This should be done on targets that restrict the 82557to a particular memory region.  The constant <b>NONE</b> can be used to indicate that there are no memory limitations, in which case the driver will allocate cache safe memory for its use using <b><i>cacheDmaAlloc</i>(&nbsp;)</b>.<p><dt><i>memSize</i><dd>The memory size parameter specifies the size of the pre-allocated memoryregion. If memory base is specified as NONE (-1), the driver ignores thisparameter. Otherwise, the driver checks the size of the provoded memory region is adequate with respect to the given number of Command FrameDescriptor and Receive Frame Descriptor.<p><dt><i>nTfds</i><dd>This parameter specifies the number of transmit descriptor/buffers to beallocated. If this parameter is less than two, a default of 32 is used.<p><dt><i>nRfds</i><dd>This parameter specifies the number of receive descriptor/buffers to beallocated. If this parameter is less than two, a default of 32 is used.<p><dt><i>flags</i><dd>User flags may control the run-time characteristics of the Ethernetchip. Not implemented. </dl><p> </blockquote><h4>EXTERNAL SUPPORT REQUIREMENTS</h4><blockquote><p><p>This driver requires one external support function:<pre>STATUS sys557Init (int unit, FEI_BOARD_INFO *pBoard)</pre>This routine performs any target-specific initializationrequired before the 82557 device is initialized by the driver.The driver calls this routine every time it wants to [re]initializethe device.  This routine returns OK, or ERROR if it fails.<p><p><p></blockquote><h4>SYSTEM RESOURCE USAGE</h4><blockquote><p>The driver uses <b><i><a href="./cacheLib.html#cacheDmaMalloc">cacheDmaMalloc</a></i>(&nbsp;)</b> to allocate memory to share with the 82557.The size of this area is affected by the configuration parameters specifiedin the <b><i><a href="./fei82557End.html#fei82557EndLoad">fei82557EndLoad</a></i>(&nbsp;)</b> call. <p>Either the shared memory region must be non-cacheable, or elsethe hardware must implement bus snooping.  The driver cannot maintaincache coherency for the device because fields within the commandstructures are asynchronously modified by both the driver and the device,and these fields may share the same cache line.<p></blockquote><h4>TUNING HINTS</h4><blockquote><p><p>The only adjustable parameters are the number of TFDs and RFDs that will becreated at run-time.  These parameters are given to the driver when <b><i><a href="./fei82557End.html#fei82557EndLoad">fei82557EndLoad</a></i>(&nbsp;)</b> is called.  There is one TFD and one RFD associated with each transmitted frame and each received frame respectively.  For memory-limited applications, decreasing the number of TFDs and RFDs may be desirable.  Increasing the number of TFDs will provide no performance benefit after a certain point. Increasing the number of RFDs will provide more buffering before packets are dropped.  This can be useful if there are tasks running at a higher priority than the net task.<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./fei82557End.html#top">fei82557End</a></b>, <b><a href="./ifLib.html#top">ifLib</a></b>,  <i>Intel 82557 User's Manual, </i><i>Intel 32-bit Local Area Network (LAN) Component User's Manual </i><hr><a name="fei82557EndLoad"></a><p align=right><a href="rtnIndex.html"><i>Libraries :  Routines</i></a></p></blockquote><h1><i>fei82557EndLoad</i>(&nbsp;)</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong><i>fei82557EndLoad</i>(&nbsp;)</strong> - initialize the driver and device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>END_OBJ* fei82557EndLoad    (    char * initString /* parameter string */    )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine initializes both, driver and device to an operational stateusing device specific parameters specified by <i>initString</i>.<p>The parameter string, <i>initString</i>, is an ordered list of parameters eachseparated by a colon. The format of <i>initString</i> is,"<i>unit</i>:<i>memBase</i>:<i>memSize</i>:<i>nCFDs</i>:<i>nRFDs</i>:<i>flags</i>"<p>The 82557 shares a region of memory with the driver.  The caller of thisroutine can specify the address of this memory region, or can specify thatthe driver must obtain this memory region from the system resources.<p>A default number of transmit/receive frames of 32 can be selected bypassing zero in the parameters <i>nTfds</i> and <i>nRfds</i>. In other cases, thenumber of frames selected should be greater than two.<p>The <i>memBase</i> parameter is used to inform the driver about the sharedmemory region.  If this parameter is set to the constant "NONE," then thisroutine will attempt to allocate the shared memory from the system.  Anyother value for this parameter is interpreted by this routine as the addressof the shared memory region to be used. The <i>memSize</i> parameter is usedto check that this region is large enough with respect to the providedvalues of both transmit/receive frames.<p>If the caller provides the shared memory region, then the driver assumesthat this region does not require cache coherency operations, nor does itrequire conversions between virtual and physical addresses.<p>If the caller indicates that this routine must allocate the shared memoryregion, then this routine will use <b><i><a href="./cacheLib.html#cacheDmaMalloc">cacheDmaMalloc</a></i>(&nbsp;)</b> to obtainsome  non-cacheable memory.  The attributes of this memory will be checked,and if the memory is not write coherent, this routine will abort andreturn ERROR.<p></blockquote><h4>RETURNS</h4><blockquote><p>an END object pointer, or NULL on error.<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./fei82557End.html#top">fei82557End</a></b>, <b><a href="./ifLib.html#top">ifLib</a></b>,  <i>Intel 82557 User's Manual </i></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -