3244 lines
59 KiB
Plaintext
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;
|