Kernel Loadable Driver vs. Custom Compiled Driver Question

AJ Shipley aric.shipley at gmail.com
Thu Jun 4 19:24:09 UTC 2009


Hi,

I am in the process of integrating a 3rd party HW vendor’s driver into
our FreeBSD code base.  The driver works when it is loaded as a KLM
using kldload –v <driver_name> but when I modified the kernel using
config and compiled the driver into the kernel, it does not work.  The
kernel builds and installs fine, but the driver does not load
correctly.

I was able to verify that the first 10 steps of the driver works
during load in both cases and that the driver is loading the device
into the same PCI memory range (it’s a PCI based HW card).  However,
at a critical step in the driver, it polls an ISR register waiting for
a bit to toggle high indicating that the board is ready and out of
reset and it never does, and eventually hits the driver timeout and
aborts its load.

Why would a driver work as a KLM but not statically compiled into the kernel?

Thanks
AJ Shipley


More information about the freebsd-drivers mailing list