#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; }