[vortex] FEM656C NIC problems with kernel 2.4

Felipe Alfaro Solana falfaro@sunformacion.com
13 Apr 2001 15:37:48 +0200


Hello,

What's really curious about this issue is that I've downloaded and
installed Linux Mandrake 8.0 Beta 3 on my computer. This Linux
distribution uses the linux 2.4.2 kernel and now, using this
distribution, the NIC card is working flawlessly... just after doing two
things:

    1. Modifying the /etc/pcmcia/config.opts to include I/O ports in the
    0x1000-0x1fff range.
    2. Passing the "pci=biosirq" parameter to the kernel.

Although I have been unable to locate the "lspci" tool in this new Linux
distribution, "dmesg" shows the card has been assigned resources
correctly: the function 0 (ethernet) is assigned I/O ports 0x1100-0x11ff
and function 1 (modem) is assigned I/O ports 0x1000-0x10ff.

Well, I must say that I don't understand a thing. Who is supposed to
perform resource allocation, the linux kernel, the PCI driver, the
CardBus bridge? Why my Tornado NIC does work with Linux Mandrake 8.0 and
not with RedHat Linux 7.0 with a 2.4 kernel? Why does this work so
differently from Windows? In Windows, the card is not assigned resources
until its driver is loaded. However, Linux assigns it resources when the
bridge (the i82365) is loaded. All of this is a mistery to me ...

Sincerely,

    Felipe Alfaro Solana

On 12 Apr 2001 11:10:48 -0700, Andrew Morton wrote:
> Time to call in the big guns.  Hi, Jeff.
> 
> Felipe, I think we'll need to see the `lspci -vx' output,
> as well as the relevant kernel boot messages.
> 
> 
> Felipe Alfaro Solana wrote:
> > 
> > Hello,
> > 
> > I have a 3Com FEM656C CardBus NIC (aka Tornado) installed on my
> > PackardBell Chrom@ computer. I have RedHat Linux 7.0 distribution
> > installed currently running with kernel 2.2.16/2.2.17. The NIC works
> > fine when I use the 2.2 kernel, but when I turn to the 2.4 kernel, the
> > NIC is nonfunctional. Let me explain my guessing:
> > 
> > Using "lspci", I have found that kernel 2.2 performs correct resource
> > allocation. The FEM656C is a Fast Ethernet controller + 56K modem. The
> > kernel 2.2 assigns I/O ports in range 0x1100-0x11ff for the Ethernet
> > function of the adapter, and assigns I/O ports in the range
> > 0x1000-0x10ff for the modem function of the adapter. However, linux
> > kernel 2.4 seems to assign I/O ports in the range 0x1000-0x10ff for both
> > adapter functions, overlapping the I/O ports range for both the Ethernet
> > function and the modem function in the adapter.
> > 
> > When I boot into kernel 2.4, the NIC is nonfunctional as both adapter
> > functions are enabled and sharing the I/O ports range. This results in
> > the kernel and the vortex-diag tool reporting that my MAC address is
> > FF:FF:FF:FF:FF:FF (which, of course, is not correct). The vortex-diag
> > tools is gathering information bith all bits set to to 1, and this
> > explains why my MAC address is a network broadcast address and all
> > registers are set to FF. If you want more information, I will post all
> > the information Igathered from the 2.2 and 2.4 kernels.
> > 
> > Although I am no kernel hacker, I think all of this is due to a bad
> > resource assignment done by the PCI drivers in linux kernel and not the
> > vortex driver itself. However, I don't know a better place to start this
> > thread and who can I send this information to.
> > 
> > Can anyone help me troubleshoot why Linux is assigning the same I/O
> > ports range to both functions of my 3Com adapter? Can anyone help me
> > fixing or forcing resource allocation for the card?
> > 
> > Thank you very much.
> > Sincerely,
> > 
> >    Felipe Alfaro Solana
> > 
> > PD: You can contact me at e-mail falfaro@sunformacion.com or
> > felipe_alfaro@email.com.
> > 
> > _______________________________________________
> > vortex mailing list
> > vortex@scyld.com
> > http://www.scyld.com/mailman/listinfo/vortex
> 
> _______________________________________________
> vortex mailing list
> vortex@scyld.com
> http://www.scyld.com/mailman/listinfo/vortex