t=`basename "$kpath"`
kexec_image="/mnt/$t"
fi
+ umount /sys
fi
;;
if /boot/network ; then
echo "Loading kexec kernel using nfs \"$kpath\"..."
echo "mounting nfs partition..."
+ loadnfsmods
if mount -o ro,nolock -t nfs `dirname "$kpath"` /mnt ; then
need_umount=1
t=`basename "$kpath"`
kexec_image="/mnt/$t"
fi
+ umount /sys
fi
;;
echo "Loading kexec kernel using tftp \"$kpath\"..."
tftp -g -l "$kexec_image" -r "${kpath#*:}" "${kpath%%:*}"
fi
+ umount /sys
fi
;;
# function!
. /etc/default/functions
#
+# /proc is needed for the module loading, and /sys is
+# necessary to load firmware (if required).
+mount -t proc proc /proc
+mount -t sysfs sysfs /sys
+#
# We may need to load the network driver modules here
. /etc/default/modulefunctions
loadnetmods
# file. Config the loopback and network interfaces.
ifconfig lo 127.0.0.1 up
iface="$(config iface)"
-test -n "$iface" && ifup "$iface"
+test -z "$iface" && exit 1
+#
+# Fire up a process in the background to load the firmware if necessary
+sysf="/sys/class/firmware/$iface"
+(
+ # Wait for the firware to be requested, if required
+ [ -f $sysf/loading ] || sleep 1
+ [ -f $sysf/loading ] || sleep 1
+ if [ -f $sysf/loading ] ; then
+ echo "1" >$sysf/loading
+ cat /lib/firmware/NPE-B >$sysf/data
+ echo "0" >$sysf/loading
+ fi
+) &
+# Trigger the firmware load proactively
+ifconfig "$iface" up
+#
+ifup "$iface"
# exit code is true only if the interface config has succeeded
export PATH=/sbin:/bin:/usr/sbin:/usr/bin
#
. /etc/default/functions
+. /etc/default/modulefunctions
+#
leds boot system
#
if /boot/network
then
+ # load the nfs kernel module
+ loadnfsmods
+
# network is up and running, the NFS mount will
# now succeed (possibly), use /boot/disk
exec /boot/disk "$@"