1
0
Files
2022-09-29 17:59:04 +03:00

3244 lines
59 KiB
Plaintext

# This is an ide startup file.
report=4 # set verbose, but not debug
$stoponerr=1
hinv -v
menu {
/* Display the version of the diagnostic */
echo "///////////////////////////////////////////////////////////////////////////"
version;
echo ""
echo " FUNCTIONAL TEST OPTIONS "
echo " -----------------------"
echo "Command Description"
echo ""
echo "ip22va IP22 diagnostics with automatic voltage change"
echo ""
echo "gfxva XL/XZ/Extreme/Impact diagnostics with automatic voltage change"
echo ""
echo "a2testva A2 audio diagnostics with automatic voltage change"
echo ""
echo "kva Galileo video board diagnostics with automatic voltage change"
echo "kvaloop Loop Galileo board diagnostics 3 times with voltage change"
echo ""
#echo "v_menu MGV1 Video Menu"
#echo "ab1_menu AB1 Menu"
#echo "ab1_reg_menu AB1 Register Menu"
#echo "ab1_mem_menu AB1 Memory Access Menu"
#echo "cc1_menu CC1 Menu"
#echo "cc1_mem_menu CC1 Memory Access Menu"
#echo "cc1_reg_menu CC1 Register Menu"
#echo "vg_menu Video-to-Graphics Command Menu"
echo "cosmo_va COSMO compression board diags with auto voltage change"
echo "cosmo_ex COSMO compression board diags with auto voltage change, boot UNIX"
echo ""
echo " TECHNICIAN BENCH OPTIONS"
echo " ------------------------"
echo "ip22 IP22 diagnostics with no voltage change (include EISA tests)"
echo "gfx XL/XZ/Extreme/Impact diagnostics with no voltage change"
echo "a2test A2 audio diagnostics with no voltage change"
echo "kv Galileo video board diagnostics with no voltage change"
echo "kvloop Loop Galileo board diagnostics 3 times with no voltage change"
echo "cosmo COSMO compression board diagnostics with no voltage change"
echo "cosmo_qk COSMO compression board diagnostics then boot UNIX"
echo "m2 Memory Tests (kh, kh parity, threebit, marchx, marchy,"
echo " butterfly, ldram, kh doubleword, khlow)"
echo ""
echo "///////////////////////////////////////////////////////////////////////////"
}
gioslot {
$tmp = mg_setboard 0;
if ($tmp) {
echo "Found boards in slot 0"
}
else {
$tmp = mg_setboard 1;
if ($tmp) {
echo "Found boards in slot 1"
}
else {
echo "No boards found in slot 0 or slot 1"
}
}
}
enabdisp {
mg_pokexmap -r XMAP_DIB_CTRL0 -d 0x100
}
m2 {
$tmp=khlow
if($tmp) {
echo "Failure detected in Knaizuk Hartmann Low Test\n"
$failed=1;
wait;
}
$tmp=memtest2 3
if($tmp) {
echo "Failure detected in Knaizuk Hartmann Test\n"
$failed=1;
wait;
}
$tmp=memtest2 5
if($tmp) {
echo "Failure detected in Knaizuk Hartmann Parity Test\n"
$failed=1;
wait;
}
$tmp=memtest2 10
if($tmp) {
echo "Failure detected in Threebit Memory Test\n"
$failed=1;
wait;
}
$tmp=memtest2 12
if($tmp) {
echo "Failure detected in Knaizuk Hartmann Doubleword Test\n"
$failed=1;
wait;
}
$tmp=memtest2 11
if($tmp) {
echo "Failure detected in Butterfly Test\n"
$failed=1;
wait;
}
$tmp=memtest2 8
if($tmp) {
echo "Failure detected in March X Test\n"
$failed=1;
wait;
}
$tmp=memtest2 9
if($tmp) {
echo "Failure detected in March Y Test\n"
$failed=1;
wait;
}
$tmp=ldram
if($tmp) {
echo "Failure detected in ldram test\n"
$failed=1;
wait;
}
}
memory {
echo "----------------------------------------------------\n"
if(dcache1){
echo "Failure detected in dcache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=icache1
if($tmp) {
echo "Failure detected in icache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=icache2
if($tmp) {
echo "Failure detected in icache2 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=scache1
if($tmp) {
echo "Failure detected in scache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=memtest
if($tmp) {
echo "Failure detected in memtest test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=m2
if($tmp) {
echo "Failure detected in additional memory tests\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=ldram 0xa8800000
if($tmp) {
echo "Failure detected in ldram test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=ldram -p
if($tmp) {
echo "Failure detected in ldram with parity test\n"
$failed=1;
wait;
}
$tmp=dram
if($tmp) {
echo "Failure detected in dram test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=dram -p
if($tmp) {
echo "Failure detected in dram with parity test\n"
$failed=1;
wait;
}
}
cpusc {
echo "Checking for R4600sc\n"
if (is_r4600sc) {
echo "R4600sc found!!!";
if(sc_on){
$failed=1;
wait;
}
if(sc_hit){
$failed=1;
wait;
}
if(sc_miss){
$failed=1;
wait;
}
if(sc_hit_miss){
$failed=1;
wait;
}
if(sc_tag){
$failed=1
wait;
}
if(sc_off){
$failed=1
}
}
else
{
echo "R4600sc not found!!!";
echo "----------------------------------------------------\n"
if(tlb){
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if(utlb){
$failed=1;
wait;
}
fi
}
echo "----------------------------------------------------\n"
if(dcache1){
echo "Failure detected in dcache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=icache1
if($tmp) {
echo "Failure detected in icache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=icache2
if($tmp) {
echo "Failure detected in icache2 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=scache1
if($tmp) {
echo "Failure detected in scache1 test\n"
$failed=1;
wait;
}
$tmp=scache2
if($tmp) {
echo "Failure detected in scache2 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if(fpu) {
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if ($failed) {
echo "CPU CARD TEST FAILED";
wait;
$cpufailed=1;
}
else
{
echo "CPU CARD TEST PASSED";
}
fi
}
a2test {
$loopcount = 0;
report =4;
$a2tst0pass = 0;
$a2tst0fail = 0;
$a2tst1pass = 0;
$a2tst1fail = 0;
$a2tst2pass = 0;
$a2tst2fail = 0;
$a2tst3pass = 0;
$a2tst3fail = 0;
$a2tst4pass = 0;
$a2tst4fail = 0;
$a2tst5pass = 0;
$a2tst5fail = 0;
$a2tst6pass = 0;
$a2tst6fail = 0;
$a2tst7pass = 0;
$a2tst7fail = 0;
while ( $loopcount < 3 ) {
echo ""
echo "----------------------------------------------------"
echo "Starting audio test loop" $loopcount
echo "----------------------------------------------------\n"
$a2tst = audio -t0
if($a2tst) {
$a2tst0fail = $a2tst0fail + 1;
$failed = 1;
}
else {
$a2tst0pass = $a2tst0pass + 1;
}
a2tst = audio -t1
if($a2tst) {
$a2tst1fail = $a2tst1fail + 1;
$failed = 1;
}
else {
$a2tst1pass = $a2tst1pass + 1;
}
a2tst = audio -t2
if($a2tst) {
$a2tst2fail = $a2tst2fail + 1;
$failed = 1;
}
else {
$a2tst2pass = $a2tst2pass + 1;
}
a2tst = audio -t3
if($a2tst)
$a2tst3fail = $a2tst3fail + 1;
else
$a2tst3pass = $a2tst3pass + 1;
a2tst = audio -t4
if($a2tst)
$a2tst4fail = $a2tst4fail + 1;
else
$a2tst4pass = $a2tst4pass + 1;
a2tst = audio -t5
if($a2tst) {
$a2tst5fail = $a2tst5fail + 1;
$failed = 1;
}
else {
$a2tst5pass = $a2tst5pass + 1;
}
a2tst = audio -t6
if($a2tst) {
$a2tst6fail = $a2tst6fail + 1;
$failed = 1;
}
else {
$a2tst6pass = $a2tst6pass + 1;
}
a2tst = audio -t7
if($a2tst)
$a2tst7fail = $a2tst7fail + 1;
else
$a2tst7pass = $a2tst7pass + 1;
$loopcount = $loopcount + 1;
}
echo "audio test 0: Pass =" $a2tst0pass" fail =" $a2tst0fail
echo "audio test 1: Pass =" $a2tst1pass" fail =" $a2tst1fail
echo "audio test 2: Pass =" $a2tst2pass" fail =" $a2tst2fail
echo "audio test 3: Pass =" $a2tst3pass" fail =" $a2tst3fail
echo "audio test 4: Pass =" $a2tst4pass" fail =" $a2tst4fail
echo "audio test 5: Pass =" $a2tst5pass" fail =" $a2tst5fail
echo "audio test 6: Pass =" $a2tst6pass" fail =" $a2tst6fail
echo "audio test 7: Pass =" $a2tst7pass" fail =" $a2tst7fail
wait;
if( $a2tst7pass == 0 ) {
# Rerun audio -t7 ten more times to get it to pass
echo "Audio test 7 failed three loops."
echo "Press ENTER to run audio test 7 for 10 more loops"
wait;
$report=1
$loopcount = 0;
while ( $loopcount < 10 ) {
a2tst = audio -t7
if($a2tst) {
$a2tst7fail = $a2tst7fail + 1;
}
else {
$a2tst7pass = $a2tst7pass + 1;
$loopcount = 10
}
$loopcount = $loopcount + 1;
}
if( $a2tst7pass == 0 ) {
echo "Audio test 7 FAILED."
echo "Reject this system with an Audio failure"
$failed = 1;
}
}
}
unix {
echo "<<<< About to to boot UNIX......>>>>"
boot dksc(0,1,0)unix;
}
pm1 {
echo "----------------------------------------------------\n"
if(tlb){
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if(utlb){
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if(dcache1){
echo "Failure detected in dcache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=icache1
if($tmp) {
echo "Failure detected in icache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=icache2
if($tmp) {
echo "Failure detected in icache2 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp=scache1
if($tmp) {
echo "Failure detected in scache1 test\n"
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if(hpc3) {
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if(fpu) {
$failed=1;
wait;
}
}
pm1va {
$cpu_failed=0
$failed=0
echo "Voltage changed to 5.25 V\n"
chg_volt 2;
ide_delay -s 15;
pm1
if ($failed) {
echo "FAILURES DETECTED IN IP22 at 5.25V\n"
$cpu_failed=1;
}
$failed=0
echo "Voltage changed to 5.0 V\n"
chg_volt 1;
ide_delay -s 15;
pm1
if ($failed) {
echo "FAILURES DETECTED IN IP22 at 5.0V\n"
$cpu_failed=1;
}
if ($cpu_failed) {
echo "FAILURES DETECTED IN IP22"
}
else
{
$cpu_failed=0;
echo "ALL TESTS IN IP22 PASSED\n";
boot dksc(0,1,0)unix;
}
}
ip {
$tmp = 0;
echo "----------------------------------------------------\n"
if(int2) {
$failed=1;
wait;
}
if ($skip_timer !=1) {
echo "----------------------------------------------------\n"
if(clock) {
$failed=1;
wait;
}
}
echo "----------------------------------------------------\n"
$tmp = memtest 0xa8800000:0xa9000000
if ($tmp) {
$failed=1;
wait;
}
# if ($dram_needed) {
# echo "----------------------------------------------------\n"
# echo "PLEASE WAIT ... "
#
# $tmp = dram -p 0xa8800000#2M;
# if($tmp) {
# $failed=1;
# }
# }
echo "----------------------------------------------------\n"
# it takes about 3 minutes
echo "PLEASE WAIT ... THE FOLLOWING TEST TAKES ABOUT 1 1/2 MINUTES"
$tmp = ldram -p;
if($tmp){
$failed=1;
wait;
}
# illegal i3 e1 e2
# Run new SIMM tests
echo "----------------------------------------------------\n"
$tmp = m2;
if($tmp) {
echo "Failure detected in extra kh memory tests\n"
$failed=1;
wait;
}
# Duart External tests turned off and internal tests turned on rwaits 9/23/92
# originally -i0, -i1 on -i2 off, -e0 off -e2, -e3 on
echo "----------------------------------------------------\n"
$tmp=duart -i0;
if($tmp) {
$failed=1;
wait;
}
$tmp= duart -i1;
if($tmp) {
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$tmp = led 0;
if($tmp){
$failed=1;
wait;
}
$tmp = led 1;
if($tmp){
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
if (parity) {
$failed=1;
wait;
}
echo "----------------------------------------------------\n"
$status1 = scsi;
if($status1) {
$failed=1;
wait;
}
if ($skip_timer != 1) {
echo "----------------------------------------------------\n"
if(timer){
$failed=1;
}
}
echo "----------------------------------------------------\n"
if ($skip_eisa != 1) {
if(eisa){
$failed=1;
wait;
}
}
else {
echo "Skipping EIU/EISA interface test"
}
}
ip22 {
$skip_eisa = 0;
$failed = 0;
$pm1_failed = 0;
pm1;
if($failed) {
$pm1_failed = 1;
wait;
}
cpusc;
ip;
echo "----------------------------------------------------\n"
if($failed) {
echo "FAILURES DETECTED IN IP22\n"
$cpu_failed=1;
}
else
{
$cpu_failed=0;
echo "ALL TESTS IN IP22 PASSED\n";
}
fi
}
ip22va {
$skip_timer = 0;
$skip_eisa = 0;
$failed =0;
echo "\n*****************************\n"
echo "Voltage changed to 4.75V\n"
echo "\n*****************************\n"
chg_volt 0;
ide_delay -s 15;
pm1;
cpusc;
ip;
echo "\n*****************************\n"
echo "Voltage changed to 5.25 V\n"
echo "\n*****************************\n"
chg_volt 2;
ide_delay -s 15;
pm1;
cpusc;
ip;
chg_volt 1;
ide_delay -s 15;
echo "----------------------------------------------------\n"
if($failed) {
echo "FAILURES DETECTED IN IP22\n"
$cpu_failed=1;
}
else
{
$cpu_failed=0;
echo "ALL TESTS IN IP22 PASSED\n";
boot dksc(0,1,0)unix;
}
fi
}
ip22s {
$skip_eisa = 1;
ip22
}
a2testva {
chg_volt 0;
ide_delay -s 15;
a2test;
chg_volt 1;
ide_delay -s 15;
chg_volt 2;
ide_delay -s 15;
a2test;
chg_volt 1;
ide_delay -s 15;
}
# Start of GR2 diagnostics
# Initialize variables used by GR2.
$stride_failed=0 ;
$zb_failed=0 ;
$gr2_failed=0;
$chkbt457_failed=0;
$bp_failed=0;
$shramre3_failed=0;
$cpushram_failed=0;
$cpure3_failed=0;
$ctxsw_failed=0;
$vdma_failed=0;
$quad_failed=0;
$fourquad_failed=0;
$mon=0;
$test_xmap_failed = 0;
$test_xmap_clut_failed = 0;
gr2_vhwinit {
gr2_videoclk 0x47
if ($mon ==1 ) gr2_initclock 0x132;
else gr2_initclock 0x107;
fi
gr2_wrconfig 0x0
gr2_delay 3
gr2_wrconfig 0x1
gr2_vinitdac
}
gr2_initre {
$a = gr2_getGR2ver;
if ($a < 4) gr2_wrfifo 0 0;
else if ($a == 4) gr2_wrfifo 0 1;
else gr2_wrfifo 0 2;
}
gr2_initsys {
gr2_reset
gr2_vhwinit
$mon = gr2_getMonType;
if ($mon == 1) gr2_initvc1 4;
else gr2_initvc1 20;
fi
gr2_xcol
gr2_inithq
gr2_load_ucode ge
gr2_load_ucode hq
gr2_unstall
gr2_initre
}
clear {
gr2_wrfifo 35 0
gr2_wrfifo 6 0
}
gr2_quad {
gr2_wrfifo 33 0
}
gr2_fourquad {
gr2_wrfifo 34 0
}
test_xmap {
gr2_initsys;
$a=gr2_txmap;
return $a;
}
test_xmap_clut {
gr2_initsys;
$a=gr2_txmap_clut;
return $a;
}
gr2_vdma {
gr2_initsys;
$b=gr2_cachefdma 32 1;
$b=$b+gr2_cachefdma 256 1;
$b=$b+gr2_cachefdma 512 1;
$b=$b+gr2_cachefdma 128 1;
$b=$b+gr2_yzoomdma ;
$b=$b+gr2_yzoomdma 32 32;
$b=$b+gr2_yzoomdma 128 128;
$b=$b+gr2_yzoomdma 256 256;
$b=$b+gr2_stridedma;
$b=$b+gr2_stridedma 32 32;
$b=$b+gr2_stridedma 256 1;
$b=$b+gr2_stridedma 512 0;
return $b;
}
gr2 {
# Too verbose with report=4
report=3;
$stride_failed=0 ;
$zb_failed=0 ;
$gr2_failed=0;
$chkbt457_failed=0;
$bp_failed=0;
$shramre3_failed=0;
$cpushram_failed=0;
$cpure3_failed=0;
$ctxsw_failed=0;
$vdma_failed=0;
$quad_failed=0;
$fourquad_failed=0;
$test_xmap_failed = 0;
$test_xmap_clut_failed = 0;
gr2_reset;
buffon
# HQ2 internal register 19 must read 0xdeadbeef
report = 2;
gr2_rdhqint 19;
report = 1;
# Test VC1 SRAM
gr2_vhwinit
report =3
if (gr2_vc1_sram) {
echo "VC1 SRAM test failed";
resetcons;
buffoff;
wait;
$err = 1;
}
# Test ram 0 at Ge7 at 0
$tmp = gr2_tram 0;
if ($tmp) {
echo "GE7 at 0 RAM0 test failed"
resetcons;
buffoff;
$err = 1;
wait;
}
# Test ram 0 at Ge7 at 1
$tmp = gr2_tram 1;
if ($tmp) {
echo "GE7 at 1 RAM0 test failed"
resetcons;
buffoff;
$err = 1;
wait;
}
# Test ram 0 at Ge7 at 2
$tmp = gr2_tram 2;
if ($tmp) {
echo "GE7 at 2 RAM0 test failed"
resetcons;
buffoff;
$err = 1;
wait;
}
# Test ram 0 at Ge7 at 3
$tmp = gr2_tram 3 ;
if ($tmp) {
echo "GE7 at 3 RAM0 test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test ram 0 at Ge7 at 4
$tmp = gr2_tram 4 ;
if ($tmp) {
echo "GE7 at 4 RAM0 test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test ram 0 at Ge7 at 5
$tmp = gr2_tram 5 ;
if ($tmp) {
echo "GE7 at 5 RAM0 test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test ram 0 at Ge7 at 6
$tmp = gr2_tram 6 ;
if ($tmp) {
echo "GE7 at 6 RAM0 test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test ram 0 at Ge7 at 7
$tmp = gr2_tram 7 ;
if ($tmp) {
echo "GE7 at 7 RAM0 test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test shram
$tmp = gr2_tram 8 ;
if ($tmp) {
echo "Share ram test failed ";
resetcons;
buffoff;
wait;
$err = 1;
}
# Test Hq2uram
$tmp = gr2_tram 9 ;
if ($tmp) {
echo "HQ2 uram test failed ";
resetcons;
buffoff;
wait;
$err = 1;
}
# Test ge7uram
$tmp = gr2_tram 10;
if ($tmp) {
echo "GE7 uram test failed ";
resetcons;
buffoff;
wait;
$err = 1;
}
gr2_initsys;
clear;
# Test HQ2
if(gr2_hq2test) {
echo "HQ2 test failed ";
resetcons;
buffoff;
wait;
$err = 1;
}
# Test shareram using Ucode
if (gr2_shram) {
echo "Shram test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test internal GE7 ram
if (gr2_ram12) {
echo "GE7 internal test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test seedrom
if (gr2_seedrom) {
echo "GE7 seedrom test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test the squaroot rom
if (gr2_sqrom) {
echo "GE7 sqrom test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
gr2_initsys ;
# Test Ge 7 bus
if (gr2_gebus) {
echo "GE7 bus test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
# Test ge floating point unit
if (gr2_gefloat) {
echo "GE7 floating point test failed"
resetcons;
buffoff;
wait;
$err = 1;
}
gr2_initsys;
clear;
if ( $err ) {
echo "HQ & GE Tests failed\n";
resetcons;
buffoff;
wait;
$err=0
$gr2_failed=1
}
else {
resetcons;
buffoff;
echo "HQ & GE Tests passed\n"
}
buffon
# Test bt457
if (gr2_chkbt457) {
resetcons;
buffoff;
wait;
$chkbt457_failed = 1;
$err=1;
}
# Test bitplane VM2
gr2_initsys
if (gr2_bp) {
$bp_failed = 1;
$err=1;
resetcons;
buffoff;
wait;
}
# Test Shared ram and Re
gr2_initsys
$tmp = gr2_shramre3
if ($tmp) {
resetcons;
buffoff;
wait;
$shramre3_failed =1;
$err=1;
}
# Test DMA between host and GE7 shared ram
gr2_initsys
clear
$tmp = gr2_cpushram
if ($tmp) {
resetcons;
buffoff;
wait;
$cpushram_failed =1;
$err=1;
}
# Test DMA between host and and RE3
resetcons
buffon
gr2_initsys
$tmp = gr2_cpure3
if ($tmp) {
resetcons;
buffoff;
wait;
$cpure3_failed =1;
$err=1;
}
# Test GE7 context switching
if(gr2_ctxsw) {
resetcons;
buffoff;
wait;
$ctxsw_failed =1;
$err=1;
}
clear;
# Test quad drawing
$tmp = gr2_quad
if ($tmp) {
resetcons;
buffoff;
wait;
$quad_failed =1;
$err=1;
}
$tmp = gr2_fourquad
if ($tmp){
resetcons;
buffoff;
wait;
$fourquad_failed = 1;
$err=1;
}
clear;
if ($chkbt457_failed) echo "Bt457 test failed";
if ($bp_failed) echo "bitplane test failed";
if ($shramre3_failed) echo "shramre3 test failed"
if ($cpushram_failed) echo "CPU shram test failed";
if ($cpure3_failed) echo "cpure3 test failed ";
if ($ctxsw_failed) echo "context switching test failed ";
if ($vdma_failed) echo "vdma controller test failed ";
if ($quad_failed) echo "quad test failed";
if ($fourquad_failed) echo "fourquad test failed";
if ($err)
{
if (!$report) {
emfail 2;
wait;
exit;
}
echo "****** PRESS RETURN TO CONTINUE OR ^C TO EXIT ************"
$err=0
$gr2_failed=1
resetcons;
buffoff;
wait;
}
else {
resetcons;
buffoff;
echo "BT457, Bit-Plane, DMA and QUADs Tests Passed.\n"
}
buffon
# Test stridedma between shram and re3
gr2_initsys
$tmp = gr2_stride
if ($tmp) {
$stride_failed =1 ;
$err=1;
resetcons;
buffoff;
wait;
}
# Test Zbuffer
gr2_initsys
$tmp=gr2_zb
if($tmp) {
$zb_failed =1;
$err=1;
resetcons;
buffoff;
wait;
}
resetcons
buffoff
echo "************************* RESULTS ********************************"
if ($stride_failed) {
echo "stride test failed";
$gr2_failed = 1;
wait;
}
if ($zb_failed) {
echo "Zbuffer test failed";
$gr2_failed = 1;
wait;
}
if (!$gr2_failed) echo "Stride DMA, and Z-Buffer Test Passed.\n"
# Test Xmap
buffon
echo "testing XMAP"
if (test_xmap) {
$test_xmap_failed =1;
$err=1;
resetcons;
buffoff;
wait;
}
#Test Xmap CLUT
if (test_xmap_clut) {
$test_xmap_clut_failed =1;
$err=1;
resetcons;
buffoff;
wait;
}
resetcons
buffoff
echo "************************* RESULTS ********************************"
if ($test_xmap_failed) {
echo "test_xmap test failed";
$gr2_failed = 1;
}
if ($test_xmap_clut_failed) {
echo "test_xmap_clut test failed";
$gr2_failed = 1;
}
if (!$err) echo "XMAPs Test Passed.\n"
if ($gr2_failed) {
echo "ERROR: Failure detected on graphics board."
wait;
}
else echo "graphics board tests passed"
fi
echo " *****************END OF THE TEST *****************"
# Restore verbosity
report=4
}
gr2_all {
$tmp = gr2_setboard 0;
if ($tmp) {
echo "Testing gr3/gu1 in slot 0."
gr2;
if ($gr2_failed) {
echo "ERROR: Failure detected on gr3/gu1 in slot 0."
}
}
$tmp = gr2_setboard 1;
if ($tmp) {
echo "Testing gr3/gu1 in slot 1."
gr2;
if ($gr2_failed) {
echo "ERROR: Failure detected on gr3/gu1 in slot 1."
}
}
}
# END OF GR2 SUPPORT
#Start of Galileo diagnostics
CheckSlot {
$tmp = mg_setboard 0;
if ($tmp) {
echo "IMPACT Board Found in slot 0."
return 0
}
$tmp = mg_setboard 1;
if ($tmp) {
echo "IMPACT Board Found in slot 1."
return 0
}
$tmp = gr2_setboard 0;
if ($tmp) {
echo "GR2 Board Found in slot 0."
return 0
}
$tmp = gr2_setboard 1;
if ($tmp) {
echo "GR2 Board Found in slot 1."
return 0
}
$tmp = ng1_setboard 0;
if ($tmp) {
echo "NG1 Board Found in slot 0."
return 0
}
$tmp = ng1_setboard 1;
if ($tmp) {
echo "NG1 Board Found in slot 1."
return 0
}
}
cc1 {
CheckSlot;
echo "CC1 Frame Buffer Test";
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
echo "Galileo Board Initialized Properly"
echo "CC1 Memory Test";
$status = cc1_mem;
if ($status) {
wait;
}
echo "CC1 (DMA MODE)Memory Test";
$status = cc1_dma;
if ($status) {
wait;
}
}
ab1_red {
CheckSlot;
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
echo "Galileo Board Initialized Properly"
echo "AB1 Red Channel Memory Test ";
$status = ab1_rmem;
if ($status)
wait;
}
ab1_blue {
CheckSlot;
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
echo "Galileo Board Initialized Properly"
echo "AB1 Blue Channel Memory Test ";
$status = ab1_bmem;
if ($status)
wait;
}
ab1_green {
CheckSlot;
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
echo "Galileo Board Initialized Properly"
echo "AB1 Green Channel Memory Test ";
$status = ab1_gmem;
if ($status)
wait;
}
ab1 {
CheckSlot;
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
echo "Galileo Board Initialized Properly"
echo "AB1 Memory Test (Red, Green, Blue)";
$status = ab1_mem;
if ($status) {
wait;
}
}
gfxset {
mg_vc3init 0x5;
mg_progcmap 0x0;
}
kv {
CheckSlot;
$status =ev1_init ;
if ($status) {
echo " Galileo Board Not Found"
return ($status);
}
echo "Galileo Board Initialized Properly"
echo "Test CC1 Display Control Bus";
$status = cc1_dcb;
if ($status)
wait;
echo "Test AB1 Display Control Bus";
$status = ab1_dcb;
if ($status)
wait;
echo "CC1 Memory Test";
cc1;
echo "AB1 Memory Test (Red, Green, Blue)";
ab1;
}
kva {
CheckSlot;
echo "Voltage changed to 5.25 V\n"
chg_volt 1;
ide_delay -s 15;
chg_volt 2;
ide_delay -s 15;
kv;
echo "Voltage changed to 5.0 V\n"
chg_volt 1;
ide_delay -s 15;
kv;
unix;
}
#END of Galileo diagnostics
#START of the COSMO diagnostics
cosmo {
echo " "
echo "Test COSMO for Existence"
$cosmo_status = cosmo_probe;
if ($cosmo_status) {
echo "COSMO Board NOT FOUND!"
return ($cosmo_status);
}
echo " "
echo "Testing DMAN Registers"
if ((cosmo_DMAN_reg) && $stoponerr)
wait;
echo " "
echo "Testing CAROB Registers"
if ((cosmo_CAROB_reg) && $stoponerr)
wait;
echo " "
echo "Testing I2C/8485 Registers"
if ((cosmo_I2C_reg) && $stoponerr)
wait;
echo " "
echo "Testing IDT FIFO and Control Registers"
if ((cosmo_idt) && $stoponerr)
wait;
echo " "
echo "Testing CL560 Registers"
if ((cosmo_CL560_reg) && $stoponerr)
wait;
echo " "
echo "Testing CL560 CODEC Fifo"
if ((cosmo_CL560_codec) && $stoponerr)
wait;
echo " "
echo "Testing Field Buffer FIFO Using PIO"
if ((cosmo_fb_pio) && $stoponerr)
wait;
echo " "
echo "Testing Field Buffer FIFO Using DMA"
if ((cosmo_fb_dma) && $stoponerr)
wait;
echo " "
echo "Testing Compression of an Image"
if ((cosmo_comp) && $stoponerr)
wait;
echo " "
echo "Testing Decompression of an Image"
if ((cosmo_decomp) && $stoponerr)
wait;
}
cosmo_va {
echo "Voltage changed to 5.25 V\n"
chg_volt 2;
ide_delay -s 15;
cosmo
echo "Voltage changed to 5.0 V\n"
chg_volt 1;
ide_delay -s 15;
cosmo
}
cosmo_ex {
echo "Voltage changed to 5.25 V\n"
chg_volt 2;
ide_delay -s 15;
cosmo
echo "Voltage changed to 5.0 V\n"
chg_volt 1;
ide_delay -s 15;
cosmo
unix
}
cosmo_qk {
echo "COSMO diags plus UNIX boot\n"
cosmo
unix
}
#END of COSMO diagnostics
# Initialize variables used by ng1.
$err=0
$ng1failed=0
$ng1_rex3_failed=0
$ng1_bt445_failed=0
$ng1_cmap_failed=0
$ng1_xmap9_failed=0
$ng1_vc2_failed=0
$ng1_vram_failed=0
$ng1_cid_failed=0
$ng1_dma_failed=0
$ng1_dma_result=-1
# Start of NG1 diagnostics
ng1_script {
$ng1failed=0;
$err=0;
buffon
# Test Rex3
if(ng1_rexregs) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_rex3_failed = 1;
$err=1;
}
# Test bt445
if(ng1_bt445test) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_bt445_failed =1;
$err=1;
}
# Test cmap
if(ng1_cmaptest) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_cmap_failed = 1;
$err=1;
}
# Test Xmap9
if(ng1_xmap9test) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_xmap9_failed = 1;
$err=1;
}
# Test VC2
if(ng1_vc2test) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_vc2_failed = 1;
$err=1;
}
# Test VRAM
if(ng1_vram) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_vram_failed = 1;
$err=1;
}
# Test CID
if(ng1_cid) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_cid_failed = 1;
$err=1;
}
# Change Bus width to 64 & run DMA tests
ng1_setvisual 0;
ng1_color 0;
ng1_block 0 0 105 105;
ng1_buswidth 64;
ng1_rwpacked 1;
ng1_rwdouble 1;
$ng1_dma_result=ng1_dmatest 0 0 100 100;
if($ng1_dma_result == -1) {
if (!$report) {
emfail 2;
wait;
exit;
}
$ng1_dma_failed = 1;
$err=1;
}
ng1_buswidth 32;
resetcons
buffoff
echo "************************* RESULTS ******************************"
if($ng1_rex3_failed) {
echo "Rex3 Register r/w tests failed.";
$ng1failed = 1;
}
if($ng1_cmap_failed) {
echo "Cmap r/w tests failed.";
$ng1failed = 1;
}
if($ng1_xmap9_failed) {
echo "Xmap9 r/w tests failed.";
$ng1failed = 1;
}
if($ng1_vc2_failed) {
echo "VC2 r/w tests failed.";
$ng1failed = 1;
}
if($ng1_vram_failed) {
echo "VRAM test failed.";
$ng1failed = 1;
}
if($ng1_cid_failed) {
echo "CID test failed.";
$ng1failed = 1;
}
if($ng1_dma_failed) {
echo "DMA tests failed.";
$ng1failed = 1;
}
if (!$err) echo "REX3, CMAP, XMAP9, VC2, VRAM, CID & DMA Test Passed.\n"
if ($ng1failed) echo "ERROR: Failure detected on NG1 graphics board."
else echo "NG1 graphics board tests passed"
fi
echo " *****************END OF THE TEST *****************"
}
ng1 {
# test board 0 only (mostly for Indy)
ng1_probe;
$tmp = ng1_setboard 0;
if ($tmp)
ng1_script;
}
ng1_all {
$tmp = ng1_setboard 0;
if ($tmp) {
echo "Testing NG1/LG3 in slot 0."
ng1_script;
if ($ng1failed) {
echo "ERROR: Failure detected on gfx in slot 0."
}
}
$tmp = ng1_setboard 1;
if ($tmp) {
echo "Testing NG1/LG3 in slot 1."
ng1_script;
if ($ng1failed) {
echo "ERROR: Failure detected on gfx in slot 1."
}
}
}
# END OF NG1
ng1va {
echo "\n*****************************\n"
echo "Voltage changed to 5.25V\n"
echo "\n*****************************\n"
chg_volt 1;
ide_delay -s 15;
chg_volt 2;
ide_delay -s 15;
ng1_all;
echo "\n*****************************\n"
echo "Voltage set back to 5.0V\n"
echo "\n*****************************\n"
chg_volt 1;
ide_delay -s 15;
}
# END OF NG1VA
# START OF MGRAS TESTS
$mgfailed = 0;
delay {
ide_delay -s 2;
}
allsetup {
gioslot
mg_gfxreset;
delay;
mg_set_0ge;
delay;
mg_reset;
delay;
delay;
resetcons
if (!mg_gfxconsole) {
mg_sync_repp
mg_sync_pprdram
mg_xmapinit
mg_rdram_ccsearch
mg_initppregs
enabdisp
mg0_clear_color
}
}
hq3test {
echo "------ Executing Hq3 Test Suite ------"
buffon;
mg_gfxreset;
delay;
mg_set_0ge
$status = mg_hq3_initcheck;
# if ($status) {
# $failed = 1;
# echo "mg_hq3_initcheck";
# return(-1);
# }
$status = mg_hq3;
if ($status) {
$failed = 1;
return(-1);
}
mg_gfxreset;
delay;
$status = mg_hq3_cp;
$status = mg_hq3_converter;
if ($status) {
$failed = 1;
wait ;
}
$status = mg_hq3_cfifo;
if ($status) {
$failed = 1;
return(-1);
}
echo "******** Hq3 Test Suite Execution Completed ********\n"
resetcons; buffoff
}
# GE11 test scripts
gioslot_2GE {
$tmp = mg_setboard 0;
if ($tmp) {
echo "Mgras Gfx init to GIO Slot 0 "
mg_setboard 0 2;
}
else {
$tmp = mg_setboard 1;
if ($tmp) {
echo "Found boards in slot 1"
mg_setboard 1 2;
}
else {
echo "No boards found in slot 0 or slot 1"
}
}
}
ge0_ucode {
mg_reset;
$ge_no = mg_queryGE;
if ($ge_no == 0)
{
echo "GE11 doesn't exist\n";
}
else if ($ge_no == 1){
echo "\ntesting GE0 Ucode memory....\n";
gioslot;
buffon;
mg_gfxreset;
mg_set_ge 0;
$status = mg_ge_ucode_a
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_ucode_m
if ($status) {
$failed = 1;
return(-1);
}
}
else if ($ge_no == 2) {
echo "\ntesting GE0 Ucode memory....\n";
gioslot_2GE;
buffon;
mg_gfxreset;
mg_set_ge 0;
$status = mg_ge_ucode_a
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_ucode_m
if ($status) {
$failed = 1;
return(-1);
}
}
}
ge1_ucode {
mg_reset;
$ge_no = mg_queryGE;
if ($ge_no == 2)
{
echo "\ntesting GE1 Ucode memory....\n";
gioslot_2GE;
buffon;
mg_gfxreset;
mg_set_ge 1;
$status = mg_ge_ucode_a
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_ucode_m
if ($status) {
$failed = 1;
return(-1);
}
}
else {
echo "GE11 doesn't exist\n";
}
}
getest {
# echo "------ Executing GE COREs Test Suite ------"
# $status = mg_ge_ucode_a;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# $status = mg_ge_ucode_m;
# if ($status) {
# $failed = 1;
# return(-1);
# }
# $status = mg_hq3_dnload;
# $status = mg_ge11_dnload;
# $status = mg_ge_go;
$status = mg_ge_inst;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_cram;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_eram;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_wram;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_alu;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_dreg;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_ge_dma;
if ($status) {
$failed = 1;
return(-1);
}
echo "******** GE Test Suite Execution Completed ********"
}
ge0_setup {
mg_reset;
$ge_no = mg_queryGE;
if ($ge_no == 0)
{
echo "No GE11 exists\n";
}
if ($ge_no == 2) {
echo "------ Executing GE0 test setup ------"
gioslot_2GE;
mg_hq3_dnload;
mg_gfxreset;
mg_set_ge 0;
mg_ge11_dnload;
mg_ge_go;
}
if ($ge_no == 1) {
echo "------ Executing GE0 test setup ------"
gioslot_2GE;
mg_hq3_dnload;
mg_gfxreset;
delay;
mg_ge11_dnload;
mg_set_ge 0;
mg_ge_go;
}
# buffoff; resetcons;
}
ge0_test {
mg_reset;
$ge_no = mg_queryGE;
if($ge_no == 0)
{
echo "No GE11 exists\n";
}
else {
echo "------ Executing GE Test Suite on :: GE0 ------"
ge0_ucode;
ge0_setup;
buffon
mg_gfxreset
delay;
mg_pon_puts -s "testing ge0_core....\n\r";
$status = getest;
if ($status) {
$failed = 1;
return(-1);
}
}
# buffoff; resetcons;
}
ge1_setup {
mg_reset;
$ge_no = mg_queryGE;
buffon;
if($ge_no == 2)
{
echo "------ Executing GE1 test setup ------"
gioslot_2GE;
buffon
mg_gfxreset;
mg_set_2ge;
mg_set_ge 0;
mg_hq3_dnload;
mg_ge11_dnload;
mg_ge_go;
mg_set_ge 1;
mg_ge11_dnload;
mg_ge_go;
mg_gfxreset;
mg_set_2ge;
mg_set_ge 0;
mg_nextge;
mg_set_ge 1;
}
if($ge_no == 1)
{
echo "GE11_1 doesn't exist\n";
}
buffoff; resetcons;
}
ge1_test {
mg_reset;
$ge_no = mg_queryGE;
buffon;
if($ge_no == 2)
{
mg_gfxreset;
echo "------ Executing GE Test Suite :: GE1 ------"
ge1_ucode;
ge1_setup;
$status = getest;
if ($status) {
$failed = 1;
return(-1);
}
}
if($ge_no == 1)
{
echo "GE11_1 doesn't exist\n";
}
buffoff; resetcons;
}
tge_setup {
mg_reset;
$ge_no = mg_queryGE;
if ($ge_no == 2)
{
echo "=== tge_setup ===\n";
gioslot_2GE;
buffon;
mg_hq3_dnload;
mg_gfxreset;
delay;
mg_set_ge 0;
mg_ge11_dnload;
mg_ge_go;
mg_set_ge 1;
mg_ge11_dnload;
mg_ge_go;
mg_set_ge 0;
resetcons; buffoff;
}
if($ge_no == 1)
{
echo "Setup GE11_0 only\n";
ge0_setup;
}
if($ge_no == 0)
{
echo "NO ge11 exists\n";
}
buffoff; resetcons;
}
tge_test {
mg_reset;
$ge_no = mg_queryGE;
if ($ge_no == 2)
{
mg_pon_puts -s "testing ge0_ucode....\n\r";
ge0_ucode;
mg_pon_puts -s "testing ge1_ucode....\n\r";
ge1_ucode;
mg_pon_puts -s "testing tge_setup....\n\r";
tge_setup;
gioslot_2GE;
buffon
mg_gfxreset
delay;
mg_set_2ge;
mg_set_ge 0
mg_ge_go
mg_set_ge 1
mg_ge_go
mg_set_ge 0
echo " testing GE0 COREs....\n";
$status = getest
if ($status) {
$failed = 1;
resetcons; buffoff;
return (-1);
}
mg_nextge;
mg_set_ge 1;
mg_ge_go
echo " testing GE1 COREs....\n";
$status = getest
if ($status) {
$failed = 1;
resetcons; buffoff;
return (-1);
}
resetcons; buffoff
}
if ($ge_no == 1)
{
echo "Test only GE11_0\n";
$status = ge0_test;
if ($status) {
$failed = 1;
resetcons; buffoff;
return (-1);
}
resetcons; buffoff
}
if ($ge_no == 0)
{
echo "No GE11 exists\n";
ge0_test;
}
}
# End of Ge test scripts
dactest {
echo "------ Executing DAC Test Suite ------"
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_dacmodereg;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_dacaddrreg;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_clrpaletteaddrUniq;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_clrpalettewalkbit;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_clrpalettepatrn;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_dacreset;
if ($status) {
$failed = 1;
return(-1);
}
echo "******** DAC Test Suite Execution Completed ********"
}
vc3test {
echo "------ Executing VC3 Test Suite ------"
$status = mg_vc3reset;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_vc3internalreg;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_vc3addrsbus;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_vc3databus;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_vc3addrsuniq;
if ($status) {
$failed = 1;
return(-1);
}
$status = mg_vc3patrn;
if ($status) {
$failed = 1;
return(-1);
}
echo "******** VC3 Test Suite Execution Completed ********"
}
cmaptest {
echo "------ Executing CMAP Test Suite ------"
$status = mg_vc3init 0x555;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmaprev;
if (!$status) {
$failed = 1;
return (-1);
}
$status = mg_cmapdatabus 0;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmapaddrsbus 0;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmappatrn 0;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmapaddrsuniq 0;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmapdatabus 1;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmapaddrsbus 1;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmappatrn 1;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmapaddrsuniq 1;
if ($status) {
$failed = 1;
return (-1);
}
$status = mg_cmapuniqtest;
if ($status) {
$failed = 1;
return (-1);
}
echo "******** CMAP Test Suite Execution Completed ********"
}
bkend {
buffon;
echo "------ Executing Back End Test Suite ------"
$status = dactest;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing vc3test....\n\r";
$status = vc3test;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing cmaptest....\n\r";
# $status = cmaptest;
if ($status) {
$failed = 1;
return(-1);
}
# $status = mg_reset;
if ($status) {
$failed = 1;
return(-1);
}
delay;
mg_pon_puts -s "testing mg_xmapdcbreg 0....\n\r";
$status = mg_xmapdcbreg 0;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_xmapdcbreg 1....\n\r";
$status = mg_xmapdcbreg 1;
if ($status) {
$failed = 1;
return(-1);
}
$tmp = mg_setnumre4s -q
if ($tmp == 2) {
mg_pon_puts -s "testing mg_xmapdcbreg 2...\n\r";
$status = mg_xmapdcbreg 2;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_xmapdcbreg 3...\n\r";
$status = mg_xmapdcbreg 3;
if ($status) {
$failed = 1;
return(-1);
}
}
$status = mg_reset;
if ($status) {
$failed = 1;
return(-1);
}
delay;
# mg_pon_puts -s "testing mg_crcwalk test suite (1280X1024X60)... \n\r";
# mg_stoptiming;
# $status = mg_vc3init 0x107
# if ($status) {
# $failed = 1;
# return(-1);
# }
# mg_starttiming;
$status = mg_crcwalk;
if ($status) {
$failed = 1;
return(-1);
}
# $status = mg_reset;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# mg_pon_puts -s "testing mg_crcwalk test suite (1280X1024X72)... \n\r";
# mg_stoptiming;
# $status = mg_vc3init 0x130
# if ($status) {
# $failed = 1;
# return(-1);
# }
# mg_starttiming;
# $status = mg_crcwalk;
# if ($status) {
# $failed = 1;
# return(-1);
# }
# $status = mg_reset;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# mg_pon_puts -s "testing mg_crcwalk test suite (1280X1024X76)... \n\r";
# mg_stoptiming;
# $status = mg_vc3init 0x139
# if ($status) {
# $failed = 1;
# return(-1);
# }
# mg_starttiming;
# $status = mg_crcwalk;
# if ($status) {
# $failed = 1;
# return(-1);
# }
# $status = mg_reset;
# if ($status) {
# $failed = 1;
# return(-1);
# }
#
# mg_pon_puts -s "testing mg_crcwalk test suite (1600X1200X60)....\n\r";
# $status = mg_issolid;
# if ($status) {
# mg_pon_puts -s "testing mg_crcwalk for Soild Impact...\n\r"
# mg_stoptiming;
# $status = mg_vc3init 0x156
# if ($status) {
# $failed = 1;
# return(-1);
# }
# mg_starttiming;
# $status = mg_crcwalk;
# if ($status) {
# $failed = 1;
# mg_pon_puts -s "ERROR: mg_crcwalk test failed for Solid Impact\n\r"
# return(-1);
# }
# } else {
# mg_pon_puts -s "testing mg_crcwalk for Max/High Impact...\n\r"
# mg_stoptiming;
# $status = mg_vc3init 0x159
# if ($status) {
# $failed = 1;
# return(-1);
# }
# mg_starttiming;
# $status = mg_crcwalk;
# if ($status) {
# $failed = 1;
# mg_pon_puts -s "ERROR: mg_crcwalk test failed for Max/High Impact\n\r"
# return(-1);
# }
# }
delay;
# delay;
echo "Executing mg_vc3cursorposition test..."
mg_reset;
delay;
mg_xmapinit;
delay;
repeat 3 {
delay
}
mg_pon_puts -s "testing mg_vc3cursorposition....\n\r";
$status = mg_vc3cursorposition;
if ($status) {
$failed = 1;
resetcons; buffoff;
return(-1);
}
resetcons; buffoff;
echo "******** Back End Test Suite Execution Completed ********"
}
re4test {
echo "------ Executing RE4 Test Suite ------"
$status = mg_re_status_reg;
if ($status) {
$failed = 1; return(-1);
}
led 0;
$status = mg_re_rdwr_regs;
if ($status) {
$failed = 1; return(-1);
}
$status = mg_re_internal_ram -t0;
if ($status) {
$failed = 1; return(-1);
}
$status = mg_re_internal_ram -t1;
if ($status) {
$failed = 1; return(-1);
}
$status = mg_re_internal_ram -t2;
if ($status) {
$failed = 1; return(-1);
}
led 1;
$status = mg_re_internal_ram -t3;
if ($status) {
$failed = 1; return(-1);
}
$status = mg_re_internal_ram -t4;
if ($status) {
$failed = 1; return(-1);
}
$status = mg_re_internal_ram -t5;
if ($status) {
$failed = 1; return(-1);
}
echo "******** RE4 Test Suite Execution Completed ********"
}
dmatest {
echo "------ Executing DMA Test Suite ------"
$status = mg_host_hqdma;
if ($status) {
$failed = 1;
return(-1);
}
$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
$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 {
echo "------ Executing tex_draw_test Suite ------"
mg_pon_puts -s "testing mg_notex_line....\n\r";
drawsetup;
$status = mg_notex_line
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_notex_poly....\n\r";
delay;
$status = mg_notex_poly
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_poly....\n\r";
delay;
$status = mg_tex_poly
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_id....\n\r";
delay;
$status = mg_tex_1d
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_3d....\n\r";
delay;
$status = mg_tex_3d
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_scistri....\n\r";
delay;
$status = mg_tex_scistri
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_linegl....\n\r";
delay;
$status = mg_tex_linegl
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_load....\n\r";
delay;
$status = mg_tex_load
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_persp....\n\r";
delay;
$status = mg_tex_persp
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_mag....\n\r";
delay;
$status = mg_tex_mag
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_detail....\n\r";
delay;
$status = mg_tex_detail
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_bordertall....\n\r";
delay;
$status = mg_tex_bordertall
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_lut4d....\n\r";
delay;
$status = mg_tex_lut4d
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_borderwide....\n\r";
delay;
$status = mg_tex_borderwide
delay;
if ($status) {
$failed = 1;
return(-1);
}
mg_pon_puts -s "testing mg_tex_mddma....\n\r";
delay;
$status = mg_tex_mddma
delay
if ($status) {
$failed = 1;
return(-1);
}
drawclose;
echo "******** tex_draw_test Suite Execution Completed ********"
}
repp_test {
echo "------ Executing RE-PP Test Suite ------"
drawsetup;
$status = mg_z_tri
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_lines
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_points
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_stip_tri
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_xblock
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_chars
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_logicop
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_dither
delay;
if ($status) {
$failed = 1;
return(-1);
}
delay;
$status = mg_color_tri
delay;
if ($status) {
$failed = 1;
return(-1);
}
led 1
delay
drawclose;
echo "******** RE/PP Test Suite Execution Completed ********"
}
rdram_mem {
echo "------ Executing FRAME BUFFER Test Suite ------"
drawsetup
if (mg_gfxconsole)
mg_pon_puts -s "testing mg_dma_pp Z Buffer....\n\r";
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0 -p3
if ($status) {
$failed = 1;
return (-1);
}
if (mg_gfxconsole)
mg_pon_puts -s "testing mg_dma_pp Color Buffer....\n\r";
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x240 -p3
if ($status) {
$failed = 1;
return (-1);
}
if (mg_gfxconsole)
mg_pon_puts -s "testing mg_dma_pp Overlay Buffer....\n\r";
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x1c0 -p3
if ($status) {
$failed = 1;
return (-1);
}
$tmp = mg_setnumre4s -q
if ($tmp == 2) {
# Display Buffer-CD Test
if (mg_gfxconsole)
mg_pon_puts -s "testing mg_dma_pp Buffer CD....\n\r";
$status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x320 -p3
if ($status) {
$failed = 1;
return (-1);
}
# ACC36 or AUX 0 Buffer
if (mg_gfxconsole)
mg_pon_puts -s "testing mg_dma_pp ACC36/AUX Buffer....\n\r"; $status = mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0e0 -p3
if ($status) {
$failed = 1;
return (-1);
}
}
echo "******** FRAME BUFFER Test Suite Execution Completed ********"
}
tram_mem {
delay;
echo "------ Executing TRAM Memory Test Suite ------"
delay;
$status = mg_dma_tram -m 3 -e 0
if ($status) {
$failed = 1;
return (-1);
}
delay
$foo = mg_setnumre4s -q
delay
if ($foo == 2) {
$status = mg_dma_tram -m 3 -e 0 -n 1
if ($status) {
$failed = 1;
return (-1);
}
}
}
re4flextest {
echo "------ High Density Flex Connectivity Test ------"
$status = mg_hq3 4
if ($status) {
$failed = 1;
}
}
mg_test_all {
$failed = 0;
if (mg_gfxconsole) {
report=2;
} else {
report=2;
}
repeat 3 delay;
gioslot;
if (mg_gfxconsole) {
mg_reset;
delay;
delay;
resetcons;
} else {
allsetup;
}
buffon
mg_pon_puts -s "Start mg_test_all test script ....\n\r";
delay;
delay;
mg_pon_puts -s "testing re4flextest....\n\r";
$status = re4flextest;
if ($failed) {
echo "Flex Test FAILED"
resetcons; buffoff;
wait;
return($status);
}
mg_pon_puts -s "testing hq3test....\n\r";
$status = hq3test;
if ($failed) {
echo "hq3test FAILED"
wait;
return($status);
}
mg_pon_puts -s "testing bkend....\n\r";
resetcons;
gioslot;
mg_reset;
delay;
delay;
resetcons;
$status = bkend;
if ($failed) {
echo "bkend FAILED"
resetcons; buffoff;
return($status);
}
mg_pon_puts -s "testing ge_test....\n\r";
# resetcons;
mg_reset;
$ge_no = mg_queryGE;
if ($ge_no == 2) # 2 GE system
{
echo "Testing 2GE system....\n"
$status = tge_test;
}
if ($ge_no == 1) # 1 ge system
{
mg_pon_puts -s "testing ge11_0 ...\n\r";
echo "Testing 1GE system....\n"
$status = ge0_test;
mg_pon_puts -s "finished ge11_0 test ...\n\r";
}
if ($failed) {
echo "ge_test FAILED"
resetcons; buffoff;
return($status);
}
allsetup;
buffon
mg_pon_puts -s "\rtesting re4test....\n\r";
$status = re4test;
if ($failed) {
echo "re4test FAILED"
resetcons; buffoff;
return(-1);
}
mg_pon_puts -s "testing dmatest....\n\r";
$status = dmatest;
if ($failed) {
echo "dmatest FAILED"
resetcons; buffoff;
return($status);
}
mg_pon_puts -s "testing rdram_mem....\n\r";
$status = rdram_mem;
if ($failed) {
echo "RDRAM FAILED"
resetcons; buffoff;
return($status);
}
mg_pon_puts -s "testing repp_test....\n\r";
$status = repp_test;
if ($failed) {
echo "repp_test FAILED"
resetcons; buffoff;
return($status);
}
delay;
allsetup ;
delay;
delay;
mg_reset;
delay;
resetcons; buffoff;
buffon;
echo "Testing TRAM memory"
repeat 3 delay;
mg_pon_puts -s "testing tram_mem....\n\r";
$status = tram_mem;
if ($failed) {
echo "tram test FAILED"
resetcons; buffoff;
return(-1);
}
mg_pon_puts -s "testing tex_draw_test....\n\r";
$status = tex_draw_test
if ($failed) {
echo "tex_draw_test FAILED"
resetcons; buffoff;
return(-1);
}
mg_pon_puts -s "All tests have passed....\n\r";
echo " All tests have passed"
delay;
delay;
mg_reset;
resetcons; buffoff;
report=4
}
mg_all {
$failed = 0;
$tmp = mg_setboard 0;
if ($tmp) {
echo "Testing Impact boards in slot 0."
mg_test_all;
if ($failed) {
echo "ERROR: Failure detected on gfx in slot 0."
$mgfailed = 1;
}
}
$failed = 0;
$tmp = mg_setboard 1;
if ($tmp) {
echo "Testing Impact boards in slot 1."
mg_test_all;
if ($failed) {
echo "ERROR: Failure detected on gfx in slot 0."
$mgfailed = 1;
}
}
}
# END OF IMPACT
# Top level functions
gfx_diag {
$express = gr2_probe;
$newport=ng1_probe;
if ($newport) {
ng1_all;
}
if ($express) {
gr2_all;
}
# ng1_all;
# gr2_all;
}
gfx {
$express = gr2_probe;
$newport=ng1_probe;
$mgras = mg_probe;
if ($newport) {
ng1_all;
}
if ($express) {
gr2_all;
}
if ($mgras) {
mg_all;
}
if (($mgfailed == 0) && ($gr2_failed == 0) && ($ng1failed == 0)) {
unix;
}
}
gfxva {
echo "Voltage changed to 4.75 V\n"
chg_volt 1;
ide_delay -s 15;
chg_volt 0;
ide_delay -s 15;
$express = gr2_probe;
$newport=ng1_probe;
$mgras = mg_probe;
if ($newport) {
ng1_all;
}
if ($express) {
gr2_all;
}
if ($mgras) {
mg_all;
}
if (($mgfailed == 1) || ($gr2_failed == 1) || ($ng1failed == 1)) {
echo "ERROR: Gfx failed at Voltage 4.75";
return;
}
$mgfailed = 0;
$gr2_failed = 0;
$ng1failed = 0;
echo "Voltage changed to 5.25 V\n"
chg_volt 1;
ide_delay -s 15;
chg_volt 2;
ide_delay -s 15;
$express = gr2_probe;
$newport=ng1_probe;
$mgras = mg_probe;
if ($newport) {
ng1_all;
}
if ($express) {
gr2_all;
}
if ($mgras) {
mg_all;
}
if (($mgfailed == 0) && ($gr2_failed == 0) && ($ng1failed == 0)) {
unix
}
echo "ERROR: Gfx failed at Voltage 5.25";
}
v2g2v {
CheckSlot
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
gfxset;
echo " "
echo "Now trying vid2gfxa"
v2ga;
echo "Now trying gfx2vidb"
g2vb;
echo "Finished"
}
gfx2vidb {
CheckSlot
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
gfxset;
echo " "
echo "Now trying gfx2vidb"
g2vb;
echo "Finished "
}
gfx2vida {
CheckSlot
$status =ev1_init ;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
gfxset;
echo " "
echo "Now trying gfx2vida"
g2va;
echo "Finished "
}
vid2gfxa {
CheckSlot
$status = ev1_init;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
gfxset;
composite;
echo " "
echo "Now trying vid2gfxa"
v2ga;
echo "Finished "
}
vid2gfxc {
CheckSlot
$status = ev1_init;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
gfxset;
echo " "
echo "Now trying vid2gfxa"
v2gc;
echo "Finished "
}
vid2gfxb {
CheckSlot
$status = ev1_init;
if ($status) {
echo " Galileo Board Initialization FAILED"
return ($status);
}
gfxset;
echo " "
echo "Now trying vid2gfxb"
v2gb;
echo "Finished "
}
menu;