Broadcom 440x NIC not recognized on boot

Subhro subhro.kar at
Fri Sep 10 03:35:44 PDT 2004

On Thu, 9 Sep 2004 21:00:39 -0700 (PDT), Richard Lynch <ceo at> wrote:

> #1. How do I test that bfe (man bfe) is built-in to the kernel versus
> loaded as a module?
Check the config file. I believe the GENERIC kernel has it built in.

> #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?

Of course it will always be better to have it built into the kernel
than to load it as a module. The primary advantage is the speed at
which the kernel can speak to a module is much less compared to the
speed at which it can speak to another part of itself.
> #3. Exactly *HOW* does the boot process figure out what gear is what?
Every device has a special identification code which is unique for a
device throughout the world. While booting the kernel basically probes
the available devices "without" knowing what is what. The device
replies with that code and the kernel comes to know what device it is
by analysing the code returned.
> #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)

No its not possible. If you use a particular chip you cant reburn the
device identification in the CHIP. That is possible just once during
the manufacture and is hardwired.

> 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?
It is very unlikely you will blow anything up. The max what can happen
is, the  device wont work. In worst case you may trash its firmware.
But I have *never* seen a firmware blow up that way. But yes that IS

> 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...)
It is difficult to say what you ecatly did. Maybe if you paste the
snippets under consideration I can try to help you out.

> 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?
Sorry I was unable to understand your query. Could you please reframe?

> I'm okay with vi and editing source code, but it's been decades since I've
> really written C code...
C is the heartbeat of any *nix system :-D

> Still, I'd really like to get this card working, and I'll submit a patch
> if we get it...
Same with me. I really want to see everything, I repeat "EVERYTHING"
work under FreeBSD. But unfortunately not everything works the way you
want it to :-(. But we can always fight it out :-D.

> --
> Like Music?
Kinda good collection. Could you have some trance? 


Subhro Sankha Kar
School of Information Technology
Block AQ-13/1 Sector V
ZIP 700091

More information about the freebsd-questions mailing list