1013 lines
21 KiB
Plaintext
1013 lines
21 KiB
Plaintext
# This is an ide startup file.
|
|
#ident EVEREST/shell
|
|
# $Revision: 1.52 $
|
|
report=2
|
|
hinv -v
|
|
|
|
scripts {
|
|
echo ""
|
|
echo "IDE included scripts are:"
|
|
echo ""
|
|
echo " ipall - invokes ip1 to ip9"
|
|
echo " tlball - invokes tlb1 to tlb9"
|
|
echo " quickfpu - invokes fpu1 to fpu13"
|
|
echo " quickcache - invokes cache1-20, 22-38, 40-44, 47 & 49"
|
|
echo " quickip19 - invokes all of the above and mem18, mem16"
|
|
echo " fpuall - invokes fpu1 to fpu14"
|
|
echo " cacheall - invokes cache1 to cache48"
|
|
echo " ip19 - invokes all tests for IP19"
|
|
echo " memall - invokes mem2 to mem10, mem13 and mem16"
|
|
echo " memfast - invokes mem3, mem5, mem8 to mem10, mem16"
|
|
echo " io_all - invokes all tests for IO4"
|
|
echo " scsi_all - invokes all SCSI tests for IO4"
|
|
echo " dang_all - invokes all DANG/GGAM tests for IO4"
|
|
echo " ev_quick - invokes standalone diag suite quickly"
|
|
echo " everest_all - invokes entire standalone diag suite"
|
|
echo " mp TEST SET - invokes TEST on SET defined for MP execution"
|
|
echo " mpstress - invokes mp cache coherency test"
|
|
echo " mpcachesz [1/4] - verifies 1 or 4 MB scache installation"
|
|
echo " runadmin - changes the contents of the global set 'runcpus'"
|
|
echo " scripts - displays this list"
|
|
echo ""
|
|
echo " ** 'exit' or 'quit' returns to PROM monitor**"
|
|
echo " ** Always reset system ('reset' at PROM prompt) before booting IDE **"
|
|
echo ""
|
|
}
|
|
|
|
runadmin {
|
|
echo ""
|
|
echo "Use the following scripts to change contents of 'runcpus':"
|
|
echo ""
|
|
echo " runmode - display current contents of 'runcpus'"
|
|
echo " runall - include all enabled processors in 'runcpus'"
|
|
echo " runon CPU# - include only specified processor in 'runcpus'"
|
|
echo " runexcp CPU# - include all except specified processor in 'runcpus'"
|
|
echo ""
|
|
}
|
|
|
|
# define a batch of shorthands for often-needed commands
|
|
#
|
|
|
|
printf " - define runmode,"
|
|
runmode {
|
|
echo "MP execution currently set to: "
|
|
display_set -s "runcpus"
|
|
}
|
|
|
|
create_set -s "everycpus"
|
|
printf " runall,"
|
|
runall {
|
|
$temp=set_exists -s "runcpus"
|
|
if ($temp == 0) {
|
|
create_set -s "runcpus"
|
|
}
|
|
set_differ -s "runcpus,runcpus,runcpus"
|
|
set_union -s "everycpus,runcpus,runcpus"
|
|
runmode
|
|
}
|
|
|
|
printf " runon,"
|
|
runon {
|
|
$temp=set_exists -s "runcpus"
|
|
if ($temp == 0) {
|
|
create_set -s "runcpus" -e
|
|
}
|
|
set_differ -s "runcpus,runcpus,runcpus"
|
|
add_cpu -s "runcpus" -v $1
|
|
runmode
|
|
}
|
|
|
|
printf " runexcp,"
|
|
runexcp {
|
|
$temp=set_exists -s "runcpus"
|
|
if ($temp == 0) {
|
|
create_set -s "runcpus"
|
|
}
|
|
$temp=cpu_in -s "runcpus" -v $1
|
|
if ($temp == 0) return
|
|
set_union -s "runcpus,everycpus,runcpus"
|
|
del_cpu -s "runcpus" -v $1
|
|
runmode
|
|
}
|
|
|
|
printf " mp,"
|
|
mp {
|
|
if ($$ != 3) {
|
|
echo "Usage: mp TEST SET"
|
|
return
|
|
}
|
|
$temp=set_exists -s $2
|
|
if ($temp == 0) {
|
|
echo "Please define '"$2"' using 'create_set' first"
|
|
return
|
|
}
|
|
exec -f $1 -s $2
|
|
}
|
|
|
|
printf " list,"
|
|
list {
|
|
if ($$ == 1) {
|
|
printf "list "
|
|
symbols -l
|
|
printf "\n"
|
|
return 0
|
|
} else {
|
|
$res_ult = symbols -t $1
|
|
return $res_ult
|
|
}
|
|
}
|
|
|
|
printf " match,"
|
|
match {
|
|
if ($$ == 1) {
|
|
printf "usage: match KEYSTRING\n"
|
|
return -1
|
|
} else {
|
|
$res_ult = symbols -k $1
|
|
return $res_ult
|
|
}
|
|
}
|
|
|
|
isaset {
|
|
$r_es = set_exists -s $1
|
|
return $r_es
|
|
}
|
|
|
|
isamember {
|
|
$r_es = cpu_in -v $1 -s $2
|
|
return $r_es
|
|
}
|
|
|
|
clear_set {
|
|
if (isaset "mty_set" == $FALSE) {
|
|
create_set -s "mty_set" -e
|
|
}
|
|
if (isaset $1 == $FALSE) {
|
|
printf ("set not found\n");
|
|
return $FALSE
|
|
}
|
|
$1 = $mty_set
|
|
return $TRUE
|
|
}
|
|
|
|
cpu_count {
|
|
$cnt = 0
|
|
for ($loop=0; $loop<64; $loop++) {
|
|
if (isamember $loop $1) {
|
|
$cnt+=1
|
|
}
|
|
}
|
|
return $cnt
|
|
}
|
|
|
|
printf " hx\n"
|
|
hx {
|
|
printf "0x%x\n" $1
|
|
}
|
|
#
|
|
# define simple usec, msec, and second delays
|
|
# printf " - delays with intervals of usec, msec, and second granularity:\n"
|
|
# printf " --> us_delay, ms_delay, and sleep.\n usages: "
|
|
# printf " 'us_delay USECS' 'ms_delay MSECS' 'sleep SECS'\n"
|
|
|
|
us_delay {
|
|
ide_delay -u $1
|
|
}
|
|
# eg: 'us_delay 100'
|
|
|
|
ms_delay {
|
|
ide_delay -m $1
|
|
}
|
|
# eg: 'ms_delay 15'
|
|
|
|
sleep {
|
|
ide_delay -s $1
|
|
}
|
|
# eg: 'sleep 5'
|
|
|
|
printf " - define symcmd, charcmd, set_charcmd, newset, showset\n"
|
|
# demonstrate parameter-passing for user-defined commands which
|
|
# call functions using the 'sym_t *' argv format
|
|
symcmd {
|
|
test_symcmd $1
|
|
}
|
|
|
|
# and for udef commands calling functions using 'char *' argv format
|
|
charcmd {
|
|
test_charcmd $1 $2
|
|
}
|
|
|
|
# here's an example using the set-execution stuff
|
|
set_charcmd {
|
|
test_charcmd -- -s $1 -i -- $2 $3
|
|
}
|
|
|
|
newset {
|
|
$R_ES = create_set -s $1
|
|
return $R_ES
|
|
}
|
|
|
|
showset {
|
|
$R_ES = display_set -s $1
|
|
return $R_ES
|
|
}
|
|
|
|
# get_vpinfo SETNAME
|
|
# echo "define get_vpinfo"
|
|
# cpuinfo {
|
|
# change and restore report to mute the helpful verbosity
|
|
# $tmpr = $report
|
|
# $report = 1
|
|
# printf " init '%s' with the set of active virtual processors\n" $1
|
|
# $res_ = create_set -s $1
|
|
# if ($res_ != 0) {
|
|
# printf "\nget_vpinfo: create_set failed (%d)\n" $res
|
|
# } else {
|
|
# printf " %s: " $1
|
|
# display_set -s $1
|
|
# printf "\n"
|
|
# }
|
|
# $report = $tmpr
|
|
# return $res
|
|
# }
|
|
|
|
|
|
printf " - define subdue, restore,"
|
|
subdue {
|
|
$2 = $report
|
|
$report = $1
|
|
$srvalid_ = 0xd0dd
|
|
}
|
|
|
|
restore {
|
|
if ($srvalid_ == 0xd0dd) {
|
|
$report = $2
|
|
}
|
|
$srvalid_ = 0xdead
|
|
}
|
|
|
|
# defines for the memory tests to make them "automatically" icached
|
|
mem2 {
|
|
runcached on
|
|
clear_intrs
|
|
mem2_
|
|
runcached off
|
|
}
|
|
|
|
mem3 {
|
|
runcached on
|
|
clear_intrs
|
|
mem3_
|
|
runcached off
|
|
}
|
|
|
|
mem4 {
|
|
runcached on
|
|
clear_intrs
|
|
mem4_
|
|
runcached off
|
|
}
|
|
|
|
mem5 {
|
|
runcached on
|
|
clear_intrs
|
|
mem5_
|
|
runcached off
|
|
}
|
|
|
|
mem6 {
|
|
runcached on
|
|
clear_intrs
|
|
mem6_
|
|
runcached off
|
|
}
|
|
|
|
mem7 {
|
|
runcached on
|
|
clear_intrs
|
|
mem7_
|
|
runcached off
|
|
}
|
|
|
|
mem8 {
|
|
runcached on
|
|
clear_intrs
|
|
mem8_
|
|
runcached off
|
|
}
|
|
|
|
mem9 {
|
|
runcached on
|
|
clear_intrs
|
|
mem9_
|
|
runcached off
|
|
}
|
|
|
|
mem10 {
|
|
runcached on
|
|
clear_intrs
|
|
mem10_
|
|
runcached off
|
|
}
|
|
|
|
mem13 {
|
|
runcached on
|
|
clear_intrs
|
|
mem13_
|
|
runcached off
|
|
}
|
|
|
|
mem15 {
|
|
runcached on
|
|
clear_intrs
|
|
mem15_
|
|
runcached off
|
|
}
|
|
|
|
mem16 {
|
|
runcached on
|
|
clear_intrs
|
|
mem16_
|
|
runcached off
|
|
}
|
|
mem17 {
|
|
runcached on
|
|
clear_intrs
|
|
mem17_
|
|
runcached off
|
|
}
|
|
mem18 {
|
|
runcached on
|
|
clear_intrs
|
|
mem18_
|
|
runcached off
|
|
}
|
|
# THE STARTUP SCRIPT FOR THE CPU DIAGNOSTICS WILL BE HERE.
|
|
#
|
|
printf " ipall"
|
|
ipall {
|
|
ip1 -- -s "runcpus" --
|
|
ip2 -- -s "runcpus" --
|
|
ip3 -- -s "runcpus" --
|
|
ip4 -- -s "runcpus" --
|
|
ip5 -- -s "runcpus" --
|
|
ip6 -- -s "runcpus" --
|
|
ip7 -- -s "runcpus" --
|
|
ip8 -- -s "runcpus" --
|
|
ip9 -- -s "runcpus" --
|
|
printf "Finished ipall\n"
|
|
}
|
|
|
|
printf ", tlball\n"
|
|
tlball {
|
|
tlb1 -- -s "runcpus" --
|
|
tlb2 -- -s "runcpus" --
|
|
tlb3 -- -s "runcpus" --
|
|
tlb4 -- -s "runcpus" --
|
|
tlb5 -- -s "runcpus" --
|
|
tlb6 -- -s "runcpus" --
|
|
tlb7 -- -s "runcpus" --
|
|
tlb8 -- -s "runcpus" --
|
|
tlb9 -- -s "runcpus" --
|
|
printf "Finished tlball\n"
|
|
}
|
|
|
|
printf " - define quickfpu"
|
|
quickfpu {
|
|
fpu1 -- -s "runcpus" --
|
|
fpu2 -- -s "runcpus" --
|
|
fpu3 -- -s "runcpus" --
|
|
fpu4 -- -s "runcpus" --
|
|
fpu5 -- -s "runcpus" --
|
|
fpu6 -- -s "runcpus" --
|
|
fpu7 -- -s "runcpus" --
|
|
fpu8 -- -s "runcpus" --
|
|
fpu9 -- -s "runcpus" --
|
|
fpu10 -- -s "runcpus" --
|
|
fpu11 -- -s "runcpus" --
|
|
fpu12 -- -s "runcpus" --
|
|
fpu13 -- -s "runcpus" --
|
|
printf "Finished quickfpu\n"
|
|
}
|
|
|
|
printf ", fpuall"
|
|
fpuall {
|
|
quickfpu
|
|
fpu14 -- -s "runcpus" --
|
|
printf "Finished fpuall\n"
|
|
}
|
|
|
|
printf ", quickcache"
|
|
quickcache {
|
|
cache1 -- -s "runcpus" --
|
|
cache2 -- -s "runcpus" --
|
|
cache3 -- -s "runcpus" --
|
|
cache4 -- -s "runcpus" --
|
|
cache5 -- -s "runcpus" --
|
|
cache6 -- -s "runcpus" --
|
|
cache7 -- -s "runcpus" --
|
|
cache8 -- -s "runcpus" --
|
|
cache9 -- -s "runcpus" --
|
|
cache10 -- -s "runcpus" --
|
|
cache11 -- -s "runcpus" --
|
|
cache12 -- -s "runcpus" --
|
|
cache13 -- -s "runcpus" --
|
|
cache14 -- -s "runcpus" --
|
|
cache15 -- -s "runcpus" --
|
|
cache16 -- -s "runcpus" --
|
|
cache17 -- -s "runcpus" --
|
|
cache18 -- -s "runcpus" --
|
|
cache19 -- -s "runcpus" --
|
|
cache20 -- -s "runcpus" --
|
|
cache22 -- -s "runcpus" --
|
|
cache23 -- -s "runcpus" --
|
|
cache24 -- -s "runcpus" --
|
|
cache25 -- -s "runcpus" --
|
|
cache26 -- -s "runcpus" --
|
|
cache27 -- -s "runcpus" --
|
|
cache28 -- -s "runcpus" --
|
|
cache29 -- -s "runcpus" --
|
|
cache30 -- -s "runcpus" --
|
|
cache31 -- -s "runcpus" --
|
|
cache32 -- -s "runcpus" --
|
|
cache33 -- -s "runcpus" --
|
|
cache34 -- -s "runcpus" --
|
|
cache35 -- -s "runcpus" --
|
|
cache36 -- -s "runcpus" --
|
|
cache37 -- -s "runcpus" --
|
|
cache38 -- -s "runcpus" --
|
|
cache40 -- -s "runcpus" --
|
|
cache41 -- -s "runcpus" --
|
|
cache42 -- -s "runcpus" --
|
|
cache43 -- -s "runcpus" --
|
|
cache44 -- -s "runcpus" --
|
|
cache47 -- -s "runcpus" --
|
|
cache49 -- -s "runcpus" --
|
|
cache50 -- -s "runcpus" --
|
|
printf "Finished quickcache\n"
|
|
}
|
|
|
|
printf ", cacheall"
|
|
cacheall {
|
|
quickcache
|
|
cache21 -- -s "runcpus" --
|
|
cache39 -- -s "runcpus" --
|
|
cache45 -- -s "runcpus" --
|
|
cache46 -- -s "runcpus" --
|
|
cache48 -- -s "runcpus" --
|
|
printf "Finished cacheall\n"
|
|
}
|
|
|
|
printf ", quickip19"
|
|
quickip19 {
|
|
ipall
|
|
tlball
|
|
quickfpu
|
|
qmode on
|
|
mem18
|
|
mem16
|
|
quickcache
|
|
printf "Finished quickip19\n"
|
|
}
|
|
|
|
printf ", and ip19\n"
|
|
ip19 {
|
|
ipall
|
|
tlball
|
|
fpuall
|
|
qmode on
|
|
mem18
|
|
mem16
|
|
cacheall
|
|
printf "Finished ip19\n"
|
|
}
|
|
|
|
checkcache {
|
|
if ($$ != 3) {
|
|
echo "Usage: checkcache vid ScacheSizeinMB"
|
|
return
|
|
}
|
|
if ($2 == 1) {
|
|
$failcache = exec -v $1 -f "mpchk_cache" -a "1"
|
|
}
|
|
if ($2 == 4) {
|
|
$failcache = exec -v $1 -f "mpchk_cache" -a "4"
|
|
}
|
|
}
|
|
|
|
mpcachesz {
|
|
if ($$ != 2) {
|
|
echo "Usage: mpcachesz ScacheSizeinMB e.g. mpcachesz 4"
|
|
return
|
|
}
|
|
if ($1 != 1) {
|
|
if ($1 != 4) {
|
|
echo "Only 1 or 4MB is supported"
|
|
return
|
|
}
|
|
}
|
|
$cpus = cpu_count "runcpus"
|
|
echo "Start checking scache installations on each CPU"
|
|
for ($loop=0; $loop<$cpus; $loop++) {
|
|
checkcache $loop $1
|
|
if ($failcache == 2) {
|
|
quit
|
|
}
|
|
}
|
|
}
|
|
|
|
printf " - define mptest"
|
|
mptest {
|
|
if ($report >= 3) {
|
|
printf "Invalidate caches from cpu slices"
|
|
showset "allcpus";printf "\n"
|
|
}
|
|
exec -s "allcpus" -f mpinval
|
|
|
|
if ($report >= 3) {
|
|
printf "Check invalid state from cpu slices"
|
|
showset "allcpus";printf "\n"
|
|
}
|
|
exec -s "allcpus" -f mpchk_cstate -a "0 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Initialize uncached memory from cpu slice"
|
|
showset "master";printf "\n"
|
|
}
|
|
exec -s "master" -f mpmem_wr -a "0xa2000000 0x10000 0xdeadbeef"
|
|
|
|
if ($report >= 3) {
|
|
printf "Verify uncached memory contents from cpu slices"
|
|
showset "allslaves";printf "\n"
|
|
}
|
|
exec -s "allslaves" -f mpmem_rd -a "0xa2000000 0x10000 0xdeadbeef"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check invalid state from cpu slices"
|
|
showset "allcpus";printf "\n"
|
|
}
|
|
exec -s "allcpus" -f mpchk_cstate -a "0 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Verify cached memory contents from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpmem_rd -a "0x82000000 0x10000 0xdeadbeef"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check clean exclusive state from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpchk_cstate -a "1 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Verify cache memory contents from cpu slices"
|
|
showset "allslaves";printf "\n"
|
|
}
|
|
exec -s "allslaves" -f mpmem_rd -a "0x82000000 0x10000 0xdeadbeef"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check shared state from cpu slices"
|
|
showset "allslaves";printf "\n"
|
|
}
|
|
exec -s "allslaves" -f mpchk_cstate -a "3 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Invalidate caches from all cpu slices"
|
|
showset "allcpus";printf "\n"
|
|
}
|
|
exec -s "allcpus" -f mpinval
|
|
|
|
if ($report >= 3) {
|
|
printf "Check invalid state from cpu slices"
|
|
showset "allcpus";printf "\n"
|
|
}
|
|
exec -s "allcpus" -f mpchk_cstate -a "0 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Write cached memory from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpmem_wr -a "0x82000000 0x10000 0x1"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check dirty exclusive state from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpchk_cstate -a "2 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Verify uncache memory contents from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpmem_rd -a "0xa2000000 0x10000 0xdeadbeef"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check dirty exclusive state from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpchk_cstate -a "2 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check invalid state from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpchk_cstate -a "0 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Write uncache memory from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpmem_wr -a "0xa2000000 0x10000 0x2"
|
|
|
|
if ($report >= 3) {
|
|
printf "Verify cache memory contents from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpmem_rd -a "0x82000000 0x10000 0x1"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check shared state from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpchk_cstate -a "3 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check shared state from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpchk_cstate -a "3 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Write cached memory from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpmem_wr -a "0x82000000 0x10000 0xdeadbeef"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check invalid state from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpchk_cstate -a "0 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check dirty exclusive state from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpchk_cstate -a "2 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Write cached memory from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpmem_wr -a "0x82000000 0x10000 0x1"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check dirty exclusive state from cpu slice"
|
|
showset "firstslave";printf "\n"
|
|
}
|
|
exec -s "firstslave" -f mpchk_cstate -a "2 0x2000000"
|
|
|
|
if ($report >= 3) {
|
|
printf "Check invalid state from cpu slice"
|
|
showset "secondslave";printf "\n"
|
|
}
|
|
exec -s "secondslave" -f mpchk_cstate -a "0 0x2000000"
|
|
|
|
}
|
|
|
|
printf ", mpend"
|
|
mpend {
|
|
add_cpu -s "master" -v "0"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
add_cpu -s "firstslave" -v "1"
|
|
add_cpu -s "secondslave" -v "2"
|
|
}
|
|
|
|
printf ", mpstress\n"
|
|
mpstress {
|
|
$temp=set_exists -s "allcpus"
|
|
if ($temp == 0) {
|
|
create_set -s "allcpus"
|
|
}
|
|
$temp=set_exists -s "allslaves"
|
|
if ($temp == 0) {
|
|
create_set -s "allslaves"
|
|
}
|
|
$temp=set_exists -s "master"
|
|
if ($temp == 0) {
|
|
create_set -s "master" -e
|
|
}
|
|
else {
|
|
set_differ -s "master,master,master"
|
|
}
|
|
add_cpu -s "master" -v "0"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
$temp=set_exists -s "firstslave"
|
|
if ($temp == 0) {
|
|
create_set -s "firstslave" -e
|
|
}
|
|
else {
|
|
set_differ -s "firstslave,firstslave,firstslave"
|
|
}
|
|
add_cpu -s "firstslave" -v "1"
|
|
$temp=cpu_in -s "allcpus" -v "2"
|
|
if ($temp == 1) {
|
|
$temp=set_exists -s "secondslave"
|
|
if ($temp == 0) {
|
|
create_set -s "secondslave" -e
|
|
}
|
|
else {
|
|
set_differ -s "secondslave,secondslave,secondslave"
|
|
}
|
|
add_cpu -s "secondslave" -v "2"
|
|
}
|
|
else {
|
|
echo "mpstress test aborted - 3rd cpu slices required but not detected"
|
|
return(1)
|
|
}
|
|
mptest
|
|
add_cpu -s "allslaves" -v "0"
|
|
del_cpu -s "master" -v "0"
|
|
add_cpu -s "master" -v "1"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
del_cpu -s "firstslave" -v "1"
|
|
add_cpu -s "firstslave" -v "2"
|
|
del_cpu -s "secondslave" -v "2"
|
|
$temp=cpu_in -s "allcpus" -v "3"
|
|
if ($temp == 1) {
|
|
add_cpu -s "secondslave" -v "3"
|
|
}
|
|
else {
|
|
echo "mpstress test ended - 3 cpu slices have been tested"
|
|
set_union -s "master,allslaves,allslaves"
|
|
del_cpu -s "master" -v "1"
|
|
del_cpu -s "firstslave" -v "2"
|
|
mpend
|
|
return(0)
|
|
}
|
|
mptest
|
|
add_cpu -s "allslaves" -v "1"
|
|
del_cpu -s "master" -v "1"
|
|
add_cpu -s "master" -v "2"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
del_cpu -s "firstslave" -v "2"
|
|
add_cpu -s "firstslave" -v "3"
|
|
del_cpu -s "secondslave" -v "3"
|
|
$temp=cpu_in -s "allcpus" -v "4"
|
|
if ($temp == 1) {
|
|
add_cpu -s "secondslave" -v "4"
|
|
}
|
|
else {
|
|
echo "mpstress test ended - 4 cpu slices have been tested"
|
|
set_union -s "master,allslaves,allslaves"
|
|
del_cpu -s "master" -v "2"
|
|
del_cpu -s "firstslave" -v "3"
|
|
mpend
|
|
return(0)
|
|
}
|
|
mptest
|
|
add_cpu -s "allslaves" -v "2"
|
|
del_cpu -s "master" -v "2"
|
|
add_cpu -s "master" -v "3"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
del_cpu -s "firstslave" -v "3"
|
|
add_cpu -s "firstslave" -v "4"
|
|
del_cpu -s "secondslave" -v "4"
|
|
$temp=cpu_in -s "allcpus" -v "5"
|
|
if ($temp == 1) {
|
|
add_cpu -s "secondslave" -v "5"
|
|
}
|
|
else {
|
|
echo "mpstress test ended - 5 cpu slices have been tested"
|
|
set_union -s "master,allslaves,allslaves"
|
|
del_cpu -s "master" -v "3"
|
|
del_cpu -s "firstslave" -v "4"
|
|
mpend
|
|
return(0)
|
|
}
|
|
mptest
|
|
add_cpu -s "allslaves" -v "3"
|
|
del_cpu -s "master" -v "3"
|
|
add_cpu -s "master" -v "4"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
del_cpu -s "firstslave" -v "4"
|
|
add_cpu -s "firstslave" -v "5"
|
|
del_cpu -s "secondslave" -v "5"
|
|
$temp=cpu_in -s "allcpus" -v "6"
|
|
if ($temp == 1) {
|
|
add_cpu -s "secondslave" -v "6"
|
|
}
|
|
else {
|
|
echo "mpstress test ended - 6 cpu slices have been tested"
|
|
set_union -s "master,allslaves,allslaves"
|
|
del_cpu -s "master" -v "4"
|
|
del_cpu -s "firstslave" -v "5"
|
|
mpend
|
|
return(0)
|
|
}
|
|
mptest
|
|
add_cpu -s "allslaves" -v "4"
|
|
del_cpu -s "master" -v "4"
|
|
add_cpu -s "master" -v "5"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
del_cpu -s "firstslave" -v "5"
|
|
add_cpu -s "firstslave" -v "6"
|
|
del_cpu -s "secondslave" -v "6"
|
|
$temp=cpu_in -s "allcpus" -v "7"
|
|
if ($temp == 1) {
|
|
add_cpu -s "secondslave" -v "7"
|
|
}
|
|
else {
|
|
echo "mpstress test ended - 7 cpu slices have been tested"
|
|
set_union -s "master,allslaves,allslaves"
|
|
del_cpu -s "master" -v "5"
|
|
del_cpu -s "firstslave" -v "6"
|
|
mpend
|
|
return(0)
|
|
}
|
|
mptest
|
|
add_cpu -s "allslaves" -v "5"
|
|
del_cpu -s "master" -v "5"
|
|
add_cpu -s "master" -v "6"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
del_cpu -s "firstslave" -v "6"
|
|
add_cpu -s "firstslave" -v "7"
|
|
del_cpu -s "secondslave" -v "7"
|
|
add_cpu -s "secondslave" -v "0"
|
|
mptest
|
|
add_cpu -s "allslaves" -v "6"
|
|
del_cpu -s "master" -v "6"
|
|
add_cpu -s "master" -v "7"
|
|
set_differ -s "allslaves,master,allslaves"
|
|
del_cpu -s "firstslave" -v "7"
|
|
add_cpu -s "firstslave" -v "0"
|
|
del_cpu -s "secondslave" -v "0"
|
|
add_cpu -s "secondslave" -v "1"
|
|
mptest
|
|
echo "mpstress test ended - 8 cpu slices have been tested"
|
|
mpend
|
|
}
|
|
|
|
printf " - define memall"
|
|
memall {
|
|
#Read memory configuration registers
|
|
mem1
|
|
#Memory sockets connection test
|
|
mem2
|
|
#Memory address walking test
|
|
mem3
|
|
#Memory data write/read tes
|
|
mem4
|
|
#Memory address in address test
|
|
mem5
|
|
#Memory data walking test
|
|
mem6
|
|
#Memory data MarchX pattern test
|
|
mem7
|
|
#Memory data MarchY pattern test
|
|
mem8
|
|
#Memory with ECC test
|
|
mem9
|
|
#Memory with cache write-through test
|
|
mem10
|
|
#Double word march y pattern test
|
|
mem15
|
|
#Knaizuk Hartmann Test
|
|
mem16
|
|
#Double word Knaizuk Hartmann Test
|
|
mem18
|
|
printf "Finished memall\n"
|
|
}
|
|
|
|
printf ", memfast\n"
|
|
memfast {
|
|
#Memory address walking test
|
|
mem3
|
|
#Memory address in address test
|
|
mem5
|
|
#Memory data MarchY pattern test
|
|
mem8
|
|
#Memory with ECC test
|
|
mem9
|
|
#Memory with cache write-through test
|
|
mem10
|
|
#Knaizuk Hartmann Test
|
|
mem16
|
|
printf "Finished memfast\n"
|
|
}
|
|
|
|
printf " - define scsi_all"
|
|
scsi_all {
|
|
# Register Read/Write test for s1 chip
|
|
s1_regtest
|
|
# wd95a scsi controller register test
|
|
regs_95a
|
|
# scsi send diag test
|
|
#scsi_self
|
|
# scsi interrupt from wd95a test
|
|
scsi_intr
|
|
# scsi dma transfer test
|
|
#scsi_dmaxfer
|
|
# scsi dma interrupt test
|
|
#scsi_dmaintr
|
|
printf "Finished scsi_all\n"
|
|
}
|
|
|
|
printf " - define dang_all"
|
|
dang_all {
|
|
# dang register read/write test
|
|
dang_regtest
|
|
#gio bus interface test, read/write on gr2 shared ram
|
|
dang_gr2ram
|
|
# tests wg fifo rams, host wg addressing modes, fifo and priv viol interrupts
|
|
dang_wg
|
|
# tests host/graphics and g/h dma transfers, dma complete interrupt
|
|
dang_mdma
|
|
printf "Finished dang_all\n"
|
|
}
|
|
|
|
printf ", io_all"
|
|
io_all {
|
|
# Checks IO4 config against NVRAM
|
|
check_iocfg
|
|
# Read/Write test of IO4 registers
|
|
io4_regtest
|
|
# IO4 PIO bus error test
|
|
io4_pioerr
|
|
# Read/Write test of IO4 map ram
|
|
mapram_test
|
|
# all scsi tests
|
|
scsi_all
|
|
# Register Read/Write test for epc chip
|
|
epc_regtest
|
|
# NVRAM Read/Write test
|
|
epc_nvram
|
|
# RTC Read/Write test
|
|
epc_rtcreg
|
|
# RTC clock increment test
|
|
epc_rtcinc
|
|
# RTC interrupt generation test
|
|
epc_rtcint
|
|
# Duart loopback test
|
|
duart_loopback
|
|
# Parallel Port Write Test
|
|
epc_plptest
|
|
#Fchip register test
|
|
fregs
|
|
#VMECC register test
|
|
vmeregs
|
|
#VMECC self interrupt test
|
|
vmeintr
|
|
#VMECC loopback test
|
|
#vmelpbk
|
|
#VMECC buserror test
|
|
vmeberr
|
|
#VMECC dma test using CDSIO - skips if no CDSIO board installed
|
|
vmedma
|
|
#CDSIO data test - skips if no CDSIO board installed or new rev proms
|
|
cddata
|
|
#CDSIO interrupt test - skips if no CDSIO board installed or new rev proms
|
|
cdintr
|
|
#all dang tests
|
|
dang_all
|
|
printf "Finished io_all\n"
|
|
}
|
|
|
|
printf ", ev_quick"
|
|
ev_quick {
|
|
echo "Starting quick EVEREST standalone diag suite"
|
|
echo ""
|
|
ipall
|
|
tlball
|
|
quickfpu
|
|
quickcache
|
|
memfast
|
|
io_all
|
|
echo ""
|
|
echo "End of quick EVEREST standalone diag suite"
|
|
}
|
|
|
|
printf ", and everest_all\n\n"
|
|
everest_all {
|
|
echo "Starting EVEREST standalone diag suite"
|
|
echo ""
|
|
ipall
|
|
tlball
|
|
fpuall
|
|
cacheall
|
|
memall
|
|
io_all
|
|
echo ""
|
|
echo "End of EVEREST standalone diag suite"
|
|
}
|
|
|
|
printf " -- END OF SCRIPT DEFINITIONS --\n\n"
|
|
|
|
runall
|
|
scripts
|
|
|
|
$TRUE = 1
|
|
$FALSE = 0
|
|
|