I am writing a teletext device driver on Linux 2.0.30
(upgraded from RedHat 4.1) which uses IRQ 3 (No option
because of the card's jumper), DMA channel 3 and IO port 0x2A0-0x2A3. The driver works perfectly
on a standalone system. All of these resources are registered with Linux kernel functions provided. After I
added a NE2000 compatible Ethernet card to the system
and recompiled the kernel to support TCP/IP and NE 2000,
everything was still working fine. NE2000 IO-port is configured to 0x300 and IRQ 10. After checked the system log
file and /proc/*, no conflict was found after the system
booted up. NOW, comes the problem! As long as I connect
the network cable to the ethernet card, the DMA data of my
driver is getting lose and totally messed up after a
while. Does NE2000 uses some DMA stuff which conflicts
with DMA channel 3. I scanned the 8390.c and ne.c in the drivers/net directory but no idea how remote DMA works in
the code and it seems no general DMA operation at all.
Anyone got the similiar problem before or have some
suggestion to get around the problem?
Thanks! -Jim Cao
|