#!/bin/bash# SPDX-License-Identifier: GPL-2.0-only# Intel MIC Platform Software Stack (MPSS)## Copyright(c) 2013 Intel Corporation.## Intel MIC User Space Tools.## micctrl - Controls MIC boot/start/stop.## chkconfig: 2345 95 05# description: start MPSS stack processing.#### BEGIN INIT INFO# Provides: micctrl### END INIT INFO # Source function library.. /etc/init.d/functions sysfs="/sys/class/mic" _status(){ f=$sysfs/$1 echo -e $1 state: "`cat $f/state`" shutdown_status: "`cat $f/shutdown_status`"} status(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _status $1 return $? fi for f in $sysfs/* do _status `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0} _reset(){ f=$sysfs/$1 echo reset > $f/state} reset(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _reset $1 return $? fi for f in $sysfs/* do _reset `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0} _boot(){ f=$sysfs/$1 echo "linux" > $f/bootmode echo "mic/uos.img" > $f/firmware echo "mic/$1.image" > $f/ramdisk echo "boot" > $f/state} boot(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _boot $1 return $? fi for f in $sysfs/* do _boot `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0} _shutdown(){ f=$sysfs/$1 echo shutdown > $f/state} shutdown(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _shutdown $1 return $? fi for f in $sysfs/* do _shutdown `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0} _wait(){ f=$sysfs/$1 while [ "`cat $f/state`" != "offline" -a "`cat $f/state`" != "online" ] do sleep 1 echo -e "Waiting for $1 to go offline" done} wait(){ if [ "`echo $1 | head -c3`" == "mic" ]; then _wait $1 return $? fi # Wait for the cards to go offline for f in $sysfs/* do _wait `basename $f` RETVAL=$? [ $RETVAL -ne 0 ] && return $RETVAL done return 0} if [ ! -d "$sysfs" ]; then echo -e $"Module unloaded " exit 3fi case $1 in -s) status $2 ;; -r) reset $2 ;; -b) boot $2 ;; -S) shutdown $2 ;; -w) wait $2 ;; *) echo $"Usage: $0 {-s (status) |-r (reset) |-b (boot) |-S (shutdown) |-w (wait)}" exit 2esac exit $?
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-only
# Intel MIC Platform Software Stack (MPSS)
#
# Copyright(c) 2013 Intel Corporation.
#
# Intel MIC User Space Tools.
#
# micctrl - Controls MIC boot/start/stop.
#
# chkconfig: 2345 95 05
# description: start MPSS stack processing.
#
### BEGIN INIT INFO
# Provides: micctrl
### END INIT INFO
# Source function library.
. /etc/init.d/functions
sysfs="/sys/class/mic"
_status()
{
f=$sysfs/$1
echo -e $1 state: "`cat $f/state`" shutdown_status: "`cat $f/shutdown_status`"
}
status()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_status $1
return $?
fi
for f in $sysfs/*
do
_status `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_reset()
{
f=$sysfs/$1
echo reset > $f/state
}
reset()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_reset $1
return $?
fi
for f in $sysfs/*
do
_reset `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_boot()
{
f=$sysfs/$1
echo "linux" > $f/bootmode
echo "mic/uos.img" > $f/firmware
echo "mic/$1.image" > $f/ramdisk
echo "boot" > $f/state
}
boot()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_boot $1
return $?
fi
for f in $sysfs/*
do
_boot `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_shutdown()
{
f=$sysfs/$1
echo shutdown > $f/state
}
shutdown()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_shutdown $1
return $?
fi
for f in $sysfs/*
do
_shutdown `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
_wait()
{
f=$sysfs/$1
while [ "`cat $f/state`" != "offline" -a "`cat $f/state`" != "online" ]
do
sleep 1
echo -e "Waiting for $1 to go offline"
done
}
wait()
{
if [ "`echo $1 | head -c3`" == "mic" ]; then
_wait $1
return $?
fi
# Wait for the cards to go offline
for f in $sysfs/*
do
_wait `basename $f`
RETVAL=$?
[ $RETVAL -ne 0 ] && return $RETVAL
done
return 0
}
if [ ! -d "$sysfs" ]; then
echo -e $"Module unloaded "
exit 3
fi
case $1 in
-s)
status $2
;;
-r)
reset $2
;;
-b)
boot $2
;;
-S)
shutdown $2
;;
-w)
wait $2
;;
*)
echo $"Usage: $0 {-s (status) |-r (reset) |-b (boot) |-S (shutdown) |-w (wait)}"
exit 2
esac
exit $?