Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Sep 2004 21:00:39 -0700 (PDT)
From:      "Richard Lynch" <ceo@l-i-e.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: Broadcom 440x NIC not recognized on boot
Message-ID:  <10027.66.243.145.85.1094788839.squirrel@www.l-i-e.com>
In-Reply-To: <1325.67.167.52.21.1094527694.squirrel@www.l-i-e.com>
References:  <1093.67.167.52.21.1094522790.squirrel@www.l-i-e.com>    <b2807d0404090620006d55e892@mail.gmail.com> <1325.67.167.52.21.1094527694.squirrel@www.l-i-e.com>

next in thread | previous in thread | raw e-mail | index | archive | help
So, I'm having trouble because my laptop is not recognizing the built-in
LAN/NIC during boot.

I've been reading manuals furiously, but I'm at the stage where I have a
laundry list of things to try, but am not running across the docs on how
to do them...

Of course, sometimes it's that I can't actually reach the 'net to research
them when I think of them, as I'm in FreeBSD where the NIC isn't working.
:-^

I realize these are most likely entirely my fault for not finding them, so
just a link to where they are would be most welcome.

#1. How do I test that bfe (man bfe) is built-in to the kernel versus
loaded as a module?

#2. Is it possible that building bfe into the kernel will magically make
it "better", or is being loaded as a module ALWAYS the same?

#3. Exactly *HOW* does the boot process figure out what gear is what?

#3a. Rather involved question...
My current hypothesis.
It would seem to be comparing 0x14e4 (?) and "knows" that that is Broadcom.
It then sees 0x4324 and does *NOT* recognize that as a BCM440x device.
It's possible that Broadcom gave their laptop version of this device a new
device ID. (It's a relatively new-to-the-market laptop)
Therefore, I'd like to edit some source code file somewhere, copying the
line about the 4401, and re-compile, install, re-boot, and PRAY.
How dangerous would this be?
  How likely that I am gonna blow up my NIC?
  How likely that I blow up the whole laptop?

Errr.  Exactly where would I start to look for the file I want to change?

Here's what I tried:
  I've found the if_bfe.c file, in /usr/src/sys/dev/bfe/
  Added some printf statements in the probe function
  (to print out the t->vid and t->did values as it searched),
  re-compiled /usr/src/sys/modules/,
  copied the resulting if_bfe.ko (mtime was 'now') to /boot/kernel
  copied same to /boot/modules
  (I think I put that there with make; make install days ago)

And, when I booted, I rather expected dmesg to get output from my printf
statements...

It didn't, so obviously I don't really understand what's going on here.
(Well, I knew that, but...)

The Hardware section in the docs directory of my installation referred me
to a "Hardware Changes" (?) in my installation...  Since that was what I
was looking for in the first place, I was rather at a loss to find the
document referred to...  Any idea what I should have been reading?

I'm okay with vi and editing source code, but it's been decades since I've
really written C code...

Still, I'd really like to get this card working, and I'll submit a patch
if we get it...

-- 
Like Music?
http://l-i-e.com/artists.htm



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?10027.66.243.145.85.1094788839.squirrel>