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

665 lines
15 KiB
Plaintext

rdram_color_buffer {
echo "Checking color buffer"
echo "Walking 1/0..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x240 -p0
wait
echo "Address in address..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x240 -p1
wait
echo "FFFF0000 pattern..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x240 -p2
wait
echo "6 pattern test..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x240 -p3
wait
}
rdram_z_buffer {
echo "Checking Z buffer"
echo "Walking 1/0..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0 -p0
wait
echo "Address in address..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0 -p1
wait
echo "FFFF0000 pattern..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0 -p2
wait
echo "6 pattern test..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0 -p3
wait
}
rdram_ACC_AUX_buffer {
echo "Checking ACC36/AUX buffer"
echo "Walking 1/0..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0e0 -p0
wait
echo "Address in address..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0e0 -p1
wait
echo "FFFF0000 pattern..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0e0 -p2
wait
echo "6 pattern test..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x0e0 -p3
wait
}
rdram_DisplayCD_buffer {
echo "Checking Display-CD buffer"
echo "Walking 1/0..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x320 -p0
wait
echo "Address in address..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x320 -p1
wait
echo "FFFF0000 pattern..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x320 -p2
wait
echo "6 pattern test..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x320 -p3
wait
}
rdram_overlay_buffer {
echo "Checking Overlay buffer"
echo "Walking 1/0..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x1c0 -p0
wait
echo "Address in address..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x1c0 -p1
wait
echo "FFFF0000 pattern..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x1c0 -p2
wait
echo "6 pattern test..."
mg_dma_pp -r0 -e0 -w0 -d0 -b 0x1c0 -p3
wait
}
vline {
mg0_line -x $1 1023 0 100 100 100 100 -n $1 0 0 100 100 100 100
}
hline {
mg0_line -x 1279 $1 0 100 100 100 100 -n 0 $1 0 100 100 100 100
}
rdram_repair {
allsetup;
mg_rdram_addrbus;
mg_rdram_databus;
mg_rdram_unique;
rdram_color_buffer;
rdram_z_buffer;
rdram_overlay_buffer;
$tmp = mg_setnumre4s -q;
if ($tmp == 2) {
rdram_ACC_AUX_buffer;
rdram_DisplayCD_buffer;
}
}
tram_repair {
allsetup
mg_tram_rev_nobuff
wait
echo "Walking 1/0..."
mg_dma_tram -m 0 -e 0
wait
echo "Address in address..."
mg_dma_tram -m 1 -e 0
wait
echo "FFFF0000 pattern..."
mg_dma_tram -m 2 -e 0
wait
echo "6 pattern test..."
mg_dma_tram -m 3 -e 0
wait
$foo = mg_setnumre4s -q
if ($foo == 2) {
echo "Walking 1/0..."
mg_dma_tram -m 0 -e 0 -n1
wait
echo "Address in address..."
mg_dma_tram -m 1 -e 0 -n1
wait
echo "FFFF0000 pattern..."
mg_dma_tram -m 2 -e 0 -n1
wait
echo "6 pattern test..."
mg_dma_tram -m 3 -e 0 -n1
wait
}
}
cmapcrc {
$failed = 1;
mg_pon_puts -s "Testing CMAP-A to DAC pixel path with 0xff0000 pattern\n\r";
$status = mg_crc -r 1 -l 0 -s 0xff0000;
if ($status) {
mg_pon_puts -s "CMAP-A to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-A to DAC pixel path with 0x550000 pattern\n\r";
$status = mg_crc -r 1 -l 0 -s 0x550000;
if ($status) {
mg_pon_puts -s "CMAP-A to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-A to DAC pixel path with 0xaa0000 pattern\n\r";
$status = mg_crc -r 1 -l 0 -s 0xaa0000;
if ($status) {
mg_pon_puts -s "CMAP-A to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-A to DAC pixel path with 0x555555 pattern\n\r";
$status = mg_crc -r 1 -l 0 -s 0x555555;
if ($status) {
mg_pon_puts -s "CMAP-A to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-A to DAC pixel path with 0xaaaaaa pattern\n\r";
$status = mg_crc -r 1 -l 0 -s 0xaaaaaa;
if ($status) {
mg_pon_puts -s "CMAP-A to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-A to DAC pixel path with 0xffffff pattern\n\r";
$status = mg_crc -r 1 -l 0 -s 0xffffff;
if ($status) {
mg_pon_puts -s "CMAP-A to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-B to DAC pixel path with 0xff0000 pattern\n\r";
$status = mg_crc -r 1 -l 1 -s 0xff0000;
if ($status) {
mg_pon_puts -s "CMAP-B to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-B to DAC pixel path with 0x550000 pattern\n\r";
$status = mg_crc -r 1 -l 1 -s 0x550000;
if ($status) {
mg_pon_puts -s "CMAP-B to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-B to DAC pixel path with 0xaa0000 pattern\n\r";
$status = mg_crc -r 1 -l 1 -s 0xaa0000;
if ($status) {
mg_pon_puts -s "CMAP-B to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-B to DAC pixel path with 0x555555 pattern\n\r";
$status = mg_crc -r 1 -l 1 -s 0x555555;
if ($status) {
mg_pon_puts -s "CMAP-B to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-B to DAC pixel path with 0xaaaaaa pattern\n\r";
$status = mg_crc -r 1 -l 1 -s 0xaaaaaa;
if ($status) {
mg_pon_puts -s "CMAP-B to DAC pixel path Test Failed\n\r";
# return;
}
mg_pon_puts -s "Testing CMAP-B to DAC pixel path with 0xffffff pattern\n\r";
$status = mg_crc -r 1 -l 1 -s 0xffffff;
if ($status) {
mg_pon_puts -s "CMAP-B to DAC pixel path Test Failed\n\r";
# return;
}
$failed = 0;
}
### This portion of the script is commented as it is not necessary
###
###rss_test {
### $failed = 0;
### report=2;
### repeat 3 {
### delay;
### }
### mg_setboard; mg_hqfifoinit
### temp_buffon
### if (mg_gfxconsole) {
### $status = mg_reset;
### $solid = mg_issolid;
### delay;
### delay;
### temp_resetcons;
### if ($status) {
### $failed = 1;
### return (-1);
### }
### } else {
### allsetup;
### if ($failed) {
### echo "Initializing graphics failed"
### return (-1)
### }
### }
###
### delay;
### delay;
###
### $status = re4flextest;
### if ($failed) {
### echo "Flex Test FAILED"
### if ($solid == 0) {
### echo "The RA/RB Board may be BAD"
### }
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
###
### temp_resetcons;
### mg_setboard; mg_hqfifoinit
### $status = mg_reset;
### if ($status) {
### $failed = 1;
### return (-1);
### }
### delay;
### delay;
### temp_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"
### }
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
### allsetup;
### if ($failed) {
### temp_resetcons; temp_buffoff;
### return(-1);
### }
###
### temp_buffon
###
### $status = re4test;
### if ($failed) {
### echo "re4test FAILED"
### echo "The RA/RB Board may be BAD"
### temp_resetcons; temp_buffoff;
### return(-1);
### }
####XXXif ($oven) {
####XXX boot -f bootp()mg_re.pass;
####XXX }
### $status = dmatest;
### if ($failed) {
### echo "dmatest FAILED"
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
### if ($quick == 0) {
### $status = rdram_mem;
### if ($failed) {
### echo "RDRAM FAILED"
### echo "The RA/RB Board may be BAD"
### temp_resetcons; temp_buffoff;
### return($status);
### }
### }
###
### $status = repp_test;
### if ($failed) {
### echo "repp_test FAILED"
### echo "The RA/RB Board may be BAD"
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
####XXX if ($oven) {
####XXX boot -f bootp()mg_repp.pass;
####XXX }
### delay; delay; delay; delay; delay;
### delay; delay; delay; delay; delay;
###
###
#### allsetup;
#### if ($failed) {
#### temp_resetcons; temp_buffoff;
#### return(-1);
#### }
#### delay;
#### delay;
#### $status = mg_reset;
#### if ($status) {
#### $failed = 1;
#### return (-1);
#### }
#### delay;
### temp_resetcons; temp_buffoff;
### temp_buffon;
###
#### perform TRAM memory and TEXTURE draw tests for Max/High Only
#### if ($solid)
### $status = mg_setnumtrams ;
### if ($status == 0) {
### echo "No Texture Subsystem for MG10"
### echo "Tests for Texture Subsystem are skipped..."
### } else {
### if ($quick == 0) {
### echo "Testing TRAM memory"
### repeat 3 {
### delay;
### }
### $status = tram_mem;
### if ($failed) {
### echo "tram test FAILED"
### echo "The RA/RB Board may be BAD"
### temp_resetcons; temp_buffoff;
### return(-1);
### }
####XXX if ($oven) {
####XXX boot -f bootp()mg_tram.pass;
####XXX }
### }
###
### $testnum = "_96"
### $status = tex_draw_test
### if ($failed) {
### echo "tex_draw_test FAILED"
### echo "The RA/RB Board may be BAD"
### temp_resetcons; temp_buffoff;
### return(-1);
### }
####XXX if ($oven) {
####XXX boot -f bootp()mg_tex.pass;
####XXX }
### }
###
### echo ""
### echo " All tests have passed"
### delay;
### delay;
#### $status = mg_reset;
#### if ($status) {
#### $failed = 1;
#### return (-1);
#### }
### temp_resetcons; temp_buffoff;
### report=4
###
#### if($gounix) {
#### if($failed == 0) {
#### unix;
#### }
#### }
###}
###
###rss {
### $quick = 0;
### rss_test;
###}
###
###rss_quick {
### $quick = 1;
### rss_test;
### $quick = 0;
###}
###
###
###hqge_test {
### $failed = 0;
### report=2;
### repeat 3 {
### delay;
### }
### mg_setboard; mg_hqfifoinit
### temp_buffon
### if (mg_gfxconsole) {
### $status = mg_reset;
### $solid = mg_issolid;
### delay;
### delay;
### temp_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);
### }
###
###
### $status = re4flextest;
### if ($failed) {
### echo "Flex Test FAILED"
### if ($solid == 0) {
### echo "The RA/RB Board may be BAD"
### }
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
###
### temp_resetcons;
### mg_setboard; mg_hqfifoinit
### $status = mg_reset;
### if ($status) {
### $failed = 1;
### return (-1);
### }
### delay;
### delay;
### temp_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"
### }
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
#### resetcons;
###
### $status = mg_reset;
### if ($status) {
### $failed = 1;
### return (-1);
### }
###
### $ge_no = mg_queryGE;
### if ($ge_no == 2) # 2 GE system
### {
### echo "Testing 2GE system...."
### $testnum = "_41"
### $status = tge_test;
### }
###
### if ($failed) {
### echo "tge_test FAILED"
### echo "The GD Board may be BAD"
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
### if ($ge_no == 1) # 1 ge system
### {
### echo "Testing 1GE system...."
### $testnum = "_44"
### $status = ge0_test;
### }
###
### if ($failed) {
### echo "ge_test FAILED"
### echo "The GD Board may be BAD"
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
###
### allsetup;
### if ($failed) {
### temp_resetcons; temp_buffoff;
### return(-1);
### }
###
### temp_buffon
###
### $status = dmatest;
### if ($failed) {
### echo "dmatest FAILED"
### temp_resetcons; temp_buffoff;
### return($status);
### }
###
###
### echo ""
### echo " All tests have passed"
### delay;
### delay;
#### $status = mg_reset;
#### if ($status) {
#### $failed = 1;
#### return (-1);
#### }
### temp_resetcons; temp_buffoff;
### report=4
###
#### if($gounix) {
#### if($failed == 0) {
#### unix;
#### }
#### }
###}
###
ge1_setup {
$failed = 0;
$status = mg_setboard ;
if ($status == 0) { $failed = 1; return (1); }
delay;
mg_hqfifoinit;
#
$ge_no = mg_queryGE;
buffon;
if($ge_no == 2)
{
echo "------ Executing GE1 test setup ------"
gioslot_2GE;
buffon
# mg_gfxreset;
$status = mg_setboard ;
if ($status == 0) { $failed = 1; return (1); }
delay;
mg_hqfifoinit;
#
mg_set_2ge;
mg_set_ge 0;
$status = mg_hq_dnload;
if ($status) {
$failed = 1;
return (1);
}
#
$status = mg_ge11_dnload;
if ($status) {
$failed = 1;
return (1);
}
mg_ge_go;
mg_set_ge 1;
$status = mg_ge11_dnload;
if ($status) {
$failed = 1;
return (1);
}
#
mg_ge_go;
# mg_gfxreset;
$status = mg_setboard ;
if ($status == 0) { $failed = 1; return (1); }
delay;
mg_hqfifoinit;
#
mg_set_2ge;
mg_set_ge 0;
mg_nextge;
mg_set_ge 1;
}
if($ge_no == 1)
{
echo "GE11_1 doesn't exist";
}
buffoff;
resetcons;
}
#
ge1_test {
$failed = 0;
$status = mg_setboard ;
if ($status == 0) { $failed = 1; return (1); }
delay;
mg_hqfifoinit;
#
$ge_no = mg_queryGE;
buffon;
if($ge_no == 2)
{
# mg_gfxreset;
$status = mg_setboard ;
if ($status == 0) { $failed = 1; return (1); }
delay;
mg_hqfifoinit;
#
echo "------ Executing GE Test Suite :: GE1 ------"
if ($quick == 0) {
ge1_ucode;
if ($failed) {
$failed = 1;
return (1);
}
}
ge1_setup; if ($failed) { return (1); }
$status = getest;
if ($failed) {
$failed = 1;
return(1);
}
}
if($ge_no == 1)
{
echo "GE11_1 doesn't exist";
}
buffoff;
resetcons;
}
#### Impact GFX Repair Script
###############################################################
report=4;
ra_menu
###