Broadcom 440x NIC not recognized on boot

Charles Swiger cswiger at mac.com
Fri Sep 10 13:17:44 PDT 2004


On Sep 10, 2004, at 3:52 PM, Richard Lynch wrote:
> Sometimes, when one talks about a "config" file, one is talking about
> editing /etc/*.conf, and start/stop a service, or, in extreme cases,
> re-booting.
>
> Are there run-time options to the kernel in such a file?

Some of the settings one can make in /etc/rc.conf end up making 
run-time changes to the kernel.  A simple example would be 
gateway_enable='yes', which sets the sysctl net.inet.ip.forwarding=1.

> Or are all kernel-configuration options done at compile-time?

No.

[ ... ]
> Given that this device has a different device identification, but that
> Windows identifies it as a BCM 440x, and that bfe supports the BCM 
> 4401,
> and the BFE docs indicate that that driver should work for the BCM 440x
> "series", am I reasonable to expect that if I could just add a line of
> code somewhere with the new device identification, it has a strong
> possibility of working?

Yes.  Take a look at the code in /usr/src/sys/dev/bfe/if_bfe.c:

static struct bfe_type bfe_devs[] = {
         { BCOM_VENDORID, BCOM_DEVICEID_BCM4401,
                 "Broadcom BCM4401 Fast Ethernet" },
                 { 0, 0, NULL }
};

...define a BCOM_DEVICEID_BCM4403 in if_bfereg.h, and add a similar 
entry to the struct above.

> What I'm not completely clear on is:
> Does a different device ID pretty much guarantee that the same driver
> won't work, or do drivers often work for a bunch of chips with 
> different
> IDs that really aren't all that different in API?

Really popular chipsets end up being cloned or re-released with minor 
variants over time, so one driver can handle many different PCI vendor 
ID/device ID combos.  But that all depends on the specific 
circumstances, there are few generalizations which can be made 
reliably.

-- 
-Chuck



More information about the freebsd-questions mailing list