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

📄 readme.txt

📁 基于pxa270的linux下smsc9118的网卡驱动源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
/***************************************************************************

 *

 * Copyright (c) 2004-2005, SMSC

 *

 * This program is free software; you can redistribute it and/or

 * modify it under the terms of the GNU General Public License

 * as published by the Free Software Foundation; either version 2

 * of the License, or (at your option) any later version.

 *

 * This program is distributed in the hope that it will be useful,

 * but WITHOUT ANY WARRANTY; without even the implied warranty of

 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

 * GNU General Public License for more details.

 *

 * You should have received a copy of the GNU General Public License

 * along with this program; if not, write to the Free Software

 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

 *

 ***************************************************************************

 * File: Readme.txt

 */



This is the users/programmers guide for the LAN9118 Linux Driver

The following sections can be found below

*  Revision History

*  Files

*  Features

*  Driver Parameters

*  Rx Performance Tuning

*  Tested Platforms

*  Rx Code Path

*  Tx Code Path

*  Platform Interface Descriptions



#######################################################

############### REVISION HISTORY ######################

#######################################################

06/04/2004 Bryan Whitehead. Version 0.50:

This is the first beta version



06/21/2004 Bryan Whitehead, Version 0.51:

added multicast

added private ioctls to set mac address and write eeprom (not tested)

removed timeout function, which served no purpose anyway.



07/09/2004 Bryan Whitehead, Version 0.52

Improved Flow Control

More Control on Link Management

   the driver parameter link_mode is now a bit wise field that

     specifies any combination of 4 or fewer link speeds

     1=10HD,2=10FD,4=100HD,8=100FD

     Still Autonegotiation is always used.



07/13/2004 Bryan Whitehead, Version 0.53

EEPROM has been fixed and tested.

   If there is an EEPROM connected and loaded correctly, its

     mac address will be loaded into the 118

Improved Flow Control again. Measured >10X improvement 

    in UDP_STREAM test with small packets.



07/30/2004 Bryan Whitehead, Version 0.54

Added many IOCTL codes for use with the command app, cmd9118.

Added functions to the Platform interface

	Platform_RequestDmaChannel

	Platform_ReleaseDmaChannel

Added Macros to Platform interface

	PLATFORM_DEFAULT_RX_DMA

	PLATFORM_DEFAULT_TX_DMA



08/12/2004 Bryan Whitehead, Version 0.55

Updated driver documentation

Consolidated most driver source files into smsc9118.c

Minor changes to the platform interface



08/13/2004 Bryan Whitehead, Version 0.56

Added Ioctl COMMAND_GET_CONFIGURATION

  this command used with "cmd9118 -cGET_CONFIG"

  will display driver information, which is especially

  useful if trace points have been disabled.

  

08/24/2004 Bryan Whitehead, Version 0.57

Implemented software patch to resynchronize Rx fifos after an

overrun is detected.



08/24/2004 Bryan Whitehead, Version 0.58

Turned on LEDs which were accidentally turned off in version 0.57



08/25/2004 Bryan Whitehead, Version 0.59

Added extra driver context variables useful for debugging

They can be accessed with the following command

# cmd9118 -cGET_CONFIG



08/30/2004 Bryan Whitehead, Version 0.60

Fixed bug in software patch (0.57) that caused the receiver to be turned

off and not turned back on.

Added symple packet filter to detect bad packets. If a bad packet

is detected the driver will handle it like an overrun. That is, turn off

receiver, empty fifos, clear fifo pointers(RX_DUMP), and turn on receiver. 

This method allows the driver to recover after a fifo synchronization fault.



09/01/2004 Bryan Whitehead, Version 0.61

This version was used for testing the patch. It was for internal purposes only



09/03/2004 Bryan Whitehead, Version 0.62

This version fixes some bugs in 0.60 and includes extra work around code

to improve patch reliability.



09/07/2004 Bryan Whitehead, Version 0.63

Added IOCTLs for reading and writing to general memory



09/13/2004 Bryan Whitehead, Version 0.64

As the hardware issue is now fully understood, this patch includes

a few changes to make the work around reliable in all situations.

This version also has a the beginnings of new flow control feature,

however this feature is disable for this version because it is

still in progress.

The build process has also changed. Now instead of building one

debug driver, you can build a release and debug driver by choosing

to include or not include the define USE_DEBUG. The release version

enables activity LEDs, and removes all trace, warning, and assertion 

messages. The debug version enables GPIO signals, and enables trace, 

warning, and assertion messages.



09/15/2004 Bryan Whitehead, Version 0.65

Removed packet filter from 0.64

Added non-Auto-Negotiate link modes. See description of the 

  link_mode driver parameter below

  

09/28/2004 Bryan Whitehead, Version 0.66/0.67

Added Rx flow control which is only turned on when the driver

detects a lack of flow control in the higher layers.



10/07/2004 Bryan Whitehead, Version 0.68

Added support for Peakslite, and Polaris.

Implemented support for Phy management tools 

  such as mii-diag and mii-tool.

  

10/13/2004 Bryan Whitehead, Version 0.69

Fixed some issues with Linux 2.6.



10/18/2004 Bryan Whitehead, Version 0.70

Added support for new chips 115, 116, 117. 

	NOTE: 115, and 116 may still require bus timing

		adjustment.

Disabled workaround when rev b is detected. 



10/20/2004 Bryan Whitehead, Version 0.71/0.72

Added support for tasklets, which allow the bulk of the

Rx processing to be done with out blocking interrupts for

the rest of the system.



10/27/2004 Bryan Whitehead, Version 1.00

Tuned the PLATFORM_INT_DEAS for sh3 platforms to get better

TCP performance. Bumped up version number to 1.00 because this

will be the first official release.



10/27/2004 Bryan Whitehead, Version 1.01

Changed sh3 POLARIS platform to use cycle steal DMA



11/11/2004 Bryan Whitehead, Version 1.02/1.03

Changed tasklets to default to off, (tasklets=0)

Testing has shown that tasklets are not stable yet. So changing the

default allows us to release this version. The user may still turn

tasklets on but does so at there own risk. 



11/11/2004 Bryan Whitehead, Version 1.04

Fixed Tasklet Issue.

Changed tasklets to be ON by default, (tasklets=1)



11/18/2004 Bryan Whitehead, Version 1.05

Improved software flow control.

Updated platform code to handle all chips 118/117/116/115



11/19/2004 Bryan Whitehead, Version 1.06

Added support to provide separate flow control parameters

  for 118/117 and 116/115. And the driver will use which

  ever is appropriate.



11/23/2004 Bryan Whitehead, Version 1.07

Changed the driver so that PAUSE frames will be enable or disabled

based on state of the local and remote pause bits, as specified in

IEEE Standard 802.3, 2000 Edition, page 1360, Table 28B-3-Pause Resolution



12/01/2004 Bryan Whitehead, Version 1.08

Added support for external phy.

To enable use of external phy use the follow driver parameter setting

    ext_phy=1

other wise the driver will use the internal phy as it always has before.



12/01/2004 Bryan Whitehead, Version 1.09

replace the ext_phy parameter with phy_addr which works as follows

if(phy_addr==0xFFFFFFFF) {

	//use internal phy

} else if (phy_addr<32) {

	//use external phy at address specified by phy_addr

	//  if external phy can not be found use internal phy

} else {

	//attempt to auto detect external phy

	//  if external phy can not be found use internal phy

}



02/14/2005 Bryan Whitehead, Version 1.11

Automated the tuning procedure. See RX PERFORMANCE TUNING.

Changed all register access to use a Macro instead of 

   a memory mapped structure. This should simplify porting,

   if register access is ever done through IO space.

Tuned all current platforms.

Increased time out of Rx_FastForward to 500.

Fixed faulty define TX_CMD_A_BUF_SIZE_

Fixed faulty define TX_CMD_B_PKT_BYTE_LENGTH_

Changed Phy reset to use PHY_BCR_RESET

Cleaned driver with Lint tool

Updated Rx_CountErrors

	Only count length error if length/type field is set

	If there is a CRC error don't count length error or

	  multicast

Changed access to Mac and Phy registers. Now requires only

	one lock, MacPhyLock. This replaces the MacAccessLock,

	PhyAccessLock, and RxSwitchLock.

	

02/28/2005 Bryan Whitehead, Version 1.12

Added date_code static constant



02/28/2005 Bryan Whitehead, Version 1.13

Added support for LAN9112



03/21/2005 Bryan Whitehead, Version 1.13

Updated Platforms ".h" file to include a version number in

   the PLATFORM_NAME macro. This version number is platform

   specific and independent of the common code version 

   number.

Merged in STMICRO platform code to release tree



03/22/2005 Bryan Whitehead, Version 1.13

Updated platform code see st40.c for changes



03/23/2005 Bryan Whitehead, Version 1.13

Changed the format of the platform version to rN,

  where N is the number of the platform revision.

  This is visible in the PLATFORM_NAME macro.

  

04/11/2005 Bryan Whitehead, Version 1.14

Added Platform_CleanUp function, to be used in the event

	that a particular platform should release resources

	when the driver is unloaded from memory

Moved register access and data port access from common 

	code to platform code. This is to support the 

	possibility that a big endian system may need to do 

	byte swapping.





Changed Lan_SetRegDW to use Platform_SetRegDW

Changed Lan_GetRegDW to use Platform_GetRegDW

Changed Lan_ClrBitsDW to use Platform_S/GetRegDW

Changed Lan_SetBitsDW to use Platform_S/GetRegDW

Changed Tx_WriteFifo to Platform_WriteFifo

Changed Rx_ReadFifo to Platform_ReadFifo

Changed the way platform files are included.

	Now the Macros PLATFORM_HEADER and PLATFORM_SOURCE

	will define a string that is the path to those

	header and source files.



04/15/2005 Bryan Whitehead, Version 1.15

Migrated source control to perforce.

Merged platform ".h" and ".c" file to a single

	platform ".c" file



05/26/2005 M David Gelbman, Version 1.16

Integrated Beacon PHY work-around into both Concord and

Beacon versions.

LED1 - 10/100 LED activity corrected to go OFF when link

state goes DOWN.



07/12/2005 Bryan Whitehead, Version 1.17

Fixed issue where driver parameter phy_addr was not used.



07/20/2005 Bryan Whitehead, Version 1.18

Preserve Platform Data from close to reopen.



07/26/2005 Phong Le

Version 1.19 Make delay time for EEPROM longer.

Fix bugs

Bug#1 external/internal problem. These are bugs introduced

when making LED work around and PHY work around.

Bug#2 Fix bug when bring down a driver, then bring up, driver crashed.



08/29/2005 - Phong Le

Version 1.20 Integrate fixes for false statistic error count report.



10/31/2005 - Phong Le

Version 1.21 Integrate fixes for Rx Multicast work around.



11/02/2005 - Phong Le

Still version 1.21 Fix bugs for version 1.21.



11/07/2005 - Phong Le

Still version 1.21 Fix bugs for version 1.21.



12/06/2005 Bryan Whitehead, Version 1.22

Added support for LAN9218, LAN9217, LAN9216, LAN9215



03/03/2006 Bryan Whitehead, Version 1.23

Fixed External Phy Support for LAN9217, LAN9215 (Bug 102)

Fixed Interrupt handler to only process enabled interrupts (Bug 96)

Fixed Multicast workaround to not rely on link status

⌨️ 快捷键说明

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