Bug 13665

Summary: xl driver does not work with 3C900 10-T cards. It only works with 3c90x 10/100 cards
Product: Base System Reporter: dave <dave>
Component: miscAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Unspecified   
Hardware: Any   
OS: Any   

Description dave 1999-09-09 18:00:00 UTC
Machine started rebooting right after it looked at the NIC after make world and then the kernel config.
After reading /sys/i386/conf/LINT about the MII bus device I guessed 
that it might be a problem with 3c900. So I swapped out the 3c900 with a 
spare 3c905 10/100 card. The stop and reboot problem cleared up. As an experement
I put the old card back in a booted off a 3.2 Generic kernel. The system 
came right up. But the 4.0 kernel still rebooted after the card init. The 3c900 
card is in another system now working properly. I kept the 3c905 in this 
system. It looks like it does not like the non-10/100 cards.

How-To-Repeat: Load the xl and MII with a 3c900 10-T card
Comment 1 Bill Paul 1999-09-09 20:51:36 UTC
Of all the gin joints in all the towns in all the world, dave@dugard.org 
had to walk into mine and say:
 
> >Number:         13665
> >Category:       misc
> >Synopsis:       xl driver does not work with 3C900 10-T cards. It only works with 3c90x 10/100 cards

You know, I scream and yell and harrass people in an attempt to get them
to provide accurate and detailed information when they file so-called
bug reports, and by now I would have though everyone would have noticed
the screaming and yelling and gotten the point. But nooooo....

Well that's just fine. I can scream and yell all day. Just remember:
you asked for it.

> >Description:

> Machine started rebooting

What does it say when it reboots! Does it print a panic message?!
If so, what!? What does it say when you do a verbose boot?! When exactly 
does it reboot! Show us what it says on the screen!! Write it down! Set 
up a serial console! Paint it on a cave wall! Chisel it into a stone
tablet! Do *anything* besides just sit there like a bump on a log and
complain that "it don't work!"

You can't just say "the machine reboots." You have to provide a
*DETAILED* description of what you observe. This means write down
everything that you see: all the panic messages, all the error
messages, all of the things that indicate something has gone wrong.
Why? Because I can't see your computer from here, so if you don't
explain exactly what happend I can't help you!

> right after it looked at the NIC

It's not "the NIC." It's a particular model. There are several 3Com
10Mbps-only PCI cards; it's important that I know which one you have.
The kernel tells you what model it is when it probes it, then you share
this information with us so we know exactly what you're talking about!

> after make world and then the kernel config.
> After reading /sys/i386/conf/LINT about the MII bus device I guessed 
> that it might be a problem with 3c900.

Well you guessed wrong. I just compiled the -current xl driver and loaded
it on my test box with a 3c900-COMBO:

xl0: <3Com 3c900-COMBO Etherlink XL> irq 9 at device 13.0 on pci0
xl0: Ethernet address: 00:60:08:08:f5:4a
xl0: selecting 10baseT transceiver, half duplex

Seems to work fine for me. This means that whatever your problem is,
it's more complicated than you make it out to be, which means we need
more information, which you didn't provide!

Look: the one thing I can't stand is having to go several rounds of
e-mail with people in order to painstakingly extract the details about
their particular problem. People seem to think it's okay to just post
a little blurb first and ask "does anybody have any ideas?", and then,
after several hours of interrogation, then finally disclose more
details. This is *WRONG*. You want to provide all of the details *UP*
*FRONT* so people don't have to go tracking you down trying to get
more information out of you! It wastes time!

Now I want you to provide more information. I want you to provide it
a timely fashion (i.e. within the next 24 hours, not next week or
next month, or whenever you feel like it), I want it chock full of 
details, I want it verbatim without any attempts on your part to 
interpret, paraphrase or otherwise mangle it, I want it in complete 
sentences and I want it in 80 columns or less. I don't want you to
say things like "I can't remember" or "I forgot to write it down" or
"I have to go to Fiji for a week, I'll try it when I get back." Take
a memory improvement class, get a pencil and paper, cancel the
reservations at the Fiji Hilton, put the card *back* in the machine, 
recreate the problem and document the crap out of it!

-Bill

-- 
=============================================================================
-Bill Paul            (212) 854-6020 | System Manager, Master of Unix-Fu
Work:         wpaul@ctr.columbia.edu | Center for Telecommunications Research
Home:  wpaul@skynet.ctr.columbia.edu | Columbia University, New York City
=============================================================================
 "It is not I who am crazy; it is I who am mad!" - Ren Hoek, "Space Madness"
=============================================================================
Comment 2 Bill Paul freebsd_committer freebsd_triage 1999-09-20 21:26:11 UTC
State Changed
From-To: open->closed


I still haven't heard anything from you yet, but I managed to figure 
out your problem anyway. Let me explain to you the things you *didn't* 
tell me which would have saved me a lot of time: 

- You only said the system reboots. This is wrong. In fact, it panics, 
and the panic comes from ifmedia_set. It tells you this quite plainly, 
and it would have taken you all of one minute to grab a piece of paper 
and write this information down. You have no excuse for not doing this. 
When you're standing before St. Peter at the pearly gates, this will      
be counted against you. 

- You didn't check the card with the 3C90XCFG.EXE utility and inspect 
the transceiver setting. If you had, you would have discovered that 
the setting is for "auto" which is part of the problem. I'm not going 
to flame you too hard for this since it's not exactly obvious.        

The problem is that the driver doesn't support autoselection for non-NWAY 
transceivers. For the 10/100 cards, autoselection is done with NWAY. For 
the TPC/TPO/COMBO/FL cards, the driver just selects the default transceiver 
selection from the EEPROM, and you can override it with ifconfig if you 
need to. However if the EEPROM says to use "auto," the driver doesn't 
handle it correctly. (The one exception is the 3c905B-COMBO, for which      
there is already a little bit of special handling.) 

I patched the driver to detect the case where "auto" has been selected for 
the case where there is no NWAY media and select a reasonable default based 
on the card type.
Comment 3 Samuel Tardieu 2001-12-01 15:52:16 UTC
I just noticed this bug, which can probably be closed: I currently have 
a 3c900 10baseT card which is working just fine with FreeBSD 4.4-STABLE.

Incidentally, the card does not work with Windows 2000, because of an 
obscure error. Hopefully, a real system can make it work :-)
Comment 4 Samuel Tardieu 2001-12-01 15:53:56 UTC
Samuel Tardieu wrote:

> I just noticed this bug, which can probably be closed: I currently have 
> a 3c900 10baseT card which is working just fine with FreeBSD 4.4-STABLE.
> 
> Incidentally, the card does not work with Windows 2000, because of an 
> obscure error. Hopefully, a real system can make it work :-)
> 

Forget about this notice: I hadn't seen that the bug had been closed a 
long time ago.