Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0-only
3# Intel MIC Platform Software Stack (MPSS)
4#
5# Copyright(c) 2013 Intel Corporation.
6#
7# Intel MIC User Space Tools.
8#
9# micctrl - Controls MIC boot/start/stop.
10#
11# chkconfig: 2345 95 05
12# description: start MPSS stack processing.
13#
14### BEGIN INIT INFO
15# Provides: micctrl
16### END INIT INFO
17
18# Source function library.
19. /etc/init.d/functions
20
21sysfs="/sys/class/mic"
22
23_status()
24{
25 f=$sysfs/$1
26 echo -e $1 state: "`cat $f/state`" shutdown_status: "`cat $f/shutdown_status`"
27}
28
29status()
30{
31 if [ "`echo $1 | head -c3`" == "mic" ]; then
32 _status $1
33 return $?
34 fi
35 for f in $sysfs/*
36 do
37 _status `basename $f`
38 RETVAL=$?
39 [ $RETVAL -ne 0 ] && return $RETVAL
40 done
41 return 0
42}
43
44_reset()
45{
46 f=$sysfs/$1
47 echo reset > $f/state
48}
49
50reset()
51{
52 if [ "`echo $1 | head -c3`" == "mic" ]; then
53 _reset $1
54 return $?
55 fi
56 for f in $sysfs/*
57 do
58 _reset `basename $f`
59 RETVAL=$?
60 [ $RETVAL -ne 0 ] && return $RETVAL
61 done
62 return 0
63}
64
65_boot()
66{
67 f=$sysfs/$1
68 echo "linux" > $f/bootmode
69 echo "mic/uos.img" > $f/firmware
70 echo "mic/$1.image" > $f/ramdisk
71 echo "boot" > $f/state
72}
73
74boot()
75{
76 if [ "`echo $1 | head -c3`" == "mic" ]; then
77 _boot $1
78 return $?
79 fi
80 for f in $sysfs/*
81 do
82 _boot `basename $f`
83 RETVAL=$?
84 [ $RETVAL -ne 0 ] && return $RETVAL
85 done
86 return 0
87}
88
89_shutdown()
90{
91 f=$sysfs/$1
92 echo shutdown > $f/state
93}
94
95shutdown()
96{
97 if [ "`echo $1 | head -c3`" == "mic" ]; then
98 _shutdown $1
99 return $?
100 fi
101 for f in $sysfs/*
102 do
103 _shutdown `basename $f`
104 RETVAL=$?
105 [ $RETVAL -ne 0 ] && return $RETVAL
106 done
107 return 0
108}
109
110_wait()
111{
112 f=$sysfs/$1
113 while [ "`cat $f/state`" != "offline" -a "`cat $f/state`" != "online" ]
114 do
115 sleep 1
116 echo -e "Waiting for $1 to go offline"
117 done
118}
119
120wait()
121{
122 if [ "`echo $1 | head -c3`" == "mic" ]; then
123 _wait $1
124 return $?
125 fi
126 # Wait for the cards to go offline
127 for f in $sysfs/*
128 do
129 _wait `basename $f`
130 RETVAL=$?
131 [ $RETVAL -ne 0 ] && return $RETVAL
132 done
133 return 0
134}
135
136if [ ! -d "$sysfs" ]; then
137 echo -e $"Module unloaded "
138 exit 3
139fi
140
141case $1 in
142 -s)
143 status $2
144 ;;
145 -r)
146 reset $2
147 ;;
148 -b)
149 boot $2
150 ;;
151 -S)
152 shutdown $2
153 ;;
154 -w)
155 wait $2
156 ;;
157 *)
158 echo $"Usage: $0 {-s (status) |-r (reset) |-b (boot) |-S (shutdown) |-w (wait)}"
159 exit 2
160esac
161
162exit $?