]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - samples/mic/mpssd/micctrl
timekeeping: Repair ktime_get_coarse*() granularity
[mirror_ubuntu-jammy-kernel.git] / samples / mic / mpssd / micctrl
1 #!/bin/bash
2 # Intel MIC Platform Software Stack (MPSS)
3 #
4 # Copyright(c) 2013 Intel Corporation.
5 #
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License, version 2, as
8 # published by the Free Software Foundation.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
14 #
15 # The full GNU General Public License is included in this distribution in
16 # the file called "COPYING".
17 #
18 # Intel MIC User Space Tools.
19 #
20 # micctrl - Controls MIC boot/start/stop.
21 #
22 # chkconfig: 2345 95 05
23 # description: start MPSS stack processing.
24 #
25 ### BEGIN INIT INFO
26 # Provides: micctrl
27 ### END INIT INFO
28
29 # Source function library.
30 . /etc/init.d/functions
31
32 sysfs="/sys/class/mic"
33
34 _status()
35 {
36 f=$sysfs/$1
37 echo -e $1 state: "`cat $f/state`" shutdown_status: "`cat $f/shutdown_status`"
38 }
39
40 status()
41 {
42 if [ "`echo $1 | head -c3`" == "mic" ]; then
43 _status $1
44 return $?
45 fi
46 for f in $sysfs/*
47 do
48 _status `basename $f`
49 RETVAL=$?
50 [ $RETVAL -ne 0 ] && return $RETVAL
51 done
52 return 0
53 }
54
55 _reset()
56 {
57 f=$sysfs/$1
58 echo reset > $f/state
59 }
60
61 reset()
62 {
63 if [ "`echo $1 | head -c3`" == "mic" ]; then
64 _reset $1
65 return $?
66 fi
67 for f in $sysfs/*
68 do
69 _reset `basename $f`
70 RETVAL=$?
71 [ $RETVAL -ne 0 ] && return $RETVAL
72 done
73 return 0
74 }
75
76 _boot()
77 {
78 f=$sysfs/$1
79 echo "linux" > $f/bootmode
80 echo "mic/uos.img" > $f/firmware
81 echo "mic/$1.image" > $f/ramdisk
82 echo "boot" > $f/state
83 }
84
85 boot()
86 {
87 if [ "`echo $1 | head -c3`" == "mic" ]; then
88 _boot $1
89 return $?
90 fi
91 for f in $sysfs/*
92 do
93 _boot `basename $f`
94 RETVAL=$?
95 [ $RETVAL -ne 0 ] && return $RETVAL
96 done
97 return 0
98 }
99
100 _shutdown()
101 {
102 f=$sysfs/$1
103 echo shutdown > $f/state
104 }
105
106 shutdown()
107 {
108 if [ "`echo $1 | head -c3`" == "mic" ]; then
109 _shutdown $1
110 return $?
111 fi
112 for f in $sysfs/*
113 do
114 _shutdown `basename $f`
115 RETVAL=$?
116 [ $RETVAL -ne 0 ] && return $RETVAL
117 done
118 return 0
119 }
120
121 _wait()
122 {
123 f=$sysfs/$1
124 while [ "`cat $f/state`" != "offline" -a "`cat $f/state`" != "online" ]
125 do
126 sleep 1
127 echo -e "Waiting for $1 to go offline"
128 done
129 }
130
131 wait()
132 {
133 if [ "`echo $1 | head -c3`" == "mic" ]; then
134 _wait $1
135 return $?
136 fi
137 # Wait for the cards to go offline
138 for f in $sysfs/*
139 do
140 _wait `basename $f`
141 RETVAL=$?
142 [ $RETVAL -ne 0 ] && return $RETVAL
143 done
144 return 0
145 }
146
147 if [ ! -d "$sysfs" ]; then
148 echo -e $"Module unloaded "
149 exit 3
150 fi
151
152 case $1 in
153 -s)
154 status $2
155 ;;
156 -r)
157 reset $2
158 ;;
159 -b)
160 boot $2
161 ;;
162 -S)
163 shutdown $2
164 ;;
165 -w)
166 wait $2
167 ;;
168 *)
169 echo $"Usage: $0 {-s (status) |-r (reset) |-b (boot) |-S (shutdown) |-w (wait)}"
170 exit 2
171 esac
172
173 exit $?