1
0
Files
irix-657m-src/stand/arcs/ide/IP30/shell
2022-09-29 17:59:04 +03:00

1960 lines
34 KiB
Plaintext

#ident "stand/arcs/ide/IP30/shell: $Revision: 1.1"
#
# This is an ide startup file.
#
# this script is executed when shell.ide is run.
# It is intended to be used by engineering.
report=4 # set verbose, but not debug
$stoponerr=1
hinv -v
echo ""
echo "Ide included scripts:"
echo " ALL: short_tests (XXX-XXX minutes)"
echo " long_tests (XXX_XXX minutes)"
echo " FRU's: ip30 frontplane memory"
echo " pm (processor module) "
echo " gfx tmezz"
echo " subsystems (ASIC's and others):"
echo " heart bridge rad scsi pci"
echo " cache tlbtest xbow"
# find out of we are MP
$mp = ismp
$slave = slavecpu
#
# memory, cache and tlb tests
#
#wrappers for low memory tests
ldram {
$tmp = ldram_bkend -- -p --;
return ($tmp);
}
lkh {
$tmp = lkh_bkend -- -p --;
return ($tmp);
}
ct {
if ($mp) {
$tmp = set_exists -s ct_cpu_set;
if (! $tmp) {
create_set -s ct_cpu_set;
}
$tmp = ct_bkend -- -s ct_cpu_set -p -- 14 ;
}
else {
echo "ct error: cachethrasher requires 2 or more processors";
$tmp = 1;
}
return $tmp;
}
memory {
# low dram tests (where ide resides)
$tmp = ldram;
if ($tmp) {
wait;
}
$tmp = lkh;
if ($tmp) {
wait;
}
# XXX high memory tests: add more tests?
# Kh test
$tmp = memtest 1;
if ($tmp) {
wait;
}
# ecc tests
$tmp =ecctest;
if ($tmp) {
wait;
}
}
cache {
$tmp = dcache1
if ($tmp)
wait;
if ($mp) {
$tmp = exec -v $slave -f dcache1
if ($tmp)
wait;
}
$tmp = icache1
if ($tmp)
wait;
if ($mp) {
$tmp = exec -v $slave -f icache1
if ($tmp)
wait;
}
$tmp = icache2
if ($tmp)
wait;
if ($mp) {
$tmp = exec -v $slave -f icache2
if ($tmp)
wait;
}
$tmp = scache1
if ($tmp)
wait;
if ($mp) {
$tmp = exec -v $slave -f scache1
if ($tmp)
wait;
}
$tmp = scache2
if ($tmp)
wait;
if ($mp) {
$tmp = exec -v $slave -f scache2
if ($tmp)
wait;
}
}
tlbtest {
$tmp = tlb;
if ($tmp)
wait;
if ($mp) {
$tmp = exec -v $slave -f tlb
if ($tmp)
wait;
}
$tmp = utlb;
if ($tmp)
wait;
if ($mp) {
$tmp = exec -v $slave -f utlb
if ($tmp)
wait;
}
}
#
# ASIC's
#
heart {
$tmp = hr_regs;
if ($tmp) {
wait;
}
$tmp = hr_misc;
if ($tmp) {
wait;
}
$tmp = hr_intr;
if ($tmp) {
wait;
}
$tmp = hr_piowcr;
if ($tmp) {
wait;
}
$tmp = hr_piuacc;
if ($tmp) {
wait;
}
}
xbow {
$tmp = x_regs;
if ($tmp) {
wait;
}
$tmp = x_acc;
if ($tmp) {
wait;
}
}
b_pci {
$tmp = pci_sio -p 1 -t abc -b 50;
if ($tmp) {
wait;
}
$tmp = pci_sio -p 1 -t abc -b 2000;
if ($tmp) {
wait;
}
$tmp = pci_sio -p 1 -t abc -b 384000;
if ($tmp) {
wait;
}
$tmp = pci_par;
if ($tmp) {
wait;
}
}
bridge {
$tmp = br_regs;
if ($tmp) {
wait;
}
$tmp = br_intr;
if ($tmp) {
wait;
}
$tmp = br_err;
if ($tmp) {
wait;
}
$tmp = br_ram;
if ($tmp) {
wait;
}
}
# I/O chip for serial, parallel
# anymore needed ? XXX
ioc3 {
$tmp = ioc3_regs;
if ($tmp) {
wait;
}
$tmp = ioc3_sram;
if ($tmp) {
wait;
}
$tmp = rtc_regs;
if ($tmp) {
wait;
}
$tmp = duart_regs;
if ($tmp) {
wait;
}
}
# audio chip XXX
rad {
$tmp = rad_regs;
if ($tmp) {
wait;
}
$tmp = rad_dma;
if ($tmp) {
wait;
}
$tmp = rad_ram;
if ($tmp) {
wait;
}
}
#
# boards
#
# CPU diagnostic (covers each processor)
pm {
fpu
if ($mp)
exec -v $slave -f "fpu"
cache
tlbtest
}
# NOTE: the main logic board test *excludes* memory
# so that we can use it and add shorter or longer
# memory tests
ip30 {
heart;
bridge;
scsi_test;
b_pci;
ioc3;
rad;
}
frontplane {
xbow;
}
# implement XXX
# use pcifailed flag
pci {
echo "pci diag not implemented yet"
}
#
# G F X
#
# GM10 SI
# GM10/TRAM SI + texture
# GM20 SSI
# GM20/TRAM MXI
#
# from IP30/ip30imp 10-31-96
# TO DO: XXX
# the lines starting with #XXXX were commented out from IP30/ip30imp
# as they called mfg-only code; the other commented out lines
# were already commented out in ip30imp. I kept them in.
# comment out all the verbosity
# add emfail calls with appropriate fru numbers
# (see above under D_FRU_GFX_xxx)
# remove the "# needed" used only to keep track of what really has
# to be part of field
#
delay {
ide_delay -s 2;
}
# NOTE: in IP28, a non-script mg_reset was used
# needed
mg_reset_1 {
mg_setboard ; ide_delay -s 2;
# mg_setnumre4s -c 1 ; ide_delay -s 2;
mg_hqfifoinit ; ide_delay -s 2;
# mg_set_0ge ; ide_delay -s 2;
echo "mg_dacreset in progress "
mg_dacreset ; ide_delay -s 2;
echo "mg_vc3init in progress "
mg_vc3init -t 0x107 ; ide_delay -s 2;
if ($repprdram_sync == 1) {
echo "mg_sync_repp in progress "
mg_sync_repp ; ide_delay -s 2;
echo "mg_sync_pprdram in progress "
mg_sync_pprdram ; ide_delay -s 2;
mg_rdram_ccsearch ; ide_delay -s 2 ;
$repprdram_sync = 0;
}
echo "mg_xmapinit in progress "
mg_xmapinit ; ide_delay -s 2 ;
mg_initppregs ; ide_delay -s 2 ;
#XXXX echo "mg_progcmap in progress "
#XXXX mg_progcmap 0x0 ; ide_delay -s 2 ;
mg_gammaprog 0x0 ; ide_delay -s 2 ;
mg_xmapinit ; ide_delay -s 2 ;
mg_tram_ctrl; ide_delay -s 2 ;
}
# needed
mg_rtfifo_loop {
mg_setboard ; delay; mg_hqfifoinit
report=2
echo " ============ Data Format tests done through PIO ============="
$status = mg_rtpio_loop -i 4 -o 0
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 4 -o 1
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 3 -o 2
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 2 -o 0
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 2 -o 1
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 1 -o 0
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 1 -o 1
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 0 -o 0
if ($status == 1) { $failed = 1; return (-1); }
$status = mg_rtpio_loop -i 0 -o 1
if ($status == 1) { $failed = 1; return (-1); }
mg_setboard ; delay; mg_hqfifoinit
$status = mg_rtdma_loop -p 2 ;
if ($status == 1) { $failed = 1; return (-1); }
return (0);
}
# needed
enabdisp {
mg_pokexmap -r XMAP_DIB_CTRL0 -d 0x100
}
# needed
allsetup {
$failed =0;
mg_gfxreset;
delay;
delay;
mg_setboard; delay; mg_hqfifoinit
delay;
mg_set_0ge;
delay;
$status = mg_reset;
if ($status) {
$failed = 1;
return (-1);
}
delay;
delay;
resetcons
if (!mg_gfxconsole) {
mg_sync_repp
mg_sync_pprdram
mg_xmapinit
mg_rdram_ccsearch
mg_initppregs
enabdisp
mg0_clear_color
}
$solid = mg_issolid;
}
# needed
mg_tram_rev_nobuff {
mg_dma_tram -r -e 1 -p
$foo = mg_setnumre4s -q
if ($foo == 2) {
mg_dma_tram -r -e 1 -p -n 1
}
}
# needed
hq3test {
echo "------ Executing Hq3 Test Suite ------"
$failed = 0;
buffon;
mg_setboard; delay; mg_hqfifoinit;
delay;
mg_hqfifoinit
mg_set_0ge
$testnum = "_1"
# $status = mg_hq3_initcheck;
# if ($status) {
# $failed = 1;
# echo "mg_hq3_initcheck";
# return(-1);
# }
$testnum = "_02"
$status = mg_hq3;
if ($status) {
$failed = 1;
return(-1);
}
mg_setboard; delay; mg_hqfifoinit;
delay;
$testnum = "_03"
$status = mg_hq3_cp;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_04"
$status = mg_hq3_converter;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_05"
$status = mg_hq3_cfifo;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_hq4reg;
if ($status) { $failed = 1; return(-1); }
echo "******** Hq3 Test Suite Execution Completed ********"
resetcons; buffoff
}
# GE11 test scripts
gioslot_2GE {
$tmp = mg_setboard 0; delay; mg_hqfifoinit;
if ($tmp) {
echo "Mgras Gfx init to GIO Slot 0 "
mg_setboard 0 2; delay; mg_hqfifoinit ;
}
else {
$tmp = mg_setboard 1; delay; mg_hqfifoinit ;
if ($tmp) {
echo "Found boards in slot 1"
mg_setboard 1 2; delay; mg_hqfifoinit ;
}
else {
echo "No boards found in slot 0 or slot 1"
}
}
}
# needed
dactest {
echo "------ Executing DAC Test Suite ------"
$testnum = "_06"
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_07"
$status = mg_dacmodereg;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_08"
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_09"
$status = mg_dacaddrreg;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_10"
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_11"
$status = mg_clrpaletteaddrUniq;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_12"
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_13"
$status = mg_clrpalettewalkbit;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_14"
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_15"
$status = mg_clrpalettepatrn;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_16"
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
echo "******** DAC Test Suite Execution Completed ********"
}
# needed
vc3test {
echo "------ Executing VC3 Test Suite ------"
$testnum = "_17"
$status = mg_vc3reset;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_18"
$status = mg_vc3internalreg;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_19"
$status = mg_vc3addrsbus;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_20"
$status = mg_vc3databus;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_21"
$status = mg_vc3addrsuniq;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_22"
$status = mg_vc3patrn;
if ($status) {
$failed = 1;
return(-1);
}
echo "******** VC3 Test Suite Execution Completed ********"
}
# needed
cmaptest {
echo "------ Executing CMAP Test Suite ------"
$testnum = "_23"
$status = mg_vc3init -t 0x107;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt;
$testnum = "_24"
$status = mg_cmaprev;
#XXXX mg_dispcmapcnt;
if (!$status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt;
$testnum = "_25"
$status = mg_cmapdatabus 0;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt;
$testnum = "_26"
$status = mg_cmapaddrsbus 0;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt; report=4;
$testnum = "_27"
$status = mg_cmappatrn 0;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt;
$testnum = "_28"
$status = mg_cmapaddrsuniq 0;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt;
$testnum = "_29"
$status = mg_cmapdatabus 1;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt;
$testnum = "_30"
$status = mg_cmapaddrsbus 1;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt; report=4;
$testnum = "_31"
$status = mg_cmappatrn 1;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
#XXXX mg_clrcmpcnt;
$testnum = "_32"
$status = mg_cmapaddrsuniq 1;
#XXXX mg_dispcmapcnt;
if ($status) {
$failed = 1;
return (-1);
}
# $testnum = "_33"
# $status = mg_cmapuniqtest;
# if ($status) {
# $failed = 1;
# return (-1);
# }
echo "******** CMAP Test Suite Execution Completed ********"
}
# needed
mg_dcbdma_tests {
$failed =0;
mg_setboard; delay; mg_hqfifoinit;
buffon;
mg_dcbdma 1;
delay ; delay ; delay;
echo " DAC Tests in DCBDMA mode "
$status = dactest;
if ($failed) {
mg_dcbdma 0;
return(-1);
}
# delay ; delay ; delay;
echo " VC3 Tests in DCBDMA mode "
$status = vc3test;
if ($failed) {
mg_dcbdma 0;
return(-1);
}
delay ; delay ; delay;
echo " CMAP Tests in DCBDMA mode "
$status = cmaptest;
if ($failed) {
mg_dcbdma 0;
return(-1);
}
mg_dcbdma 0;
# delay ; delay ; delay;
$status = mg_reset;
if ($status) {
$failed = 1;
return(-1);
}
delay;
}
# needed
bkend {
$failed =0;
mg_setboard; delay; mg_hqfifoinit;
buffon;
echo "------ Executing Back End Test Suite ------"
$status = dactest;
if ($failed) {
return(-1);
}
$status = vc3test;
if ($failed) {
$vc3fail = 1;
return(-1);
}
$status = cmaptest;
if ($failed) {
return(-1);
}
$status = mg_reset;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_dcbdma_tests;
if ($failed == 1) {
return (-1);
}
$status = mg_reset;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_34"
$status = mg_xmapdcbreg 0;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_35"
$status = mg_xmapdcbreg 1;
if ($status) {
$failed = 1;
return(-1);
}
$tmp = mg_setnumre4s -q
if ($tmp == 2) {
$testnum = "_36"
$status = mg_xmapdcbreg 2;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_37"
$status = mg_xmapdcbreg 3;
if ($status) {
$failed = 1;
return(-1);
}
}
$testnum = "_38"
$status = mg_reset;
if ($status) {
$failed = 1;
return(-1);
}
delay;
#XXX # $testnum = "_39"
#XXX # mg_stoptiming;
#XXX # $status = mg_vc3init -t 0x107
#XXX # if ($status) {
#XXX # $failed = 1;
#XXX # return(-1);
#XXX # }
$testnum = "_40"
mg_starttiming;
$status = mg_crcwalk;
if ($status) {
$failed = 1;
return(-1);
}
#XXX # $testnum = "_41"
#XXX # $status = mg_reset;
#XXX # if ($status) {
#XXX # $failed = 1;
#XXX # return(-1);
#XXX # }
#XXX #
#XXX # $testnum = "_42"
#XXX # mg_stoptiming;
#XXX # $status = mg_vc3init -t 0x130
#XXX # if ($status) {
#XXX # $failed = 1;
#XXX # return(-1);
#XXX # }
#XXX # $testnum = "_43"
#XXX # mg_starttiming;
#XXX # $status = mg_crcwalk;
#XXX # if ($status) {
#XXX # $failed = 1;
#XXX # return(-1);
#XXX # }
#XXX # $testnum = "_44"
#XXX # $status = mg_reset;
#XXX # if ($status) {
#XXX # $failed = 1;
#XXX # return(-1);
#XXX # }
#XXX #
echo "Testing 1280_1024_76 timing"
$testnum = "_45"
$status = mg_vc3init -t 0x139
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_46"
$status = mg_crcwalk;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_47"
$status = mg_reset;
if ($status) {
$failed = 1;
return(-1);
}
#XXX if ($solid) {
#XXX $testnum = "_48"
#XXX echo "Testing 1600x1200 solid timing"
#XXX mg_stoptiming;
#XXX $status = mg_vc3init -t 0x156
#XXX if ($status) {
#XXX $failed = 1;
#XXX return(-1);
#XXX }
#XXX $testnum = "_49"
#XXX mg_starttiming;
#XXX $status = mg_crcwalk;
#XXX if ($status) {
#XXX $failed = 1;
#XXX return(-1);
#XXX }
#XXX } else {
$testnum = "_50"
echo "Testing 1600x1200 timing"
mg_stoptiming;
$status = mg_vc3init -t 0x159
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_51"
mg_starttiming;
$status = mg_crcwalk;
if ($status) {
$failed = 1;
return(-1);
}
#XXX }
#XXX
#XXX $testnum = "_52"
#XXX
#XXX delay;
#XXX echo "Executing mg_vc3cursorposition test..."
#XXX $status = mg_reset;
#XXX if ($status) {
#XXX $failed = 1;
#XXX return (-1);
#XXX }
#XXX delay;
#XXX mg_xmapinit;
#XXX delay;
#XXX repeat 3 {
#XXX delay
#XXX }
#XXX
#XXX $testnum = "_53"
#XXX $status = mg_vc3cursorposition;
#XXX if ($status) {
#XXX $failed = 1;
#XXX resetcons; buffoff;
#XXX return(-1);
#XXX }
#XXX
#XXX
#XXX resetcons; buffoff;
echo "******** Back End Test Suite Execution Completed ********"
}
re4test {
$failed =0;
report = 3;
echo "------ Executing RE4 Test Suite ------"
$testnum = "_54"
$status = mg_re_status_reg;
if ($status) {
$failed = 1; return(-1);
}
$testnum = "_55"
$status = mg_re_rdwr_regs;
if ($status) {
$failed = 1; return(-1);
}
$testnum = "_56"
$status = mg_re_internal_ram -t0;
if ($status) {
$failed = 1; return(-1);
}
$testnum = "_57"
$status = mg_re_internal_ram -t1;
if ($status) {
$failed = 1; return(-1);
}
$testnum = "_58"
$status = mg_re_internal_ram -t2;
if ($status) {
$failed = 1; return(-1);
}
$testnum = "_59"
$status = mg_re_internal_ram -t3;
if ($status) {
$failed = 1; return(-1);
}
$testnum = "_60"
$status = mg_re_internal_ram -t4;
if ($status) {
$failed = 1; return(-1);
}
$testnum = "_61"
$status = mg_re_internal_ram -t5;
if ($status) {
$failed = 1; return(-1);
}
echo "******** RE4 Test Suite Execution Completed ********"
report = 4;
}
dmatest {
$failed =0;
echo "------ Executing DMA Test Suite ------"
$testnum = "_62"
$status = mg_host_hqdma;
if ($status) {
$failed = 1;
return(-1);
}
$testnum = "_63"
$status = mg_host_hq_cp_dma;
if ($status) {
$failed = 1;
return(-1);
}
# $status = mg_ge_dma;
# if ($status) {
# $failed = 1;
# return(-1);
# }
# DMA PIO Test
$testnum = "_64"
$status = mg_dma_pp -r1 -e1 -w1 -d1 -t -m 0 0 -b 0x240 -y 16 -z 192
if ($status) {
$failed = 1;
return(-1);
}
echo "******** DMA Test Suite Execution Completed ********"
}
# allows colors to be correct for drawings
drawsetup {
delay;
# mg_gfxreset;
# mg_set_0ge;
# mg_reset;
delay;
delay;
mg_xmapinit;
}
drawclose {
delay;
# resetcons;
delay;
delay;
}
tex_draw_test {
$failed =0;
echo "------ Executing tex_draw_test Suite ------"
drawsetup;
$testnum = "_65"
$status = mg_notex_line
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_66"
$status = mg_notex_poly
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_67"
$status = mg_tex_poly
delay;
if ($status) {
$failed = 1;
return(-1);
}
# delay;
# $testnum = "_68"
# $status = mg_tex_1d
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_69"
# $status = mg_tex_3d
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_70"
# $status = mg_tex_scistri
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_71"
# $status = mg_tex_linegl
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_72"
# $status = mg_tex_load
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_73"
# $status = mg_tex_persp
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_74"
# $status = mg_tex_mag
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_75"
# $status = mg_tex_detail
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# delay;
# $testnum = "_76"
# $status = mg_tex_bordertall
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
delay;
$testnum = "_77"
$status = mg_tex_lut4d
delay;
if ($status) {
$failed = 1;
return(-1);
}
#
# delay;
# $testnum = "_78"
# $status = mg_tex_borderwide
# delay;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
delay;
$testnum = "_79"
$status = mg_tex_mddma
delay
if ($status) {
$failed = 1;
return(-1);
}
drawclose;
echo "******** tex_draw_test Suite Execution Completed ********"
}
# needed
repp_test {
$failed =0;
echo "------ Executing RE-PP Test Suite ------"
allsetup;
if ($failed) {
return(-1);
}
# XX resetcons; buffoff; buffon
# XX delay; delay; delay;
#XXXX mg_vc3clearcursor;
delay; delay; delay;
drawsetup;
delay;
$testnum = "_80"
echo " mg_z_tri in progress ..."
$status = mg_z_tri
delay;
if ($status) {
$failed = 1;
return(-1);
}
echo " mg_lines in progress ..."
delay; delay; delay;
$testnum = "_81"
$status = mg_lines
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_82"
echo " mg_points in progress ..."
$status = mg_points
delay;
if ($status) {
$failed = 1;
return(-1);
}
echo " mg_stip_tri in progress ..."
delay;
$testnum = "_83"
$status = mg_stip_tri
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_84"
echo " mg_xblock in progress ..."
$status = mg_xblock
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_85"
echo " mg_chars in progress ..."
$status = mg_chars
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_86"
echo " mg_logicop in progress ..."
$status = mg_logicop
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_87"
echo " mg_dither in progress ..."
$status = mg_dither
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$testnum = "_88"
echo " mg_color_tri in progress ..."
$status = mg_color_tri
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
setenv TEST_NAME_IN_OVEN _98
# not in yet
#XXXX $status = alphablend_test;
delay;
if ($failed) {
return(-1);
}
delay;
$testnum = "_97"
# not in yet
#XXXX $status = scene_test;
delay;
if ($failed) {
return(-1);
}
# led 1
delay
drawclose;
echo "******** RE/PP Test Suite Execution Completed ********"
}
rdram_mem_quick {
$failed =0;
report = 3;
echo "------ Executing FRAME BUFFER QUICK Test Suite ------"
drawsetup
if (mg_gfxconsole)
$testnum = "_89"
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x240 -p0 -x 0 -y 4 -z 12 -m 0 0
if ($status) {
$failed = 1;
return (-1);
}
}
rdram_mem {
$failed =0;
report = 4;
echo "------ Executing FRAME BUFFER Test Suite ------"
# Z Buffer Test
drawsetup
if (mg_gfxconsole)
$testnum = "_89"
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0 -p3 -x 0x0
if ($status) {
$failed = 1;
return (-1);
}
# Color Buffer Test
if (mg_gfxconsole)
$testnum = "_90"
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x240 -p3 -x 0x0
if ($status) {
$failed = 1;
return (-1);
}
# Overlay Buffer Test
if (mg_gfxconsole)
$testnum = "_91"
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x1c0 -p3 -x 0x0
if ($status) {
$failed = 1;
return (-1);
}
$tmp = mg_setnumre4s -q
if ($tmp == 2) {
# Display Buffer-CD Test
if (mg_gfxconsole)
$testnum = "_92"
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x320 -p3 -x 0x0
if ($status) {
$failed = 1;
return (-1);
}
# ACC36 or AUX 0 Buffer
if (mg_gfxconsole)
$testnum = "_93"
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0e0 -p3 -x 0x0
if ($status) {
$failed = 1;
return (-1);
}
}
echo "******** FRAME BUFFER Test Suite Execution Completed ********"
report = 4;
}
# needed
tram_mem {
$failed =0;
mg0_clear_color; ide_delay -s 2 ;
delay;
echo "------ Executing TRAM Memory Test Suite ------"
delay
mg_tram_rev_nobuff
delay;
$testnum = "_94"
$status = mg_dma_tram -m 3 -e 0
if ($status) {
$failed = 1;
return (-1);
}
delay
$foo = mg_setnumre4s -q
delay
if ($foo == 2) {
$testnum = "_95"
$status = mg_dma_tram -m 3 -e 0 -n 1
if ($status) {
$failed = 1;
return (-1);
}
}
}
# needed
re4flextest {
buffon;
$failed =0;
if ($solid) {
echo "------ HQ <---> RSS Bus Test ------"
} else {
echo "------ High Density Flex (HQ<->RE) Connectivity Test ------"
}
$testnum = "_96"
$status = mg_hq3 4
if ($status) {
$failed = 1;
return (-1);
}
resetcons; buffoff;
}
mg_test_all {
$failed = 0;
mg_setboard; mg_hqfifoinit;
report=4;
repeat 3 {
delay;
}
buffon
$status = mg_reset;
if ($status) {
$failed = 1;
return (-1);
}
$solid = mg_issolid;
# if (mg_setboard) {
# delay; mg_hqfifoinit;
# $status = #XXXXmg_reset;
# $solid = mg_issolid;
# delay;
# delay;
# resetcons;
# if ($status) {
# $failed = 1;
# return (-1);
# }
# } else {
# allsetup;
# if ($failed) {
# echo "Initializing graphics failed"
# return (-1)
# }
# }
delay;
delay;
$status = hq3test;
if ($failed) {
echo "hq3test FAILED"
echo "The GD Board may be BAD"
return($status);
}
mg_rtfifo_loop;
if ($failed == 1)
return (-1);
report=4;
$status = re4flextest;
if ($failed) {
echo "Flex Test FAILED"
if ($solid == 0) {
echo "The RA/RB Board may be BAD"
}
resetcons; buffoff;
return($status);
}
#XXX resetcons;
#XXX mg_setboard; delay; mg_hqfifoinit;
$status = mg_reset;
if ($status) {
$failed = 1;
return (-1);
}
delay;
delay;
resetcons;
# report=2
# $status = mg_dcbdma_tests;
# if ($failed == 1) {
# return (-1);
# }
# report=4
$status = bkend;
if ($failed) {
echo "bkend FAILED"
if ($vc3fail) {
echo "The GD Board may be BAD"
$vc3fail = 0;
} else {
echo "The RA Board may be BAD"
}
resetcons; buffoff;
return($status);
}
#XXX report=2
#XXX $status = mg_dcbdma_tests;
#XXX if ($failed == 1) {
#XXX return (-1);
#XXX }
#XXX report=4
# resetcons;
$status = mg_reset;
if ($status) {
$failed = 1;
return (-1);
}
report=2
$ge_no = mg_queryGE;
if ($ge_no == 2) # 2 GE system
{
echo "Testing 2GE system...."
$testnum = "_41"
#XXXX $status = tge_test;
}
if ($failed) {
echo "tge_test FAILED"
echo "The GD Board may be BAD"
resetcons; buffoff;
return($status);
}
if ($ge_no == 1) # 1 ge system
{
echo "Testing 1GE system...."
$testnum = "_44"
#XXXX $status = ge0_test;
}
if ($failed) {
echo "ge_test FAILED"
echo "The GD Board may be BAD"
resetcons; buffoff;
return($status);
}
repeat 4 delay;
allsetup;
if ($failed) {
resetcons; buffoff;
return(-1);
}
buffon
report=4
$status = re4test;
if ($failed) {
echo "re4test FAILED"
echo "The RA/RB Board may be BAD"
resetcons; buffoff;
return(-1);
}
$status = dmatest;
if ($failed) {
echo "dmatest FAILED"
resetcons; buffoff;
return($status);
}
$status = rdram_mem_quick;
if ($failed) {
echo "RDRAM QUICK FAILED"
resetcons; buffoff;
return($status);
}
if ($quick == 0) {
$status = rdram_mem;
if ($failed) {
echo "RDRAM FAILED"
echo "The RA/RB Board may be BAD"
resetcons; buffoff;
return($status);
}
}
delay; delay; delay; delay; delay;
delay; delay; delay; delay; delay;
$status = repp_test;
if ($failed) {
echo "repp_test FAILED"
resetcons; buffoff;
return($status);
}
delay; delay; delay; delay; delay;
delay; delay; delay; delay; delay;
# allsetup;
# if ($failed) {
# resetcons; buffoff;
# return(-1);
# }
# delay;
# delay;
# $status = mg_reset;
# if ($status) {
# $failed = 1;
# return (-1);
# }
# delay;
resetcons; buffoff;
buffon;
# perform TRAM memory and TEXTURE draw tests for Max/High Only
# if (($solid == 1) && ($tram == 0)) {
#XXXX $status = mg_setnumtrams ;
#XXXX if ($status == 0) {
#XXXX echo "No Texture Subsystem for MG10"
#XXXX echo "Tests for Texture Subsystem are skipped..."
#XXXX } else {
#XXXX if ($quick == 0) {
#XXXX echo "Testing TRAM memory"
#XXXX repeat 3 {
#XXXX delay;
#XXXX }
#XXXX $status = tram_mem;
#XXXX if ($failed) {
#XXXX echo "tram test FAILED"
#XXXX echo "The RA/RB Board may be BAD"
#XXXX resetcons; buffoff;
#XXXX return(-1);
#XXXX }
#XXXX }
#XXXX $status = mg_rtdma2tram ;
#XXXX if ($failed == 1) {
#XXXX return (-1);
#XXXX }
#XXXX $testnum = "_96"
#XXXX $status = tex_draw_test
#XXXX if ($failed) {
#XXXX echo "tex_draw_test FAILED"
#XXXX echo "The RA/RB Board may be BAD"
#XXXX resetcons; buffoff;
#XXXX return(-1);
#XXXX }
#XXXX }
echo ""
echo " All tests have passed"
delay;
delay;
# $status = mg_reset;
# if ($status) {
# $failed = 1;
# return (-1);
# }
resetcons; buffoff;
report=4
}
# short/fast gfx for short_tests: put together from scratch
short_gfx {
$failed = 0;
# report=4;
repeat 3 {
delay;
}
buffon
mg_reset;
$solid = mg_issolid;
delay;
delay;
# really testing HQ4
$status = hq3test;
if ($failed) {
echo "hq3test (testing HQ4) FAILED"
echo "The GD Board may be BAD"
return($status);
}
$status = re4flextest;
if ($failed) {
echo "Flex Test FAILED"
if ($solid == 0) {
echo "The RA/RB Board may be BAD"
}
resetcons; buffoff;
return($status);
}
$status = mg_reset;
if ($status) {
$failed = 1;
return (-1);
}
delay;
delay;
resetcons;
$status = bkend;
if ($failed) {
echo "bkend FAILED"
if ($vc3fail) {
echo "The GD Board may be BAD"
$vc3fail = 0;
} else {
echo "The RA Board may be BAD"
}
resetcons; buffoff;
return($status);
}
$status = mg_reset;
if ($status) {
$failed = 1;
return (-1);
}
$status = re4test;
if ($failed) {
echo "re4test FAILED"
echo "The RA/RB Board may be BAD"
resetcons; buffoff;
return(-1);
}
$status = dmatest;
if ($failed) {
echo "dmatest FAILED"
resetcons; buffoff;
return($status);
}
delay; delay; delay; delay; delay;
$status = repp_test;
if ($failed) {
echo "repp_test FAILED"
echo "The RA/RB Board may be BAD"
resetcons; buffoff;
return($status);
}
delay; delay; delay; delay; delay;
delay; delay; delay; delay; delay;
resetcons; buffoff;
buffon;
echo ""
echo " All tests have PASSED"
delay;
delay;
# report = 0;
}
# end of short_gfx
mg_test_all_tram {
$tram = 1;
#XXXX mg_setnumtrams -c 4;
mg_test_all
$tram = 0;
}
# separate from mg_test_all: may need to be included XXX
mg_test_tram {
allsetup;
tram_mem;
if ($failed) {
echo "tram test FAILED"
resetcons; buffoff;
return(-1);
}
$status = tex_draw_test;
if ($failed) {
echo "tex_draw test FAILED"
resetcons; buffoff;
return(-1);
}
}
# from IP28/field
gm_gfx {
$impact_failed = 2;
$failed = 0;
echo "Testing graphics"
mg_test_all;
if ($failed) {
echo "ERROR: Failure detected on board"
$impact_failed = 1;
}
else
{
$impact_failed = 0;
}
$solid = mg_issolid;
if ($solid == 0) {
echo "Testing TMEZZ card"
mg_test_tram;
if ($failed) echo "ERROR: Failure detected on TMEZZ board"
else echo "TMEZZ board test PASSED"
}
}
# gfx includes gm10/20 and tmezz if applicable
gfx {
$mardi_gras = mg_probe;
if ($mardi_gras) {
gm_gfx;
}
}
tmezz {
$solid = mg_issolid;
if ($solid == 0) {
mg_test_tram;
}
}
#
# end of gfx
#
init_vars {
# gfx
$impact_failed = 2;
$quick = 1; # can be switched to 0 for more extensive and longer tests
$repprdram_sync = 1;
$tram = 0;
$vc3fail = 0;
$testnum = "";
$solid = 0;
$failed = 0;
}
#
# all tests, dont use name "all" because it confuses help command
#
short_tests {
init_vars;
# processor module
pm;
# main logic board:
ip30;
# some memory
# Kh test
$tmp = memtest 1;
if ($tmp) {
wait;
}
# frontplane (also called backplane sometimes)
# the frontplane is not included yet as the sable model for xbow is incomplete
frontplane;
}
long_tests {
# short tests, including gfx
short_tests;
# lots of memory
memory;
}