阅读:1489回复:6
如何将8139网卡从主设备模式改成从设备模式?急~~!!
本人现在开发一个系统,需要用到rtl8139网卡,但是,由于开发系统中的PCI控制器中设置PCI设备必须是从设备,不嫩是主设备,所以希望将8139网卡从主设备模式改成从设备模式,请问应该如何处理?如果不重新布线修改,可以马?应该怎么办?谢谢~!
|
|
沙发#
发布于: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. |
|
|
板凳#
发布于:2002-10-29 20:48
谢谢楼上的答复!
是的,我也发现了这个说法,但是我还没有测试。8029使用从模式,不是也可以用DMA传输吗?而且,如果整个PCI设备只是有一个网卡,那么是否不会出什么问题? |
|
地板#
发布于:2002-10-30 13:37
8029是ISA总线设备,没有集成DMA控制器,当然是从设备。
而8139是PCI设备,且集成有PCI DMA控制器,数据传输出时它是做为DMA的发起者来进行的,如果你不允许它做主,那它的DMA传输就不能成功。这些都是芯片内部逻辑实现的。这个传输是在芯片到系统内存间的动作,不涉及其它PCI设备,所以是否只有一个设备不相关。 |
|
|
地下室#
发布于:2002-10-30 22:35
谢谢minsoft.
但是,好像不是这样啊!8029是PCI设备阿!我现在手头上有的就是PCI的阿,而且,8019是ISA总线设备。 那么,如果我在PCI配置寄存器中的command 中的Bit2设置为0(非bus master),这样,直接用基本的IO操作实现这些从8139网卡到CPU之间的通信而不用DMA,这样可行吗? 谢谢! |
|
5楼#
发布于:2002-10-31 09:32
为什么要改?难道要做104+的设备?
|
|
|
6楼#
发布于:2002-10-31 10:18
应该还是不能实现,记得8139有接收/发送缓冲地址寄存器,就是用来填写DMA的目的/源内存地址,芯片收到数据包后是自动用DMA将收来的数据从芯片内的FIFO传到指定接收缓冲,也是在发出“发送”命令后芯片自动用DMA方式读取发送缓冲的数据到FIFO再发到网络。
如果你禁止它为主设备了,这两个DMA传输必定失败。8139上也没有提供可以用其它方式接收/发送数据的寄存器。 这些逻辑都是芯片内部已经设计好了的,外部无法改变。 |
|
|