File: GENCACHE

package info (click to toggle)
mcelog 104-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 996 kB
  • ctags: 1,508
  • sloc: ansic: 7,739; sh: 481; makefile: 87
file content (60 lines) | stat: -rwxr-xr-x 1,092 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash
# GENCACHE cpu level type track
# generate a memory error. All fields are optional.
# see SDM 3a chapter 15 for details
# 
# level: 
# 0 level 0
# 1 level 1
# 2 level 2
# 3 level generic
# 
# ctype
# 0 instruction 
# 1 data
# 2 generic
# 
# track
# 0 no tracking
# 1 green: below threshold
# 2 yellow: above threshold
# 3 reserved

cpu=${1:-0}
level=${2:-0}
ctype=${3:-0}
track=${4:-1}

case "$ctype" in
instr) ctype=0 ;;
data) ctype=1 ;;
generic) ctype=2 ;;
[0-3])  ;;
*) echo "Unknown ctype $ctype" ; exit 1
esac

case "$level" in
L0) level=0 ;;
L1) level=1 ;;
L2) level=2 ;;
LG) level=3 ;;
[0-3])  ;;
*) echo "Unknown Cache $level" ; exit 1
esac

case "$track" in
none) track=0 ;;
green) track=1 ;; 
yellow) track=2 ;;
[0-3]) ;;
*) echo "Unknown tracking flag $track" ; exit 1
esac

echo "# cache error on cpu $cpu level $level type $ctype track $track"
echo "CPU $cpu 2" # XXX use cpu in socket
echo "# nehalem"
echo "PROCESSOR 0:0x106a0"
printf "MCGCAP 0x%x\n" $[1 << 11]
printf "STATUS 0x%08x%08x\n" \
	$[0x88000000 + ($track << (53-32))] $[0x100 + $level + ($ctype << 2)]