x86_64 tg3 wonkiness

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



apologies if this has been discussed before, my googling and mailing
list searching has been fruitless.

i've been slowly working on migrating my linux installation on a dual
opteron box (MSI K8D 'Master' mobo, dual 244's & 4gig installed) to
64-bitness.

the msi board has 2 broadcom 5704a6's on-board (on a pci-x path, 100mhz,
64bit).

obviously, until i ran 2.4.21-rc7 (thanks!) i was unable to get the 5704's
to work at all, but once i had patched the kernel up i encountered no
problems...until i built a new 2.4.21-rc7 kernel (through iterations, a
fresh 2.4.20 untar and re-patch) with an x86_64 cross compiler
(gcc-3.2.3).

with the x86_64 kernel, the tg3 driver is able to see the two cards on
booting (code is not loaded as a module), but at no time can it ever seem
to complete auto-detection (or, with the 'ethtool' tweaking, nor can it
seem to evident a link when the proper configuration (1g/full) is given to
it).

obviously, i have no net.  but only when running the 64-bit kernel, the
kernel built for i686 works just fine.

currently i'm trying to debug this on 2.4.21, and still no luck.

all other aspects of the system operate normally...but i have yet to put
the system under my usual stress tests since they use network i/o as
part of it, so that may yet be an illusion.


i tried putting some extra printk's in the tg3 driver, to try and figure
out where in autosensing it was failing.  having very little understanding
of how any of this works, unfortunately, means that only thing i've learned
is that tg3_setup_copper_phy is called twice after ifconfigging it up,
and both times it fails to detect link (i put printk's at every single
'current_link_up = x' line, so it doesn't seem to detect either link or the
lack thereof).  when i did my 'ethtool' tweaking, it would only be called
once.

looking at /proc/interrupts, the irq for the tg3 (29) seems to be getting
about 10 interrupts per second...and no i don't have that much network
traffic going on (maybe 1 broadcast per 40 seconds or so).


i have no reason to suspect the cross compiler of badness...every local
application i've built with it operates just fine.

i spent a great deal of time combing over the tg3 driver looking for
obvious 32/64 bit errors.  but, the driver seems to be extremely well
written in this regard...int is only used to type match external
functions.

the interrupts suggest that the device is trying to tell the driver
about the link state, but somehow the driver is never getting around to
servicing the interrupt (or services it, and misses the point).


i will continue to investigate this on my own, as poor as my ability to
do so is, but if anyone has this working or even has advice as to where
to start, i would appreciate any input.

-- 
David W. Hankins	"If you don't do it right the first time,
Network Engineer			you'll just have to do it again."
						-- Jack T. Hankins

Attachment: pgp00057.pgp
Description: PGP signature


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux