snowicemiao
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2002-11-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1489回复:6

如何将8139网卡从主设备模式改成从设备模式?急~~!!

楼主#
更多 发布于:2002-10-27 16:31
本人现在开发一个系统,需要用到rtl8139网卡,但是,由于开发系统中的PCI控制器中设置PCI设备必须是从设备,不嫩是主设备,所以希望将8139网卡从主设备模式改成从设备模式,请问应该如何处理?如果不重新布线修改,可以马?应该怎么办?谢谢~!
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-29 10:37
能改吗?那它的DMA传输怎么实现?
DataSheet上这样说:
Bus Master Enable: When set to 1, the RTL8139C(L) is capable of acting as a bus master. When set to
0, it is prohibited from acting as a PCI bus master.
For the normal operation, this bit must be set by the system BIOS.
少了e,就少了全部
snowicemiao
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2002-11-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-10-29 20:48
谢谢楼上的答复!

是的,我也发现了这个说法,但是我还没有测试。8029使用从模式,不是也可以用DMA传输吗?而且,如果整个PCI设备只是有一个网卡,那么是否不会出什么问题?
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-30 13:37
8029是ISA总线设备,没有集成DMA控制器,当然是从设备。
而8139是PCI设备,且集成有PCI DMA控制器,数据传输出时它是做为DMA的发起者来进行的,如果你不允许它做主,那它的DMA传输就不能成功。这些都是芯片内部逻辑实现的。这个传输是在芯片到系统内存间的动作,不涉及其它PCI设备,所以是否只有一个设备不相关。
少了e,就少了全部
snowicemiao
驱动牛犊
驱动牛犊
  • 注册日期2002-09-30
  • 最后登录2002-11-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-30 22:35
谢谢minsoft.
但是,好像不是这样啊!8029是PCI设备阿!我现在手头上有的就是PCI的阿,而且,8019是ISA总线设备。

那么,如果我在PCI配置寄存器中的command 中的Bit2设置为0(非bus master),这样,直接用基本的IO操作实现这些从8139网卡到CPU之间的通信而不用DMA,这样可行吗?
谢谢!

jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-10-31 09:32
为什么要改?难道要做104+的设备?
兄弟们,给点分吧
minsoft
驱动小牛
驱动小牛
  • 注册日期2001-07-30
  • 最后登录2007-03-06
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-10-31 10:18
应该还是不能实现,记得8139有接收/发送缓冲地址寄存器,就是用来填写DMA的目的/源内存地址,芯片收到数据包后是自动用DMA将收来的数据从芯片内的FIFO传到指定接收缓冲,也是在发出“发送”命令后芯片自动用DMA方式读取发送缓冲的数据到FIFO再发到网络。
如果你禁止它为主设备了,这两个DMA传输必定失败。8139上也没有提供可以用其它方式接收/发送数据的寄存器。
这些逻辑都是芯片内部已经设计好了的,外部无法改变。
少了e,就少了全部
游客

返回顶部