Broadcom 440x NIC not recognized on boot

Richard Lynch ceo at
Thu Sep 9 21:01:20 PDT 2004

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

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?

More information about the freebsd-questions mailing list