S3C2440驱动简析——DM9000网卡驱动(5)

     本文是DM9000网卡驱动的最后一篇,具体分析dm9000_ethtool_ops里所实现的工作。为了支持ethtool,其中的函数主要是用于查询和设置网卡参数(当然也有的驱动程序可能不支持ethtool)。

 

 

下面我们来逐个分析每一项的操作

 

1.dm9000_get_drvinfo

顾名思义,函数完成了把网络设备net_device通过成员name绑定到info。

 

2.dm9000_get_settings

里面的主角mii_ethtool_gset代码如下

函数实现从mii接口取得的状态信息赋值到传入的结构体ecmd。

 

3.dm9000_set_settings

分析主角mii_ethtool_sset

其作用与mii_ethtool_gset恰好相反,取传入的结构体ecmd的信息写入mii接口里。

 

4.dm9000_get_msglevel

返回结构体board_info_t 里成员msg_enable的状态。

 

5.dm9000_set_msglevel

设置msg_enable的状态

 

6.dm9000_nway_reset

mii_nway_restrart函数代码如下

重新启动nway功能,其中nway指通信速率通过双方协商,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式,这个技术被称为Auto Negotiation或者NWAY。

 

7.dm9000_get_link

函数作用显而易见,返回链接状态。

 

8.dm9000_get_wol

ethtool_wolinfo结构体如下

把网络设备的成员wake_supported和wake_state传送到ethtool_wolinfo结构体的supported和wolopts里。

 

9.dm9000_set_wol

dm9000_set_wol函数完成更新中断状态,并读回wake_state(对应dm9000_get_wol)

 

10.dm9000_get_eeprom_len

eeprom长度默认128bytes

 

11.dm9000_get_eeprom

读取eeprom内容

 

12.dm9000_set_eeprom

对应读取,本函数完成写入的工作

 

13.dm9000_get_rx_csum

说来惭愧,还不知道rx_csum所代表的具体含义,是接收的什么呢?希望有前辈指点一二

 

14.dm9000_set_rx_csum

其中dm9000_set_rx_csum_unlocked代码如下

设置rx_csum吧~

 

15.ethtool_op_get_tx_csum

呵呵,有接收自然就有发送

 

16.dm9000_set_tx_csum

核心工作在于ret = ethtool_op_set_tx_csum(dev, data);

通过传入的参数data设置tx_csum是0或1,具体作用还不清楚。

 

 

 

呼呼,我还是以蜗牛般的速度、豆腐渣式的分析把DM9000网卡驱动完整的过了一遍。与其说是分析,更贴切来说,应该是贴出代码,提供一个针对这个驱动讨论的平台罢了。很多枝节功能由于本人功力有限,还理所不能及,如有令到各位看官感觉不知所云,实在抱歉,以后定当更加努力,提供更高质量的学习记录给大家分享!

 

 

 

本系列课程链接地址

DM9000网卡驱动(1)http://blog.csdn.net/jarvis_xian/archive/2011/06/10/6537446.aspx
DM9000网卡驱动(2)http://blog.csdn.net/jarvis_xian/archive/2011/06/12/6539931.aspx
DM9000网卡驱动(3)http://blog.csdn.net/jarvis_xian/archive/2011/06/13/6542411.aspx
DM9000网卡驱动(4)http://blog.csdn.net/jarvis_xian/archive/2011/06/15/6545109.aspx
DM9000网卡驱动(5)http://blog.csdn.net/jarvis_xian/archive/2011/06/15/6547203.aspx

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
DM9000是一个常用的网络接口控制器芯片,用于将嵌入式系统连接到以太网。要调试DM9000网卡,可以按照以下步骤进行: 1. 硬件连接:首先,确保DM9000芯片正确连接到嵌入式系统板上,并与以太网接口相连接。检查芯片的供电和时钟信号。 2. 驱动程序:编写适当的驱动程序,以便嵌入式系统能够与DM9000通信。这通常涉及到与DM9000芯片的寄存器进行交互,读取和写入必要的控制和配置参数。确保驱动程序正确加载到系统中。 3. 硬件配置:检查DM9000的配置寄存器,确保MAC地址设置正确,并且与局域网中的其他设备不冲突。还可以配置其他参数,例如速度和双工模式。 4. 命令行工具:一些嵌入式操作系统提供了用于调试以太网接口的命令行工具。使用这些工具,您可以查看和配置DM9000的状态和参数。例如,您可以使用ifconfig命令查看和配置网络接口的IP地址和子网掩码。 5. debug信息:通过在驱动程序中添加适当的调试信息,可以轻松地跟踪和定位问题。打印DM9000的状态、接收和发送的数据包以及其他有用的信息,有助于确定问题所在。 6. 监视网络流量:使用网络分析工具,例如Wireshark,来监视DM9000的数据流量。这将帮助您识别任何异常数据包或通信问题。 7. FQA和论坛:查阅DM9000相关的文档、常见问题解答(FAQ),以及在线社区和论坛寻求帮助。在这些平台上,您可以找到其他用户的经验和解决方案。 总的来说,要调试DM9000网卡,需要确保正确连接硬件,编写驱动程序并配置相关参数。使用命令行工具、添加debug信息、监视网络流量和寻求帮助,可以更容易地发现和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值