Running the DEVICE EXCERCISOR on Apollo Workstations - An Example

DEX is a "device excercisor" which runs as a standalone utility and is found under the /sauN/... directory. It performs fairly thorough device tests for ESDI disk drives. I'm not sure if it is useful on SCSI drives.

Here is a transcript of a DEX session run on a DSP3500 which is using a WD7000 controller and one Maxtor 380MB disk.

NOTE 1: You can not run DEX on a mounted volume or a volume in use. Instead, shut down the workstation and bring up the standalone version.

NOTE 2: FBS takes a VERY LONG TIME. Something on the order of 4 hours per pass on a 380MB drive. I'd suggest selecting 2 passes and letting it run overnight.

NOTE 3: On older versions of DEX a password is sometimes requested. If this is the case, try one or more of the following responses:
service
service8
domain


With workstation shut down and in service mode
<return>
> re
> re
MD7C REV 8.00, 1989/08116.17:23:52
> ex dex
ex dex
low: 01002C00 high: 01036BD4 start: 01003000 


"THE APOLLO  DIAGNOSTIC EXECUTIVE  SOFTWARE PROGRAM  CONTAINED HEREIN IS THE
PROPRIETARY  MATERIAL OF APOLLO  AND  MAY BE USED  AND  EXECUTED  ONLY BY AN
AUTHORIZED LICENSEE ON A SINGLE,  LICENSED, IDENTIFIED APOLLO NODE OR SERVER
PROCESSOR  PURSUANT TO A SEPARATE  DIAGNOSTIC  SOFTWARE PROGRAM  PROPRIETARY
LICENSE  AGREEMENT BETWEEN  APOLLO AND  LICENSEE.   ALL APPLICABLE RIGHTS IN
PATENTS, COPYRIGHTS AND TRADE SECRETS IN SUCH SOFTWARE PROGRAMS ARE AND WILL
REMAIN  IN  APOLLO  OR  APOLLO'S  LICENSORS."

DEX7 Revision 2.12, Built August 28, 1989   1:31:36 pm (EDT).
File "CMD/STARTUP.CMD": $412 bytes loaded at $1040000

DEX> help
help

Type 
   HELP "Commands"  for a list of all available commands.
   HELP     for help on a particular command.
   Help        for help on a particular topic.


DEX> help commands
help commands

Valid commands for DEX are:

       AUTO   Execute automated test on a device or entire system
   CONTinue   Restart test sequence from point of interruption
    DEVices   Modify or display contents of System Device List
       DIsk   Modify or display System Boot Device
         DO   Execute command file
    RUN_OLD   Run diagnostic in Pre-Dex Mode
       EXIt   Return from command file
         GO   Start executing selected diagnostic tests
       HElp   Display help text
         IF   Conditional execution
         LD   Display boot device directory contents
       LIst   Display contents of memory
       LOad   Read file from boot device into memory
        LOG   Display contents of System Error Log
         MD   Execute MD Command
   MSGlevel   Control message display and brevity
    ONERRor   Control action to take on diagnostic-detected error
        PAD   Display transcript pad
       PASS   Modify or display System Pass Count Register
      QUERY   Enable or disable System 'Query Mode'
       Quit   Exit to 'MD>' prompt
       READ   Read text from user into CLI variable
      RELoc   Relocate DEX within memory
        Run   Execute diagnostic tests for a module
       LOOp   Enter scope loop
      INput   Modify or display source of character input
       TYpe   Display command line arguments
     SELect   Designate diagnostic tests to be executed by 'GO'
      DEBug   Debug
        MAp   Enable/Disable MMU
     STcode   Display Error Text
         DC   Enable/Disable Data Cache

DEX> auto
auto

      Current configuration

 Board #  Size in megabytes
     1              4
     2              4
 Total configured memory = 8 megabytes

Node-id:      24673
Display type: NONE
Peripheral devices:
       FPU5 -- MC68881/MC68882
       WINCHESTER CONTROLLER TYPE --  Western Digital (WD7000V-ASE)
       WIN7 -- Winchester (controller 0  unit 0):  380MB--FA
       WIN7 -- Winchester (controller 0  unit 1):  No disk present
       RING -- Apollo Token Ring Network Controller-AT (unit 0)

   Principal network: RING -- Apollo Token Ring Network Controller-AT (unit 0)

Is this information correct? (Y, N) : y
y
%"WIN7B" - Device driver not loaded (Exec/AUTO Cmd)
%"FLP7" - Device driver not loaded (Exec/AUTO Cmd)
%"CTAPE7B" - Device driver not loaded (Exec/AUTO Cmd)
%"MAGTAPE7" - Device driver not loaded (Exec/AUTO Cmd)
%"VTAPE7" - Device driver not loaded (Exec/AUTO Cmd)

FRU's to be tested:
----------------------
MEM (Board 0, Board 1)
CPU
RING7B
WIN7B (Controller, Drive 0, Drive 1, Drive 2, Drive 3)
FPU

FRU's not to be tested:
----------------------
DISP7
ETHER
SCAT
ITR
PCC
FLP (Controller, Drive)
CTAPE7B (Controller, Drive)
MAGTAPE (Controller, Drive)
VTAPE (Controller, Drive)
FPA

Is this okay (Y, N) : n
n

Memory [MEM7] Subsystem (A, N, S) : a
a

CPU [CPU7] Controller (Y, N) : y
y

Display [DISP7] Controller (Y, N) : n
n

Ring [RING7B] Controller (Y, N) : n
n

Ether [ETHER7] Controller (Y, N) : n
n

Serial Controller [SCAT7] Controller (Y, N) : n
n

Token Ring [ITR7] Controller (Y, N) : n
n

Pcc [PCC7] Controller (Y, N) : n
n

Winchester Disk [WIN7B] Subsystem (A, N, S) : a
a

Floppy Disk [FLP7] Subsystem (A, N, S) : n
n

Cartridge Tape [CTAPE7B] Subsystem (A, N, S) : n
n

Magnetic Tape [MAGTAPE7] Subsystem (A, N, S) : n
n

8mm Tape [VTAPE7] Subsystem (A, N, S) : n
n

Floating Point Unit [FPU5] Controller (Y, N) : y
y

Floating Point Accelerator [FPA7] Controller (Y, N) : n
n

FRU's to be tested:
----------------------
MEM (Board 0, Board 1)
CPU
WIN7B (Controller, Drive 0, Drive 1, Drive 2, Drive 3)
FPU

FRU's not to be tested:
----------------------
DISP7
RING7B
ETHER
SCAT
ITR
PCC
FLP (Controller, Drive)
CTAPE7B (Controller, Drive)
MAGTAPE (Controller, Drive)
VTAPE (Controller, Drive)
FPA

Is this okay (Y, N) : y
y

Number of passes (0= infinite) <1>: 1
1


File "MEM.DEX": $4454 bytes loaded at $1040800
Module: MEM.DEX, Rev 4.1 : Built August 4, 1988   2:10:30 pm (EDT)
Description: Memory Diagnostic

Entering "MEM.DEX.1"
%Warning: Cannot test range $01000000 to $010013FF - (MEM.DEX/MCR)
%Warning: Cannot test range $01001400 to $01044FFF - (MEM.DEX/MCR)
Test 99: DATA RAM STUCK-AT FAULTS TEST

       testing address 01045000 to 013FFFFF
...............


       testing address 01400000 to 017FFFFF
................

Test 109: DATA RAM COUPLING FAULTS TEST

       testing address 01045000 to 013FFFFF
...............


       testing address 01400000 to 017FFFFF
................

Test 130: DATA RAM Intensive Memory Test

       testing address 01045000 to 013FFFFF
       Binary Tree Test ...............


       testing address 01400000 to 017FFFFF
       Binary Tree Test ................

Test 140: PARITY CHECKER TEST
      Testing that parity error status bits can be set and cleared
      Testing patterns on parity check circuits
      Testing the Failing Address Register
      Testing parity trap will occur
Test 141: PARITY RAM STUCK-AT FAULTS TEST

       testing address 01045000 to 013FFFFF
...............


       testing address 01400000 to 017FFFFF
................

Test 142: PARITY RAM COUPLING FAULTS TEST

       testing address 01045000 to 013FFFFF
...............


       testing address 01400000 to 017FFFFF
................

Test 150: REFRESH TEST

This test will appear to stop, this is normal, please wait....

       testing address 01045000 to 013FFFFF
       Refresh Test ...............

       testing address 01400000 to 017FFFFF
       Refresh Test ................


File "CPU.DEX": $265E8 bytes loaded at $1040800
Module: CPU.DEX, Rev 2.92 : Built April 2, 1991   2:20:34 pm (EDT)
Description: CPU Diagnostic

Entering "CPU.DEX.1"
Test 10: Node ID Checksum
Test 100: Interrupt Controller tests
   Testing Programmable Interrupt Controller 1 IMR data patterns.
   Testing Programmable Interrupt Controller 2 IMR data patterns.
   Poll PICs with all IRQ inputs masked.
   Test for no interrupts with all IRQ inputs masked.
   Poll PICs with IRQ13 low.
   Poll PICs with IRQ13 high.
   Test for interrupt with IRQ13 input set.
   Test that PIC interrupts will reset.
Test 200: Timer tests
   Testing interval timer 1.
   Testing interval timer 2.
   Testing interval timer 3.
Test 300: SIO port 1 and 2 register pattern test
   Mode register B pattern test Sio chip 1.
Test 301: SIO RS232 port 1 test
   RS232 serial port data internal loopback.
Test 302: SIO keyboard port test
   Keyboard port serial data internal loopback.
   Keyboard port to keyboard serial data loopback.
***SIO took too long to receive a characer.
***SIO took too long to receive a characer.

********************************************************************************
?Error: (CPU.DEX/Test 302) SIO keyboard port test, Rev 2.92 Pass 1
December 4, 1996 03:48:53 (CUT )

During SIO keyboard receive first response character after disabling 
keyboard loopback mode.

Primary   FRU: CPU
********************************************************************************

Tim's note:  The failure above was due to the DSP3500 not having a keyboard,
and not having the self-test loopback connector in place.  It is normal to
fail.  Just type "N" for "next" to keep going.

Continue, Next, Repeat, Abort or Loop (C, N, R, A, L) : n
n
Test 303: SIO port 2 and 3 Register Test
   Mode register B pattern test SIO chip 2.
Test 304: SIO RS232 port 2 test
   RS232 serial port data internal loopback Channel C.
Test 305: SIO RS232 port 3 test
   RS232 serial port data internal loopback Channel D.
Test 400: Calendar tests
   Test calendar is updating.
   Test calendar data patterns.
   Test calendar address uniqueness.
   Test calendar time incrementing.
Test 518: Memory Data Bus test
The test is a memory bus test and assumes known good memory
Test 519: Memory Address Bus tests
The test is a memory bus test and assumes known good memory
Test 520: PMMU SRP data pattern test
   Test PMMU data paths.
Test 522: PMMU tests
   Test instruction execution with PMMU enabled.
Test 524: PMMU tests
   Test PMMU region tables can be indexed correctly by VA25-VA21.
   Test PMMU segment tables can be indexed correctly by VA20-VA15.
   Test PMMU page tables can be indexed correctly by VA14-VA10.
Test 526: PMMU tests
   Test PMMU table walks can occur over a full range of physical addresses.
Test 528: PMMU tests
   Test PMMU Supervisor protection bus error generation.
   Test PMMU allows writes to a write enabled page.
   Test PMMU does not allow writes to a write protected segment.
Test 530: PMMU tests
   Test PMMU PMAPe U and M statistics bits during a read.
Test 600: DMA I/O map pattern test

       testing address 00017000 to 000177FC 

         WORD transfers 
            using Test Data = 0000
            using Test Data = AAAA
            using Test Data = 5555
            using Test Data = FFFF
            using Test Data = 0001
            using Test Data = 0002
            using Test Data = 0004
            using Test Data = 0008
            using Test Data = 0010
            using Test Data = 0020
            using Test Data = 0040
            using Test Data = 0080
            using Test Data = 0100
            using Test Data = 0200
            using Test Data = 0400
.


       testing address 00017000 to 000177FC 

         WORD transfers 
            using Test Data = 0800
            using Test Data = 1000
            using Test Data = 2000
            using Test Data = 4000
            using Test Data = 8000
.


       testing address 00017000 to 000177FC
       USING THE ADDRESS AS DATA .
       USING THE ADDRESS COMPLEMENT AS DATA .

Test 601: DMA CA and WC register pattern test
   DMA 1 CA and WC register address uniqueness test.
   DMA 2 CA and WC register address uniqueness test.
Test 602: DMA 2 mem-to-mem pattern test
Test 603: DMA 2 mem-to-mem address test
Test 604: DMA 1 mem-to-mem pattern test
Test 605: DMA 1 mem-to-mem address test
Test 606: DMA I/O map addressing and pattern test
   Testing address as data in I/O map during dma.
   Testing a rippling 1 through a field of zeros in I/O map during dma.
Test 607: Bus DMA request independence test
   DMA BUS tests not executed no bus tester.
Test 608: Bus byte DMA memory-to-device data pattern test
   DMA BUS tests not executed no bus tester.
Test 609: Bus byte DMA memory-to-device parity error generation test
   DMA BUS tests not executed no bus tester.
Test 610: Bus byte DMA device-to-memory data pattern test
   DMA BUS tests not executed no bus tester.
Test 611: Bus DMA device-to-memory byte steering test
   DMA BUS tests not executed no bus tester.
Test 612: Bus word DMA device-to-memory data pattern test
   DMA BUS tests not executed no bus tester.
Test 613: Bus word DMA memory-to-device data pattern test
   DMA BUS tests not executed no bus tester.
Test 614: Bus DMA device-to-memory word steering test
   DMA BUS tests not executed no bus tester.
Test 615: Bus 1k byte DMA channel 0-3 device-to-memory test
   DMA BUS tests not executed no bus tester.
Test 616: Bus 512 word DMA channel 5-7 device-to-memory test
   DMA BUS tests not executed no bus tester.
Test 700: Basic Bus Tests
      Bus Tester not in place - no tests run.
Test 702: I/O Read/Write Bytes and Words
      Bus Tester not in place - no tests run.
Test 704: Memory Read Bytes and Words
      Bus Tester not in place - no tests run.
Test 706: Memory Write Bytes and Word
      Bus Tester not in place - no tests run.
Test 708: S Memory Read/Write bytes
      Bus Tester not in place - no tests run.
Test 712: Test Bus OSC signal for correct frequency
      Bus Tester not in place - no tests run.
Test 714: Verify bus IO_CH_CK signal
      Bus Tester not in place - no tests run.
Test 716: Bus mastership 6 word DMA memory/device tests
      Bus Tester not in place - no tests run.
Test 718: Bus mastership 6 word DMA (display memory)/device  tests
      Bus Tester not in place - no tests run.
Test 720: External master portion of the address map Test
      Bus Tester not in place - no tests run.
Test 722: Bus mastership demand 6 word DMA device-to-memory test
      Bus Tester not in place - no tests run.
Test 724: Bus mastership demand priority encoding DMA device-to-memory test
      Bus Tester not in place - no tests run.
Test 726: Testing parity logic during bus mastership in demand mode
      Bus Tester not in place - no tests run.
Test 800: Data Cache Memory Test
   test not valid for this cpu.
Test 801: Data Cache Condition Code Memory Test
   test not valid for this cpu.
Test 802: Cache Longword Read Test
   test not valid for this cpu.
Test 803: Cache Longword Write Test
   test not valid for this cpu.
Test 804: Cache byte, word and long Write Test
   test not valid for this cpu.
Test 805: Condition Code Generation Test
   test not valid for this cpu.
Test 806: Conditon Code Checker Test
   test not valid for this cpu.
Test 807: Tag Comparitor Test
   test not valid for this cpu.
Test 808: Flush Tag Test
   test not valid for this cpu.
Test 820: Pcache Tag Store Memory Test
   test not valid for this cpu.
Test 821: Pcache Tag Store Uniqueness Test
   test not valid for this cpu.
Test 822: Pcache Data Store Memory Test
   test not valid for this cpu.
Test 823: Pcache Data Store Uniqueness Test
   test not valid for this cpu.
Test 824: Pcache Data Coupling Test
   test not valid for this cpu.
Test 825: I/O Space Uncachability Test
   test not valid for this cpu.
Test 826: Pcache Fill Test
   test not valid for this cpu.
Test 827: Pcache Read Test
   test not valid for this cpu.
Test 828: Pcache Write Test
   test not valid for this cpu.
Test 829: Pcache Tag Compare Test
   test not valid for this cpu.
Test 830: Pcache Parity Test
   test not valid for this cpu.
Test 831: Pcache Invalidator Test
   test not valid for this cpu.
Test 832: Pcache Active Memory Test
   test not valid for this cpu.
Test 900: CGI self test
   CGI BUS tests not executed no CGI bus tester.
Test 901: CGI non-buffered mode tests
   CGI BUS tests not executed no CGI bus tester.
Test 902: CGI buffered mode tests
   CGI BUS tests not executed no CGI bus tester.
Test 903: CGI misc. tests
   CGI BUS tests not executed no CGI bus tester.
Test 904: HSI self test
   HSI BUS tests not executed no HSI bus tester.
Test 905: HSI non-buffered mode tests
   HSI BUS tests not executed no HSI bus tester.
Test 906: HSI buffered mode tests
   HSI BUS tests not executed no HSI bus tester.
Test 907: HSI misc. tests
   HSI BUS tests not executed no HSI bus tester.

File "WIN7B.DEX": $11F10 bytes loaded at $1040800
Module: WIN7B.DEX, Rev 3.0 : Built June 8, 1989   3:47:38 pm (EDT)
Description: Winchester Disk Diagnostic
File "WIN7B.DRVR": $9598 bytes loaded at $1052800

Entering "WIN7B.DEX.1"

        --DISK PARAMETERS--
    Controller:             0
    Drive:                  0
    Starting Cylinder:      1220
    Ending Cylinder:        1221
    Write Pattern:          WORSTCASE (4E65)
    Skip Badspots:          TRUE
    Write Protect:          FALSE

CONTROLLER 0, DRIVE 0 CONTAINS AN APOLLO FILESYSTEM
Western Digital 7000V Disk Controller 0
    Drive 0 has 1222 Cylinders, 15 Heads, and 18 Sectors.
Test 10: Controller Diagnostic Test
Test 100: Controller Interrupt Test
Test 110: Recalibrate Test
Test 120: Format Disk
Test 130: Forward Seek Test
Test 140: Hour-Glass Seek Test
Test 150: Read Test
Test 160: Random Seek-Read Test
Test 170: Read Disk Test
Test 180: Write Test
Test 190: Write/Read/Verify Disk Test
Test 200: Force Seek Error Test
Test 210: Illegal Command Test
Test 220: Force ECC Error Test
Test 230: Implict Read Test
Test 240: Implict Write Verify Test

Module: WIN7B.DEX, Rev 3.0 : Built June 8, 1989   3:47:38 pm (EDT)
Description: Winchester Disk Diagnostic

Entering "WIN7B.DEX.2"

        --DISK PARAMETERS--
    Controller:             0
    Drive:                  1
    Write Pattern:          WORSTCASE (4E65)
    Skip Badspots:          TRUE
    Write Protect:          FALSE

Western Digital 7000V Disk Controller 0
    Drive 0 has 1222 Cylinders, 15 Heads, and 18 Sectors.
Test 10: Controller Diagnostic Test
Test 100: Controller Interrupt Test
Test 110: Recalibrate Test
Test 120: Format Disk
Test 130: Forward Seek Test
Test 140: Hour-Glass Seek Test
Test 150: Read Test
Test 160: Random Seek-Read Test
Test 170: Read Disk Test
Test 180: Write Test
Test 190: Write/Read/Verify Disk Test
Test 200: Force Seek Error Test
Test 210: Illegal Command Test
Test 220: Force ECC Error Test
Test 230: Implict Read Test
Test 240: Implict Write Verify Test

Module: WIN7B.DEX, Rev 3.0 : Built June 8, 1989   3:47:38 pm (EDT)
Description: Winchester Disk Diagnostic

Entering "WIN7B.DEX.3"

        --DISK PARAMETERS--
    Controller:             0
    Drive:                  2
    Write Pattern:          WORSTCASE (4E65)
    Skip Badspots:          TRUE
    Write Protect:          FALSE

Western Digital 7000V Disk Controller 0
    Drive 0 has 1222 Cylinders, 15 Heads, and 18 Sectors.
Test 10: Controller Diagnostic Test
Test 100: Controller Interrupt Test
Test 110: Recalibrate Test
Test 120: Format Disk
Test 130: Forward Seek Test
Test 140: Hour-Glass Seek Test
Test 150: Read Test
Test 160: Random Seek-Read Test
Test 170: Read Disk Test
Test 180: Write Test
Test 190: Write/Read/Verify Disk Test
Test 200: Force Seek Error Test
Test 210: Illegal Command Test
Test 220: Force ECC Error Test
Test 230: Implict Read Test
Test 240: Implict Write Verify Test

Module: WIN7B.DEX, Rev 3.0 : Built June 8, 1989   3:47:38 pm (EDT)
Description: Winchester Disk Diagnostic

Entering "WIN7B.DEX.4"

        --DISK PARAMETERS--
    Controller:             0
    Drive:                  3
    Write Pattern:          WORSTCASE (4E65)
    Skip Badspots:          TRUE
    Write Protect:          FALSE

Western Digital 7000V Disk Controller 0
    Drive 0 has 1222 Cylinders, 15 Heads, and 18 Sectors.
Test 10: Controller Diagnostic Test
Test 100: Controller Interrupt Test
Test 110: Recalibrate Test
Test 120: Format Disk
Test 130: Forward Seek Test
Test 140: Hour-Glass Seek Test
Test 150: Read Test
Test 160: Random Seek-Read Test
Test 170: Read Disk Test
Test 180: Write Test
Test 190: Write/Read/Verify Disk Test
Test 200: Force Seek Error Test
Test 210: Illegal Command Test
Test 220: Force ECC Error Test
Test 230: Implict Read Test
Test 240: Implict Write Verify Test

File "FPU.DEX": $1A990 bytes loaded at $105C000
Module: FPU.DEX, Rev 2.2 : Built August 1, 1988   5:56:16 pm (EDT)
Description: FPU Diagnostic

Entering "FPU.DEX.1"
Test 1: Status/Control Register
Test 2: General Instruction
   0 instructions tested.
 100 instructions tested.
 200 instructions tested.
 300 instructions tested.
 400 instructions tested.
 500 instructions tested.
 600 instructions tested.
 700 instructions tested.
 800 instructions tested.
 900 instructions tested.
1000 instructions tested.
1100 instructions tested.
1200 instructions tested.
1300 instructions tested.
1400 instructions tested.
1500 instructions tested.
1600 instructions tested.
1700 instructions tested.
1800 instructions tested.
1900 instructions tested.
2000 instructions tested.
2100 instructions tested.

End of Pass 1:  1 Errors, 0 Soft Errors, 0 Warnings

                         Error Summary
                         -------------

Group  FRU #1        Error            Detected
Nbr    FRU #2        Count  Severity  By
-----  ------        -----  --------  --------
1      CPU           1      HARD      CPU.DEX                       
       none        

0   soft errors
1   hard errors
1   entries in error log

DEX> quit
quit
 Use >"G 1003000" to Restart DEX, >"G 1003004" to Reenter
 - Exiting DEX (Exec/Quit Cmd)
S    10049AE       2704         BC
 1DAEr4: 4E4F
>

send comments to:
hunkler@goodnet.com