免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach

RTL8139网卡驱动程序分析[转] [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-04-27 11:24 |显示全部楼层
原帖由 z0800 于 2009-4-27 11:23 发表
嗯,参考下,感谢!


有分析的心得,记得分享一下阿:wink:

论坛徽章:
0
发表于 2009-04-29 01:23 |显示全部楼层
原帖由 Godbach 于 2009-4-27 09:54 发表
讨论一下read_eeprom这个函数阿。
程序在 rtl8139_init_one函数中调用该函数:
addr_len = read_eeprom (ioaddr, 0, == 0x8129 ? 8 : 6;
        for (i = 0; i < 3; i++)
                ((u16 *) (dev->dev_addr)) =
                   ...


我随便猜下。 这个8130too.c 支持多种网卡,比如8129和8139。不同的网卡型功能大致一样,但是有些小细节不同。 所以addr_len 在针对8129型号的网卡时为8,其他为6。
同时由于硬件上的设计,读EEPROM的时候,要用到这个值。

其实我觉得研究这部分代码用处不大。如果要研究的话,也要参考网卡的硬件手册,比如DATA SHEET, PROGRAMMING GUIDE来看。这些地方都是看硬件工程师怎么设计的,没什么道理可言。而且即使你搞明白了8139,换个网卡又得重新看一遍。功利的说,还是看那些通用得部分收获比较大。比如所有网卡都要有OPEN函数等。另外,如果是 INTEL, OR AMD的硬件手册的话,仔细研究下也是值得的,因为用的太多了。8139的普遍性就差点了。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-04-29 10:10 |显示全部楼层
原帖由 accessory 于 2009-4-29 01:23 发表


我随便猜下。 这个8130too.c 支持多种网卡,比如8129和8139。不同的网卡型功能大致一样,但是有些小细节不同。 所以addr_len 在针对8129型号的网卡时为8,其他为6。
同时由于硬件上的设计,读EEPROM的时候 ...


多谢啊。

其实我就是想了解一下这个程序在读取硬件时候的实现,因为EERPOM的DI,DO各一根,因此,要读取EEPROM中某个偏移寄存器的Value是,首先需要通过DI这根线,写入读命令,读命令包含了START部分和具体的编译,然后就可以从DO读取出16次,每次1个bit。这样就可以获取到对应的值了。我这里就是对构造读命令的时候有些疑惑,和芯片手册有点不太一致。

回头问一下做硬件的朋友。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-04-29 19:34 |显示全部楼层
比如所有网卡都要有OPEN函数等。另外,如果是 INTEL, OR AMD的硬件手册的话,仔细研究下也是值得的,因为用的太多了。8139的普遍性就差点了。

accessory 兄的意思是8139的网卡用的没有INTEL或AMD的多吗。我倒觉得RTL8139的用的多一些,因为其价格便宜,很多买网卡的可能就直接买这个了。

简单的了解一下硬件,剩下的还是主要学习其具体功能的实现了。

论坛徽章:
0
发表于 2009-04-29 22:57 |显示全部楼层
不是。我是说INTEL, AMD的CPU 手册还是值得研究下的。
RTL8139在低端用户可能用的多点吧? 对中高端用户来说就差点了。

PS:另外一个关于8139的连接:
http://wiki.osdev.org/RTL8139

[ 本帖最后由 accessory 于 2009-4-29 23:19 编辑 ]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-04-30 09:52 |显示全部楼层
原帖由 accessory 于 2009-4-29 22:57 发表
不是。我是说INTEL, AMD的CPU 手册还是值得研究下的。
RTL8139在低端用户可能用的多点吧? 对中高端用户来说就差点了。

PS:另外一个关于8139的连接:
http://wiki.osdev.org/RTL8139


对,RTL的就是中低端用户。这里主要是分析一下比较常用的网卡。

论坛徽章:
0
发表于 2009-05-04 17:50 |显示全部楼层
好东西,我喜欢。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-05-04 17:54 |显示全部楼层
原帖由 accessory 于 2009-4-29 22:57 发表
不是。我是说INTEL, AMD的CPU 手册还是值得研究下的。
RTL8139在低端用户可能用的多点吧? 对中高端用户来说就差点了。

PS:另外一个关于8139的连接:
http://wiki.osdev.org/RTL8139


这个连接不错。多谢accessory兄。

论坛徽章:
0
发表于 2009-05-06 02:58 |显示全部楼层
又看到一个讲8139的:
http://www.xxlinux.com/linux/e/DoPrint/?classid=13&id=11702

建议LZ把这些连接都放在第一楼里,省得后面的人慢慢找。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-05-06 09:42 |显示全部楼层
原帖由 accessory 于 2009-5-6 02:58 发表
又看到一个讲8139的:
http://www.xxlinux.com/linux/e/DoPrint/?classid=13&id=11702

建议LZ把这些连接都放在第一楼里,省得后面的人慢慢找。


好的,多谢建议。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP