mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-05 18:14:07 +08:00
4e43d779e5
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 39 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.397680977@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
163 lines
2.2 KiB
Bash
Executable File
163 lines
2.2 KiB
Bash
Executable File
#!/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 $?
|