To fix this, I wedged the firmware in question onto the initram.igz filesystem and tweaked the /sbin/init script to fire up mdev (the udev replacement for busybox that is not told to load until after module probing and hotplug isn't initialized until much later in the boot process) so that the firmware can be loaded.
To unpack the initrd
mkdir initrd
cd initrd
gzip -dc path/to/initram.igz | cpio -id
Move the firmware over
mkdir lib/firmware
cp path/to/mounted/sysrcd.dat/from/cd/or/otherwise/lib/firmware/bnx2 lib/firmware
cd ..
in sbin/init, I added
mount_sysfs
setup_hotplug
start_dev_mgr
just above the line
good_msg "Loading the disk and network drivers required to boot..."
Repack:
find ./ | cpio -H newc -o > /tmp/new-initrd.cpio
gzip /tmp/new-initrd.cpio
mv new-initrd.cpio.gz initram-bnx2.igz
My pxelinux.cfg entry looks like this:
label netboot64
kernel sysrcd/isolinux/rescue64
append initrd=sysrcd/isolinux/initram-bnx2.igz netboot=tftp://192.168.1.10/pxelinux/sysrcd/sysrcd.dat console=tty0 console=ttyS0,9600n1 udev
Fetching sysrcd.dat over tftp isn't very fast, and it may be worth looking into the http method.