Digital PDFs
Documents
Guest
Register
Log In
EY-2217E-SG-1
November 1985
388 pages
Original
10MB
view
download
Document:
Guide to VAX-11/780 System Troubleshooting
Order Number:
EY-2217E-SG
Revision:
1
Pages:
388
Original Filename:
OCR Text
EY-2217E-SG-0001 Guide to VAX-11/780 System Troubleshooting FOR INTERNAL USE ONLY First Printing, November 1985 Copyright © 1985 by Digital Equipment Corporation. All Rights Reserved The material in this document is for informational purposes only and is subject to change without notice; it should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. Some portions of this manual are copied from other manuals, microfiche, etc. The reason for this is to provide as much information as possible in a single, easily cariied manual. UNIX is a trademark of AT&T. The following are trademarks of Digital Equipment Corporation: mnmnama DEC DECmate DECOS DECwriter DIBOL LSI MASSBUS PDP P/OS Professional Rainbow RSTS RSX RT UNIBUS VAX VAXstation VMS VT Work Processor Contents Page Pref ace ....................................................... xi Section Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Troubleshooting Approach •••••••••••••••••••••..••••••••••••••• Research and Define the Problem .••.••••••••••••••••••• Venture a Testable Guess ••.••.•••.•••••.•.••••••.••••• Set-up a Test Case • • • . • • . • • • • • • • • • • • • • • . • • . • • • • • • • • • • • Predict the Results •••.•••••••.•.•..•••..•••••••.••••• Conduct the Test Case •••.•••••••••••.•••••••••.••••••• Evaluate the Definitio~ ••••••.••••••.••.•••••••••••••• Research and Refine the Definition ••••••••••••••.••••• Return Non-Failing Units •.•••.•.•••••.••..•••••••••••• Replace Failing Units •••••••••.•••••••••••.•••••..•••• Repeat Until Problem is Solved ..•.••.••••••..••.•••••• xv xvi xvi xvii xviii xviii xix xix xx xx xx System Log Books • • • • • • • • • • • . • . • • • • • • • . . • • • • • • • • • • • • • • . • • • • • • • • xxi Sources of Information • • • . • • • • • • • • . • • • • • • • • • • • • • • . • • • • • • • . • • • • xxiii Maintaining Control ••••••••.•.••••••••.•••••••.•.•••.••.•••.•• xxv Section I. VAX-11/780 Troubleshooting Outline •••••••••••••••••••• 1-1 VAX-11/780 Troubleshooting Basics 1-2 VAX-11/780 System Troubleshooting Tools •.•.•••••...••••••.•••• 1-5 VMS Operating System Crashes or Bugchecks .•.••••.•...•••••.••• 1-6 Machine Checks . • • • • • • • • • . • • • . • . • • • • • • . • • • • • • . • • . • • • • . • VAX-11/780 Machine Check Error Logout •••..••.• VMS Fatal Bugcheck/Machine Check Example •••••• ESSAA Machine Check Example •••••...••••••••••• Breakdown of VMS Machine Check Printout ••.•.•. Getting Started on Machine Checks •••••.•.••... Machine Check Logout Informatio~ ..••.••.•••••• Summary Parameter Description .•••••••••••••••• Bit Breakdown of Stack entries ••••.••..•...••• Machine Check Logout Breakdown Flowchart •••••• 1-9 1-10 1-13 1-14 1-15 1-16 1-17 1-17 1-18 1-22 Cache Parity Errors ••••..••••.••.••••..•.••••• Problem Areas if Cache "DATA Par Err" ••••.• Problem Areas if Cache "TAG Par Err" •.••••• Disabling CACHE by Backplane Jumpers ••••.•• ID Register #lE ••••.•..•••••....•.....••••• 1-34 1-35 1-36 1-36 1-37 lll Translation Buffer Parity Errors •••••••.•••... Problem Areas if TB "TAG Par Err" •••••••••• Problem Areas if TB "DATA Par Err" ••••••••• ID Reg i st er # 12 •••••.••.••••••..•...••••••• IO Register #13 •••••.••••.••••...•••••.••.• 1-38 1-38 1-39 1-41 1-43 Control Store Parity Errors •.••••••••.•••••••• ID Register #0C •••••.•••••••••••••••••.•••• ID Reg i st er # 2 0 . . •••••..••••••••••••••••••• Voltages to Micro-code Boards •..•.••••••... M8235 LED Description ••.•••••.••..••••.•.•• CS Bus Groups and CS Bit Breakdown •.••••..• Chart Showing "Bus CS" Bits to Boards •••••• Chart Showing "Bus CS" Groups to Boards •••• Using the Microcode Sync Point ..••••••••••• Control Store Bit Backplane Pin Layout •••.• 1-45 1-47 1-48 1-49 1-49 1-50 1-51 1-52 1-53 CPU Read Timeouts/Error Confirmation .•••••••••• ID Register #19 •••..••••••••••.••••.•••••.• ID Register #lA •••••••••••••••.•.••..•••••• Breaking Down Physical Byte Addresses ••.••• Memory Array Physical Byte Addresses .••••.. NEXUS Physical Byte Addresses •••••••.•••.•• UNIBUS Physical Byte Addresses ••.•..••••••• RH780 External Reg. Phy. Byte Addresses ••.. RH780 Internal Reg. Phy. Byte Addresses •••• Physical Byte Address Breakdown Procedure •• I/O Address Ranges •.•.••..•.••.•.••.•...... Physical Memory Array Address Range •••.••.• DW780 Register Offsets ••.••..•.••...••••... RH780 Internal Register Offsets ••.••.•.•••• RH780 MASSBUS (EXTERNAL) Register Offsets •• Memory Array Address Bit Breakdown ••••••.•• "Timeout Address" ID Reg. Bit Breakdown •••• Physical "BYTE" Address Space Charts ••••..• Physical "LONGWORD" Address Space Charts .•• MS780-C/A Longword Address Charts ••.••.•••• MA780-A Longword Address Charts •••.•••••.•. MS780-E Longword Address Charts .•.•••.••••• Internally Interleaved •.•.•.•••.•••••• No Internal Interleaving ••.•.•••.••... Externally Interleaved •••.•.....•.•••• Converting UNIBUS to Longword Addresses •••. Converting Longword to UNIBUS Addresses .••• Converting Physical Byte to UNIBUS Addr •••• Converting UNIBUS to Physical Byte Adar •••• DW780 UNIBUS Longword Address Chart ••..•••• DW780 UNIBUS Physical Byte Address Chart .•• 1-55 Read Data Substitute Faults and Aborts •.••.••. MS780A/C Memory RDS Error Indications .••..• MS780E Memory RDS Error Indications ••.•...• MA780 Memory RDS Error Indications •.•.••.•• IV 1-54 1-57 1-60 1-60 1-60 1-60 1-61 1-61 1-6-1 1-62 1-64 1-64 1-65 1-66 1-67 1-68 1-68 1-69 1-77 1-81 1-82 1-83 1-83 1-84 1-85 l-86 1-87 1-88 1-89 1-90 1-91 1-92 1-93 1-93 1-93 Micro-code Not Supposed to Get Here Faults •••• ID Register # 2 0 ............................. . Micro-PC Wirelist and Slot Chart ••••••••••• 1-94 1-95 1-95 CPU Double Error Halts ••••••••••••••••••••••••••••••.•••.••••• Double Error Halt Error Information •••••••••.••••••••• CPU Detected Error VALIDITY CHECKS .••••••••••••••••••• CPU DBLE-ERR HALT Flowchart ••••••••••••••••••••••••••• VAX-11/780 "ID" Register ERROR Information •••••.•••••• Example of DOUBLE ERROR HALT and Hardware Dump •••••••• 1-97 1-99 1-100 1-101 1-105 1-107 Interrupt Stack Not Valid Halts 1-109 Kernel Stack Not Valid Aborts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-113 Other Types of Crashes 1-115 VMS Operating System Hangs •••••••••••••••••••••.•••••••••••••• 1-119 Operating System Functional Problems •••••••••••••••••••••••••• 1-123 Operating System Backup or Rebuild Problems .••...••••••.•••••• 1-127 Boot i n g Prob 1 ems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , , ., Power-Up Booting Outline ••••••••••••••••.••••••••••••• Troubleshooting Booting Problems •.•••••••.•••••••••••• Overview of LSI-11 Subsystem Bootstrapping .••••••••••• Overview of VAX CPU Bootstrapping •••••••••.••••••••••• 1-131 1-132 1-134 1-136 1-137 Front-End Subsystem Problems •••••••••••••••••••••••••••••••••• LSI Subsystem Traps •••••••.••••••••••••••••••••••••.•• TRAP Vector Assignments •••.••••••••••••••••••••••••••• LSI/PDP-11 Trap Catcher Setup Procedure ••••••••••••••• Power Fa i 1 Traps •••..•••••.••••••.•••••.•••••••••••••. Gathering an LSI Software DUMP •••••••••••••••••••••••• Analyzing LSI Software Dumps •••••••••..•••••••.••••••• LSI-Traps Software Dump Analysis Flow c•··············· VAX Front-end Subsystem Q-Bus Address Assignments ••.•• CIB Q-Bus registers Bit Breakdown .•••••••••••••••••••• PDP-11 Instruction Set •.••.••••••••.•.•••••••••.•.•••• PDP-11 Processor Status Word Breakdown •••••••••••••••• PDP-11 Addressing Mode Description •••.••••.••.•••••••• 1-139 1-140 1-141 1-142 1-142 1-143 1-144 1-145 1-146 1-147 1-148 1-149 1-149 Unexplained Reboots and Power Restarts ••.••••••••••••••••••••• Symptoms of Spurious Reboots and Power Restarts ••••••. Isolating Problem Area •.••.•.••.••••••••••••••.••••••• BPOK/BDCOK Connections on KA780 Backplane ••••••••••••• AC/DCLO H7100 Supply Connections to KA780 Backplane ••• Voltage pins on the KA780 Backplane •••••••••••••.••••• Q-Bus Connectors on KA780 Backplane and Wirelist •••••• 1-151 1-152 1-154 1-155 1-155 1-158 1-159 Problems on Certain Device(s) 1-161 ~von' t 1-165 '! ••••••• Power-Up . • • • . • • • • . • • • . . • • . . . . . • • • • • • • . • • • . • • • • • • • • • • • • • • v Something's Burning ••••.•.•..•....•..•.....•.•...•..••.••....• 1-167 Problems Building VMS . . . . . . • . . . . • . . . . . • . . . • . • . . . • . . . . . . . . . . . . . 1-169 Non-Duplicatable, Intermittent and What To Do Now Problems ..•. 1-171 Vibration Testing 1-175 Operating Temperature Change Testing ..•.•..•..•..•.•.......... Heat Testing . . . . . • . • . . . . . . . . . . . . . • . • . . • . . . . . . . . . . . . . . . Testing By Cooling . . . . . . . . . . . • . . . . • • . . . . . . . . . . . . . . . . . . 1-177 1-178 1-179 Margin Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . • . . • . . . . • . . . . . . C1 o c k Ma r g i n s • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • Voltage Margins . . . • . . . . . • . . . . . . . • . . • • . . . . . . . . . . . . . . . . . 1-181 1-182 1-182 DW 7 8 0 Errors • . . . . • . . . . . . . . . . . . . . . . . . . . . . . . . . .• . . . . . • . . . . . . . . . . . SBI Parity Fault . . • . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . SBI Write Sequence Fault .•.•...•......••.•••...••...•. SBI Unexoected Read Data Fault . . . . • . . . . . . • . . . . . . . . . . • . SBI Inte~lock Sequence Fault ...............•.....•••.. SB! Multiple Transmitter Fault ...•.....•........••.... Adapter Power Down .•.•.•..•••....•.•.••......•....•••. Adapter Power Up . . . . . . . . . . . . . . . • . . . • . . . . . . . . . . . . . . . . . . UNIBUS Power Down .•...........•..•••.......•.•........ UNIBUS Power Up .•...•............•.....•...•...•....•. Read Data Substitute . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . . . . Corrected Read Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Command Transmit Error . . . . . . . . . . . . . . . . . • . . . . . . . . . . . . . . Command Transmit Timeout . . . . . . . . . . . . . • . . . . . . . . . . . . . . . • Data Path Parity Error . . . . . . . . . . . • . . . . . . . . . . . . . . . . . . . . Invalid Map Register . . . • . • . . . . . . . . . . . . . . . . . . . • . . . • . . . . Map Register Parity Fail ........•.•......•.....•.....• Lost Error Bit • . . • . . . . . . . . • . . • . . . . . . . . . . . . . . . . . • . . . . . . UNIBUS Select Timeout ...........•.•••.•..•..........•. UNIBUS SSYN Timeout ..•....•..•..•........•.....•...... Buffer Transfer Error ............•.•....•.......•.•..• S.B.I. Faults . . . . . . . . . . • . . . • . • . . . . . . . . . . . . . . . . • . . . . • . . . . . . . . . . Parity Fault Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write Sequence Fault Description .••..••....•..•....•.. Unexpected Read Data Fault Description . . . . . . . . . . . . . . . . Interlock Sequence Fault Description •.....•......•.... Multiple Transmitter Fault •........•..•..•..•..•....•. Troubleshooting S.B.I. FAULTS •••.........•.......•...• S.B.I. SILO Interpretation ....••.•...........•..•..... CONFIGURATION/STATUS Register Interpretation .........• 1-183 1-184 1-184 1-184 1-184 1-184 1-185 1-185 1-185 1-185 1-185 1-185 1-185 1-186 1-186 1-186 1-186 1-186 1-187 1-187 1-187 1-187 1-189 1-190 1-190 1-190 1-190 1-191 1-191 1-193 1-195 Troubleshooting Using the SYSTEM CONTROL BLOCK (SCB) ...•....•• HALTED AT xxxxxxxx . • . . . . . . . . . . . . . . . . • . • . . . . . . . . . . • . . . . Building and Using a VAX Trap Catcher . . . . . . . . . . . . . . . . . VMB V4.02 Trap Catcher Generation .•....•.•.........•.. ?ILL I/E VEC Errors . . . . . . . . . . . . . . . . . . • . . . . . . . . . . . • . • • • System Control Block Vector Assignments Chart .••...•.. 1-197 1-198 1-199 1-199 1-200 1-201 Read Data Timeout • . • . • . • • • . . . . . • • . . . . . • • . . . • • • " .. ••••-=; vi Section II. VMS Information 2-1 VMS SYSGEN Error Control Parameters BUGCHECKFATAL BUG REBOOT DUMPBUG 2-2 2-2 2-2 2-2 VMS CRASH HANDLING •••••••••••••••••••••••••••••.••.. Non-Fatal Bugchecks •••••••.•••••••.••••••••• Fatal Bugchecks in Supervisor and User Mode~ Fatal Bugchecks in Kernel and Executive Modes 2-3 2-3 2-3 2-4 Assigning Addresses and Vectors to UNIBUS Devices •...•••.••••• 2-5 UNIBUS Device Floating Address Table 2-6 UNIBUS Device Floating Vector Table 2-6 SYSGEN Commands •••••••• LOAD command CONNECT command RELOAD command SHOW/ADAPTER SHOW/CONFIGURATION SHOW/DEVICE •••••.• AUTOCONFIGURE ALL CONFIGURE command CONNECT CONSOLE CREATE command DISABLE CHECKS ENABLE CHECKS EXIT ••••••.••• INSTALL command SET/OUTPUT command SET/STARTUP command SHARE MPMn command SHOW parameter command SET parameter command SHOW/UNIBUS USE command WRITE command 2-7 2-7 2-7 2-8 2-8 2-8 2-8 2-8 2-9 2-9 2-9 2-9 2-10 2-10 2-10 2-10 2-10 2-10 2-10 2-11 2-11 2-11 2-11 Using SYSGEN to determine UNIBUS device Addr/Vec Assignments 2-12 LOCAL CONSOLE Boot Co~mand Files DB0BOO.CMD RESTART.CMD DSC or BACKUP Boot Command File RESTAR.ILV RMEM. . ....•. 2-13 2-13 2-14 2-14 2-14 2-14 Vll Section III. Special Command Files/Programs •.•••••..•.••..••••.•• 3-1 Hardware Dump File Maintenance/Generation •...••••••.•...•.•••• 3-2 Version 3.x VMS Dump File Generation 3-3 Version 4.x VMS Dump File Generation 3-5 DUMP. Command File 3-7 HANG. Command File 3-8 SAVEDUMP.COM Command File •••••••.••••••••••••••••.••••••••••.• 3-9 SPEAR BATCH Command File • • . . • • • • • • • • • • . • • . • • • • . . • • . • • • . . • . • • • • 3-11 Spear Batch Control •••......•••.••..••.•••.••.....•••.• 3-12 SDA.COM • • . • • • . . • . • . . • • • . • • • • • • . . . • • . • • . . . . • . • • • . • . • . . • . . . . • . • • 3-13 F P 7 8 0 Co n t r o 1 P r o g r a.m s •••••••••••••••••••••••••••••••••••••••• FPAOFF.MAR ••••.•••.•••.•...••..••••••••.•••..•..•..••• FPAON. MAR ••••.•.•••.••..••......••••.•.•••••••..••••.• 3-17 3-18 3-19 VAX-11/780 Basics ..•.••••..•.•.•••.•..•••...•.•.•••.• 4-1 VAX Virtual and Physical Address Space ........•.•..•........•. 4-2 VAX-11/780 General Registers Assignments ......•.•..•.........• 4-3 Subroutine Usage and Operation •••...•...••........•••........• 4-4 Procedure Usage and Operation ....•..•..•.••.•.•.•...•••.•..•.. Entry Mask • • • • • • • • . . • • . . • . • . • . . . • • • • . . . • • • . . . • . . . . . . • • Argument List • . . • . . . . • • . . . . . . . . • • • • . • • • • . . . . . • . . . . . • . . 4-5 4- 6 4-6 "CALLG" Procedure Call Operation 4-7 "CALLS" Procedure Call Operation 4-7 "RET" Procedure Return Operation 4-9 Procedure Call (CALLS/CALLG) Notes •.••••..••......••..•.•.••.• 4-10 Return from Procedure (RET) Notes ••••.••..••..•...•.••••..•..• 4-10 Procedure Call Stack Layout •••..•••••.......••.•••.•••...•..•• 4-11 VAX-11/780 Native Addressing Modes ....••••..•.•..•...•........ Indexing Mode •.....••...........•..•...•.••.........•. PC Mode Addressing ••..........•....•...•..•...•.•...•. 4-12 4-14 4-16 Section IV. Vlll Section v. Buses Used on VAX-11/780 Systems •.•••••••..••••••••••• 5-1 Synchronous Backplane Interconnect •••••.••••••••••••...••..••• S.B.I. Pin Layout •••...•••••••••••••••••••.••••••••••• SBI/CPU Time State Equivalents •••••••.••••••••••••••.• SBI T0 Clock Time • • . • • . • . . . • • • • . . • • • • • • • • • • • • • • • • • • • • • SBI Tl Clock Time • . • • • . • . • • • • • • • • • • • • • • • • • • • • • • . • • • • • • SBI ·r2 Clock Time •••...•.•••••••.•.••••••••.•.•••.•.•• SBI T3 Clock Time • • • • • • • • . • • • . • . • . • • • • . • • • • • • • • • • • • • • • 5-3 5-4 5-5 5-5 5-5 5-5 5-5 S.B.I. Write Transfer Example to Show S.B.I. Timing •.••••••••• 5-6 VAX-11/780 Internal Data Bus •••••••••••••••••••••••••••••••••• Chart Showing Modules Fed by the ID Bus Bits •••••..••• ID Bus Parity Bits Chart Showing Who Uses Them •.•.•••• ID Bus KA780 Backplane Pin List ••••••••••••.•••••••••• 5-7 5-8 5-9 5-9 Section VI. UNIX Error Reporting .••.••••..•••••••.••.•••••.••••••• 6-1 This section will be added to a future release of this manual. Section VII. Miscellaneous Information ••••.•..•.•••.••.••••••••••• 7-1 Using EVSBA.EXE, the Diagnostic Autosizer .•••••.••••.••••••••• EVSBA Autosizer Default Mode Operation ••••.••••.•••••• Autosizer Manual or Self-test Mode Operation ••••.••••• Autosizer Commands for Manual or Self-test Mode ••••••• Re ad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Size List At ta ch ........................................... .. 7-2 7-3 7-3 7-4 7-4 7-4 7-4 7-4 7-4 7-4 7-4 7-4 Standard Performance Error Analysis Reporting •••.••••.•••••••• How to Initiate SPEAR •.•.••••....•••.•••.••.•••.•••••• Summary of Questions asked by SPEAR ••.•.••.••..••••••. 7-5 7-8 7-9 Examining UNIBUS Registers ••••••••...•••••.•••.••••••••••••••• 7-10 LPll Diagnostic Check Under VMS ••••••••••.••..•.•••••••.•••••• 7-10 To Restore LPll Queue 7-10 Defining and Starting Print Queues (LPll) 7-11 Defining and Starting Terminal Queues 7-11 "Unexpected UNIBUS Adapter Interrupt" 7-11 He 1 p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Wr it e ••••••••••••••••••••••••••••••••••••••••• Change .••••••...••••.••••.•••.•••••••••••••••• Ex it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX Interleaving Memories 7-12 Booting with CACHE Disabled 7-12 H7100 Power Regulator LEDs 7-13 M8232, Clock Board, Jumpers 7-14 LSI-11 Controls and Indicators 7-15 VAX-11/780 Controls and Indicators 7-16 MS780/MA780 Error Correction Logic 7-17 EVKAA. EXE ••••••••••••••••••••••••••••••••••••••••••••••••••••• 7-17 SECTION VI I I. NEXUS Register Bit Definitions 8-1 DW780 Registers .•.••••••••.•..•••••••••••••••••••••••••••••••• Configuration Register Control Register •••.•• St at us Reg i st er • • • • • • •• Diagnostic Control Register Failed MAP Entry Register Failed UNIBUS Address Register •••••• Buffer Selection Verification Registers 0-3 BR Receive Vector Registers 4-7 Data Path Register 00-15 MAP Registers 000-495 RH780 Registers 8-3 8-7 8-11 8-17 8-21 8-23 8-25 8-27 8-31 8-35 8-39 8-39 8-43 8-45 8-51 8-53 8-55 8-59 8-61 Configuration/Status Register Control Register •••••..•. Status Register •.••••... Virtual Address Register Byte Count Register ..•.••• Diagnostic Register Selected MAP Register Command/Address Register 8-63 MS780-E Registers Configuration Configuration Configuration Configuration 8-3 ........ ....... Register "A" Register "B" Registers "C and D" Registers "E and F" x ...... 8-63 8-67 8-71 8-73 P R E F A C E This Trouble-shooting Manual was written as an aid to D.E.C. Field Service Engineers for VAX-11/780 System problems. This outline is not intended to tell you what module to replace, but instead, is meant to lead you in the right direction. It is assumed that you are familiar with at least the following: 1. 2. 3. 4. VAX-11/780 Processor a. Understand CONSOL.SYS command language. b. Know Physical and Electrical Configurations. c. Know HEX. d. Can examine/deposit Memory,I/O Regs.,and ID Regs. VMS Booting a. Know how to boot. b. Have a basic understanding how boot is done. Basic use of VMS such as: a. Able to login. b. Able to run "SYE" or "SPEAR". c. Able to use an editor. Know how to run all VAX-11/780 Diagnostics. Often times referen\.e is made to "DUMP., HANG., & SDA.COM" command files within this outline. These files are files that I ha~e written to do specific functions. You can use the files I have written or you can create similiar files yourself. I have also written s.everal VMS DCL command files that are meant to aid D.E.C. Field Service in doing certain time-consuming functions. The "DUMP. and HANG." command files are CONSOL.SYS command files that should be generated by D.E.C. Field Service and placed on the "LOCAL CONSOLE Floppy". The purpose of these two command files are as follows: DUMP. Is a command file that dumps all the Hardware Register contents to the Console Terminale This coro.mand file is executed as an indirect command file from CONSOL.SYS. The purpose of this command file is to provide D.E.C. Field Service with additional trouble-shooting information concerning crashes that bring the software down and control is passed back to the CONSOL.SYS program. HANG. Is a command file that dumps all the Hardware Register contents, a few PC's during single step mode (to determine Hung loop), and then Xl I I. initiates the "CRASH." Local Console Floppy command file so that a Software Dump will be taken. The purpose of this command file is to provide D.E.C. Field Service with additional trouble-shooting information concerning system software hangs. SDA.COM The "SDA.COM" file is a VMS DCL command file that creates an output file that contains basic information taken from a specified Software Dump file. This file should be used, by you, when you are gathering information about a Software Dump to take back to your Support Group. SAVEDUMP.COM It is very inportant for the Customer to save the Software Dump file, "SYS$SYSTEM:SYSDUMP.DMP", every time the system is rebooted due to an Operating System crash. The easiest way to assure thai this happens on every crash is to put the appropriate commands, to do the save, in the "SYS$SYSROOT:[SYSMGR]SYSTARTUP.COM" command file. I have generated a command file that the Customer can execute from the SYSTARTUP command file that will save the SYSDUMP.DMP file in the area that the Customer specifies. This command file, SAVEDUMP.COM, will name the saved file with a name that specifies the date and time of the reboot, after the crash. By using. SAVEDUMP.COM, it is much easier to match Software Dumps to the appropriate crash. This GUIDE references two handbooks extensively. These handbooks should always accompany you when you are working on a VAX-11/780 System. These handbooks are: VAX Maintenance Handbook, VAX Systems VAX Maintenance Handbook, VAX-11/780 #EK-VAXVl-HB-??? #EK-VAXV2-HB-??? Any suggestions as to how to improve this manual will be appreciated. Roy D. Fulton D.E.C. Field Service Xll SECTION Description ******************* SECTION I of this manual is the actual "VAX-11/780 Trouble-Shooting" Outline. This section should be used as a guideline as to how to attack VAX-11/780 System problems. SECTION II of this manual contains information about the VMS Operating System, the Command files used to boot VMS, SYSGEN commands, Unibus autoconf iguration requirements, etc. SECTION III of this manual contains information concerning special command files and special programs. SECTION IV of this manual contains information on VAX Architecture that may be needed as a reference while trouble-shooting. SECTION V of this manual contains information about the different buses used on the VAX-11/780 systems. SECTION VI of this manual contains information about the UNIX Operating System errors. SECTION VII of this manual contains miscellaneous tidbits of information. SECTION VIII of this manual contains the defintions of the bits in the NEXUS registers. The definitions for the CPU's registers are contained in the VAX Maintenance Handbook for the VAX-11/780. This section was copied from various VAX-11/780 Nexus Hardware manuals and microfiche. Xlll T R 0 U B L E - S H 0 0 T I N G A P P R 0 A C H ************************************************** xv Trouble-Shooting Approach ************************* The following pages are an Outline as to some of the things that you should do for certain types of VAX-11/780 problems. It is assumed that you will use a sound trouble-shooting approach to fixing the problem. The following Trouble-Shooting Method is a proven approach that can be tailored to every situation. The correct steps to take in trouble-shooting are: 1. RESEARCH and DEFINE the PROBLEM. The problem should be diagnosed to a certain type of problem that happens under certain types of conditions. This must be done so that you will be able to recognize the problem on the next failure even though it may not exhibit exactly the same symptoms on the next failure. The Definition of the Problem does not necessarily identify the failing unit or subsystem, but simply describes the problem symptoms. Do not proceed to the next step until this is accomplished. Enter all error symptoms in the Log book. 2. VENTURE a Testable EDUCATED GUESS as to the PROBLEM AREA. From the information examined in step #1, make an educated guess as to where within the VAX-11/780 SYSTEM the problem lies. In other words, what subsystem or unit do you believe the failure to be in based on past experience, training, and the failure data information examined. If you are not able to make an educated guess at this time, it may be necessary to either wait for another failure in order to obtain more information, and/or you may need to ask your sources for aid in diagnosis. xu1 If unable to do this step, be sure that error information catching facilities are in place, wait for another failure, and then go back to step #1. The error catching facilities you· may want to implement for the VAX-11/780 SYSTEM may be as fallows: a. Set the SYSGEN parameter "BUGREBOOT" to a "0", so that a Hardware Register Dump may be taken at failure time. b. Set the SYSGEN parameter "DUMPBUG" to a "l", so that the Software Dump will be taken. c. Set the SYSGEN parameter "BUGCHECKFATAL" to a "l", so that NON-FATAL Bugchecks will be treated as Fatal Bugchecks. You probably don't want to do this without also setting "BUGREBOOT" to a "0 n. d. Education of customer as to how to dump the Hardware Registers. e. Making sure that the Customer's SYSTARTUP.COM file saves the Software Dumps or at least make sure that the Customer has Software Dump Saving procedures in place. f. An Error Log report should be taken, and available on Hardcopy, of the time prior to and at time of the failure(s). Be sure you enter into the Log Book what your evaluation is and anything else you may have done. 3. SET-UP an TEST CASE in order to isolate the PROBLEM. Using your knowledge of the system, past experience, and your Support resources (if you need them), make a decision as to what area of Hardware or Software should be replaced or swapped first. This replacement or swapping should be done in a educated manner. DO NOT swap or replace parts within the believed problem area in a haphazard manner. You should be able to pick out the most suspectable area. xvn Once you have decided what_parts to replace or swap, MARK in a CLEAR easily defined METHOD each part that will be used in the test case in such a way that you and your counterparts will readily be able to determine the following: a. The ORIGINAL SOURCE of EACH UNIT involved in the test case swap or replacement. b. The DATE and TIME of the SWAP or REPLACEMENT of EACH UNIT involved in the test case. This may be accomplished by either tagging the appropriate units or by marking each unit with a different marking and then entering the appropriate information in the SYSTEM's LOG Book by referencing these markings. This is VERY IMPORTANT. 4. PREDICT the RESULTS of the TEST CASE. Make an educated prediction as to what the results of the test case will be. In other words, if you swapped a couple of units within the SYSTEM or DEVICE, what type of failure do you suspect will happen if the expected failing unit does indeed fail again. It is very important that this information be recorded in the SYSTEM's LOG Book, so that you and your counterparts will know what to suspect upon the next failure. 5. CONDUCT the TEST CASE. Perform the appropriate changes in order to conduct the test case as planned. Be sure to log everything in the SYSTEM'S LOG Book. xvm 6. EVALUATE the DEFINITION of the PROBLEM upon the NEXT FAILURE. Now that you have more informatron to work with, does this failure still fit under the first definition of the problem? If it doesn't, then proceed according to the following: a. Is there more than one problem? If there is more than one problem, each should be researched, defined, tested, etc., separately. Be sure to label all failure information so that you will know what information goes with what failure. b. Has another problem been introduced as a result of units used in the test case? One of the units that you inserted into the SYSTEM may have gone bad. If so, then you will have to evaluate whether to insert another new unit and wait for another failure or should you just replace the original and conduct another test case. If it does fit under the same definition, continue to step #7. 7. RESEARCH and REFINE the DEFINITION of the PROBLEM. After each failure, it may be necessary to redefine the problem or to refine.the definition of the problem due to the contents of the problem's dumps. Refine the problems definition at this point based on past experience, knowledge of the failing unit, input from your Support resources, and the added problem failure information taken at the last failure. In other words, you may be able to give a better definition to the problem, at this point in time, that will make it easier to determine where the problem lies and easier to determine when it is fixed. Be sure to enter this information in the SYSTEM's LOG Book. Be sure to enter into the Log Book exactly how each failure occurs and exhibits itself. XlX 8. RETURN NON-FAILING UNITS to their ORIGINAL POSITIONS. It is very important to return the non-failing units, moved as a result of the test case, to their original positions as soon as the test case is completed. This should be recorded in the SYSTEM's LOG Book in order to prevent confusion in the future. This step is probably the most often ignored step even though it is one of the most important steps. 9. REPLACE FAILING UNITS with SPARES. Replace the failing units with spares. Since step #8 was done, the new unit (a spare) should be going into the ORIGINAL position of the failing unit. This information should be recorded in the SYSTEM LOG Book, and an entry should be made on the appropriate DEVICE's LOG Sheet. 10. REPEAT UNTIL the PROBLEM is SOLVED. Repeat steps 2 thru 9 until the problem is solved. When the Problem is declared solved should be a predetermined period of time after the last failure. This time must be mutually agreeable between D.E.C. Field Service and the Customer. The determination of how long the system must run, without the defined problem happening, should be primarily based upon two things. They are: a. The T.B.F. (time-between-failures). b. The minimum run time that the customer would feel comfortable with. The elapsed time period before the problem is declared solved should be no less than twice the longest time between failures, and should be equal to or greater that the customer required time. xx S Y S T E M L 0 G B 0 0 K S ********************************* XXl Log Book maintenance is a very important part of SYSTEM troubleshooting. The keeping of a Log book is not just the Site Representative's duty but is the duty of every person that goes onsite to fix any problem. Every time you are onsite, anywhere, you should not consider the call complete until the System's LOG book has been filled out giving a detailed description of everything that has expired during your visit. When properly used, a System Log Book will: 1. Stop UNNEEDED CONFUSION about the status of the SYSTEM, what was replaced when, what is expected to happen, what to do next if a certain event happens, if a certain event doesn't reoccur, etc. 2. Provide SYSTEM History information. 3. Provide DEVICE History information. 4. Provide updated SYSTEM Configuration information. 5. Provide an Intermittent Problem Action Plan. 6. Provide SYSTEM and DEVICE PM Status. 7. Provide SYSTEM and DEVICE diagnostic Run sheets. 8. Provide a means of passing information from one D.E.C. Field Service Engineer to another. 9. Provide a means of obtaining SYSTEM uptime information. 10. Provide specific SITE Dependent information such as where the Diagnostics are kept, where the Prints are kept, what test to run, special security considerations, specific site dependent information, etc. Every little tidbit of information about a problem should be entered into the Log Book. These tidbits may seem unimportant to you now, but may become valuable bits of information later on. It is your duty to help maintain an accurate log book for each system that you work on, every time you are on site. xx ii S 0 U R C E S of I N F 0 R MA T i 0 N ******************************************* XXlll At times you may need some help in Problem Diagnosis, Repair, ECO information, Diagnostic information, and etc. A list of resources that you can use is listed below: 1. Your fellow workers in your Branch. This is an important resource. If you know someone in your group that probably knows the answer to your question(s), don't be afraid to ask for their help. Working together in this way also helps to build morale within a group. 2. Your Remote Support and local Support Groups. 3. The Remote Diagnosis Center, (RDC),in Colorado. RDC can : Run Diagnostics. Examine VMS Dumps. Answer ECO problems. Look up information in the Library. Answer functional questions. Run/Monitor extended testing. Be aware that the RDC now has a library of all kinds of information. When you call RDC, they will ask you your SYSTEM TYPE, at this point ask for the LIBRARY. 4. If vou know ANYONE in D.E.C. that orobablv knows the answer to your question, feel free to cali and ask. We, all D.E.C. employees, owe our jobs to our Customers. Therefore, there is no reason why anyone in D.E.C. should refuse to answer a question for you if they know the answer. XXIV MA I N T A I N I N G C 0 N T R 0 L *************************************** xxv This is probably the most misunderstood and abused concept of trouble-shooting basics, but it is of the utmost importance that the Field Service Engineer MAINTAINS CONTROL of the SITUATION at ALL times. This manual will not do you any good if you do not have the control needed to perform the steps specified. In order to fix Customer Problems quickly and efficiently, you must: 1. 2. 3. 4. 5. Be able to MAINTAIN CONTROL at all times. Have good CUSTOMER RELATION SKILLS. Have a sound TROUBLE-SHOOTING APPROACH. Have the ABILITY TO BE SYMPATHATIC towards the CUSTOMER'S BUSINESS NEEDS. Have KNOWLEDGE of the hardware and software. What is meant by Maintaining Control as related to trouble-shooting? Maintaining Control simply means that you, a D.E.C. Field Service Engineer that is attempting to fix a Customer's problem, must at all times approach the problem with you in command of the situation. This simply means that you make the decisions as to what to do, when to do it, and how to do it, while carefully considering the Customer's business· needs (all your decisions must remain within the Problem Manager's guidelines). You must maintain control while also making sure that your decisions will impact the Customer's business as little as possible. Loosing control, more often than not, causes longer overall downtime for the Customer and also causes you to start to loose confidence in your ability to do your job properly. Your job is to fix the Customer's problem(s) as soon as possible while affecting his/her business as little as possible. If you do not Maintain Control of the situation, you obviously cannot perform your job properly. If at any time you feel that you are starting to loose control, immediately contact your management and get them involved. DO NOT allow yourself to loose complete control before contacting your management. Everyone needs help occassionally. Don't let your pride prevent you from doing what is best for the Customer and D.E.C .. The amount your decisions impact the Customer's business needs must always be considered carefully. Sometimes it makes more sense to take the System for an extended period of time, in order to reduce the total overall time spent repairing the Customer's problem. XXVl Maintaining Control does not mean that you make your decisions without the Customer's input. One of the first steps you should always do when trouble-shooting a problem, is to gather as much information about the problem as possible. The first source of information about the problem comes from the Customer. The Customer may even have an idea about what is causing the problem. You should listen to everything that the Customer has to say. This does not mean that you base your trouble-shooting totally on the information received from the Customer. Research the problem thoroughly before jumping in and replacing things. You must also use input from the Customer when you are weighing what you want to do·with how it will affect the Customer's business. It is of the utmost importance not to abuse your control. Abuse of control can only result in a poor D.E.C./Customer relationship. You must maintain good D.E.C./Customer relations and supply the Customer with the best service possible within the guidelines of the Customer's Contract. SUMMARY Your goal is to fix the Customer's problem, in the shortest length of time, while maintaining complete control of the situation, and while constantly evaluating your decisions with respect to the Customer's needs, concerns, and Contract Coverage. Keep in mind the following: 1. Maintain Control of the situation. 2. Always weigh your decisions with respect to the following: a. b. c. Customer's Business needs and concerns. D.E.C.'s Contract Obligations to the Customer. Is this the quickest approach to fixing the problem? 3. Maintain good D.E.C./Customer relations. 4. Always be CONSIDERATE, TRUTHFUL, and FAIR. XXVll SECTION I VAX-11I780 Trouble-Shooting Outline VAX-11/780 Trouble-Shooting Basics This outline is designed to aid you in isolating problems to either the Memory, the VAX-11/780 CPU, the VAX-11/780 Front-end Subsystem, a VAX-11/780 Nexus, a Peripheral Device or to Software. Peripheral Devices will only be covered in general while the VAX CPU, the MEMORY, and the NEXUSes will be covered more thoroughly. 1. An UNDEFINED PROBLEM exists. The problem is undefined until "YOU" make an educated guess as to where the problem probably lies. 2. GATHER all INFORMATION, from the Customer, that is available about the problem and its symptoms. At this point in time, you are not evaluating the problem but are merely gathering information that you can evaluate later. Keep an open mind, don't let any tidbit of information pass you by. Many problems could have been solved sooner if the Field Engineer had remembered seemingly insignificant tidbits of information that may appear unrelated to the problem. Be sure to record as much Symptom information as possible in the "LOG Book". a. How is the problem exhibited? 1. This is found by talking to the Customer. Be sure to record this information in the "LOG Book". 2. Is the problem intermittent or a solid problem? 3. Can the problem be recreated at will? 4. What is the MTBF (mean time between failures)? 5. Does the problem seem to be related to only one or only a group of functions or programs? 6. If it is a program that causes the problem, is this a customer program or a D.E.C. supported program? 7. Is there anything common about the problem in either software or hardware? 8. Did any System Environmental changes take place previous to or at time of the problem? 9. Does the problem appear to be, or could the problem be, media related? 1-2 b. What is the customer's evaluation of the problem? 1. c. Is there a hard copy printout showing the problem symptom? If the Operating System crashed or hung, what you want is the Console Terminal output at the time of the failure. 1. d. If a "Hard Copy Printout" is available, ask the customer for it. Was a "Hardware Register Dump" taken at failure time? 1. e. Does the customer believe the problem to be in a certain area of the hardware or software? Be sure to record this information in the "LOG Book". If the software crashed or hung, the customer should have taken a "Hardware Register Dump" (by using the "DUMP. or HANG." command file on the "LOCAL CONSOLE" floppy) immediately at time of failure. Ask for this dump. Was a "Software Dump" taken and saved? 1. If the software crashed a software dump should have occurred automatically as a result of _the Operating System executing its crash routine (if SYSGEN parameter DUMPBUG=l). The dump should have been saved by the Customer when the system was rebooted. Ask the Customer for the "DDCU:[DIRECTORY]FILENAME.EXT" of the "SAVED SOFTWARE DUMP". 3. Get an ERROR LOG REPORT if possible at time of and prior to failure. If the problem is of the type that allows the Operating System to run, or is a problem that intermittently crashes the Operating System, attempt to get an "ERROR LOG" report by running either "SPEAR" or "SYE". Have the output go to a file, and then print that file. If you are running SPEAR, use the "SPEAR Analyze" function to analyze the errors prior to the crash. It may be necessary to do a full retrieve of all information. In some cases it may not be possible to do Error Log reporting at this time. In those cases, it is wise to run Error Log reporting as soon as the system is functional enough to do so. Operating System Error Logging is a great aid to trouble-shooting, use it whenever possible. The VAX Error logging utility is very good. 1-3 4. IDENTIFY the TYPE of PROBLEM if possible. Now that you have gathered as much information as you can about the problem, find a desk or table somewhere where you can sit down and attempt to "Isolate the Problem". The first step in problem isolation, is to determine the "Type of Problem". VAX-11/780 Problems can be broken down into several basic types: 1. Operating System Crashes or Bugchecks. (This includes "Machine Checks" & "CPU DBLE-ERR HLT's") 2. Operating System Hangs. 3. Operating System Functional Problems. 4. Operating System Backup Problems. 5. Booting Problems. 6. Front-end Subsystem goes back to ODT, Hangs, Halts. 7. Unexplained Reboots or Power Restarts. 8. Problems on a Certain Device or Devices. 9. System or Peripheral Device won't Power-Up. 10. Something's Burning. 11. Problems Building the VMS Operating System. 12. Error Bits set in a NEXUS (DW780, RH780, etc.) 13. S.B.I. FAULTS Determine which of the above types the problem fits under and then go to the outline for that problem type. Every problem should fit under one of these problem types. 1-4 VAX-11I780 System Trouble-Shooting tools: Visual and Sensual Indications a. LSI-11 Front panel indicators - DCON, RUN b. VAX-11/780 Control panel indicators - ATTN, RUN, POWER c. H7100 status indicators Power Normal, Regulator Failure, Overtemp, Overcurrent, & Power Inverter Failure d. Smoke, fire, heat, burning smell Registers a. b. c. d. The CPU ID <00:3E> registers E/ID/L/N:3E 0 The Control/Status registers in each nexus E/L/P/N:x 200xx000 - for each nexus The Control/Status registers in each UNIBUS device E/L/P/N:x 20lxxxxx - for each UNIBUS device The Control/Status registers in each MASSBUS device E/L/P/N:x 200xx400 - for each MASSBUS drive Console Terminal Messages a. LSI-11 ODT error messages xxxxxx <- PC at time of LSI macro program halt @ <- LSI ODT prompt b. Error messages from CONSOL.SYS ? xxxxxxxxxxxxxxxx >>> c. d. Error messages from the OPERATING SYSTEM (VMS/UNIX) <- From VMS. Is followed by FATAL BUGCHECK a General register dump, Stack dump and a description of error. Error messages from other programs User Terminal Messages a. Error messages from the OPERATING SYSTEM .(VMS/UNIX) b. Error messages from other programs Error Log Information a. "ERRLOG.SYS" for the VMS operating system in SYS$ERRORLOG:ERRLOG.SYS b. "/messages" file for the UNIX operating system System Manager I User Input a. System Manager/User definition of the problem b. System Manager/User feelings of problem area c. Any customer known or initiated changes to system System History a. Past failure/repair history of the system b. ECO status of the system c. System configuration changes d. Software changes e. PM history f. Enviromental Changes 1-5 VMS Operating System Crashes or Bugchecks Due to the nature of these types of problems and the Software decisions that are made, the System may not be down when you arrive onsite. For this reason, these flows will not specify when to run diagnostics. If the Operating System is operative when you arrive onsite, it is probably best to gather the listed information about the crash and attempt to at least make a preliminary diagnosis before taking the system to run diagnostics. This preliminary diagnosis should point you to an area or subsystem on which to start running diagnostics. In order to trouble-shoot these types of problems, it is necessary to gather as much information about the crash as possible. The amount of information that you will be able to gather will depend upon how the system is set up. Procedures to gather the following types of information should have been setup previous to the crash: 1. Doing a HARDWARE REGISTER DUMP. 2. SYSGEN parameter DUMPBUG set to a 1 so as to get a SOFTWARE dump. 3. Saving of SOFTWARE dumps on reboots. 4. Saving of Errlog (EVENT file) information. 5. Saving of the Console Terminal output (on hardcopy). 6. Accurate LOG BOOK information concerning all activity on the system. "It is IMPOSSIBLE to gather TOO MUCH information about a problem." In order to gather the Hardware Register Dumps, certain modifications to the LOCAL/REMOTE CONSOLE FLOPPY should be made. A "DUMP." and "HANG." command file should be created that is tailored to the associated system (see the procedures in Chapter 3 of this manual). It is possible to get all the Hardware Register information needed by using these two command files, but the customer must run the system with SYSGEN parameter BUGREBOOT = 0 and the AUTO-RESTART switch OFF. Then when the system crashes, you or the customer must take the dump by initiating either the "DUMP." or "HANG." CONSOL.SYS command file prior to rebooting of the system. This method is usually not desirable from the customer's standpoint of trying to have the system up as much as possible. A better method is to add the commands in the "DUMP." command file to the front of the "DEFBOO.CMD" & "RESTAR.CMD" command files on the LOCAL/REMOTE CONSOLE Floppy. This will allow the customer to run with AUTO-RESTART set ON and the SYSGEN parameter BUGREBOOT set to a 1, and the Hardware Register dump will automatically be taken prio~ to the system rebooting. On these crashes, the Hardware Register Dump may not reflect the same ID register contents as were present at the actual time of the error due to VMS not halting immediately (several things are done prior to VMS halting, one of which is the writing of the Software Dump). The Hardware Register Dump may show some Device· or Nexus errors though. It is always better to have extra information rather than not enough, so take the HARDWARE REGISTER DUMP whenever possible. The ERRLOG.SYS file should be examined, whenever possible, to see if the Operating System was able to log any error information that may be causing the crashes. The VAX VMS "System Event File (ERRLOG.SYS)" is a very useful trouble-shooting tool that is very often overlooked. Many times the Fatal Bugchecks are caused by something that is logged in ERRLOG.SYS just prior to the crash. 1-6 There are many different types of "FATAL and/or NON-FATAL BUGCHECKS". BUGCHECKS can either be caused by Hardware errors or Software detected error conditions. The SOFTWARE detected errors "may notn be caused by any hardware failures. Whether a BUGCHECK is declared "FATAL or NON-FATAL" depends upon what "MODE" the processors is in when the error occured. B"asical.ly, a "Non-Fatal Bugcheck" is a Bugcheck that has occured while the processor is in either the "USER" or "SUPERVISOR" mode. A "Fatal Bugcheck" is one that has occured while the processor is in either the "EXEC" or "KERNEL" mode. Chapter 2, of this manual, describes Fatal and Non-Fatal Bugcheck action. The easiest of the Bugchecks to trouble-shoot is the MACHINE CHECKS. This is due to a specific logout procedure that the VAX-11/780 CPU microcode goes through to insure that you have the needed error information stored on the stack. Fatal Machine Check Bugchecks will print out the stack information on the console terminal. This is usually all the information that you need to trouble-shoot this type of bugcheck. Non-Fatal Machine Check Bugchecks will cause VMS to store the stack information in the system event file (ERRLOG.SYS). All of the other types of BUGCHECKS require a software knowledge to affectively trouble-shoot them since these errors usually are not the result of some hardware detected error but due to softwares detection of a problem. Therefore, you.would probably have to know what the system software was attempting to do in order to effectively trouble-shoot them. 1-7 * FATAL BUGCHECK, VERSION-V3.l MACHINECHK, Machine check while in kernel mode * MACHINE MACHINE MACHINE CHECKs CHECKs CHECKs MACHINE CHECKs MACHINE CHECKs MACHINE MACHINE MACHINE MACHINE CHECKs CHECKs CHECKs CHECKs ?? MACHINE CHECK EXCEPTION THROUGH VECTOR: 04(X) 1-9 VAX-11/780 MACHINE CHECK Error Logout A Machine Check Exception indicates that the processor detected an INTERNAL ERROR in itself, an SBI TIMEOUT, or an SBI ERROR CONFIRMATION is received when the processor was attempted an SBI transfer. Software decides, on the basis of the logout information presented, whether to abort the current process or simply to continue. The following steps show the basics of what happens when the VAX-11/780 CPU detects an error. 1. The VAX-11/780 CPU detects an error. The types of errors that can cause a Machine Check are: a. b. c. d. e. f. g. 2. Control Store Parity Error Cache Parity Error Translation Buffer Parity Error Read Data Substitute Error SBI Read Timeout SBI Error Confirmation received VAX CPU Micro-code goes to unused Micro-code location ' The VAX-11/780 Micro-code branches to a "Error Snapshot" micro-code routine that performs the saving of the "Machine Check Logout" information onto a specified Stack. MicroPC Error entry points for PCS (version 1.0) microcode uPC uPC uPC uPC uPC uPC 3. OlOF 0107 0108 OlOC OlOD OEEO Control Store Parity Error Translation Buffer Parity Error Cache Parity Error Read Data Substitute S.B.I. Read Timeout or Error Confirmation Microseqencer Error The VAX-11/780 Micro-code saves certain CPU registers in TO thru T9 (ID #30 thru 39) for temporary storage. These registers, along with the PSL, PC and a byte count, make up the "Machine Check Logout" information. The Registers that are saved are: a. b. c. d. e. f. g. h. i. j. The CPU Error Status Register (CES = ID #OC) The Trapped UPC Register (USTACK = ID #20) The VA/VIBA (from the VA/VAMX multiplexers) The D-Register (DQ = ID #08) The TB Error Register #0 (TB ERR #0 = ID #12) The TB Error Register #1 (TB ERR #1 = ID #13) The Timeout Address Register (TIME.ADR = ID #lA) The Cache Parity Error Register (PARITY = ID #lE) The SBI Error Register (SBI.ERR = ID #19) The D.SV Register (D.SV = ID #2E) 1-10 This data is first stored in TO thru T9, in the following order, on execution. of the micro-words at the specified PCS (version 1.0) micro-addresses: UPC Register Name ID No. Saved in OEFl CPU Error Status Trapped Micro-PC VA/VI BA D Register TB Error Register 0 TB Error Register l Timeout Address Cache Parity Register S.B.I. Error Register Summary Parameter oc Tl T2 T3 T4 TS T6 T7 TS T9 TO - OEF~ OEF4 OEF5 OEF8 OEFB OEFC OFOl OF03 OF06 20 12 13 lA lE 19 ID#31 ID#32 ID#33 ID#34 ID#35 ID#36 ID#37 ID#38 ID#39 ID#30 Then this MACHINE CHECK logout information is stored onto the stack, along with the PC and PSL. This two step procedure is used in order to preserve 1st error information in the case of another error occuring while the micro-code is attempting to logout the 1st error's information onto the stack. PCS (Version l;O) micro-code entry points 4. uPC OEE9 "Error Snapshot micro-routine" that stores certain registers in the TO-T9 temporary registers. uPC OFlO "Error Snapshot micro-routine" that stores the Temporary registers (T0:9) onto the stack along with the PC, PSL, and a Byte Count longword equal to a hex 00000028. The VAX-11/780 Micro-code gets the SCBB data to be used to find the physical address of the "MACHINE CHECK VECTOR". The SCBB is a register (ID #3B) that contains the starting address of the System Control Block (SCB). The System Control Block is the physical page in memory that contains the Exception and Interrupt Vectors. 1-11 5. Bits <1:0> of the data in "SCBB+4" are checked, by the Micro-code, to determine what Stack to use for the Machine Check Logout information storage, or to see if the CPU should halt. The Kernel Stack or the Interrupt Stack can be used as the storage place for the Machine Check Logout information. 6. The VAX-11/780 Micro-code saves the Machine Check Logout information onto the Stack specified by "SCBB+4" bits <1:0>, or will halt if these bits are both l's (<1:0>=3). If the VAX CPU halts, control will pass back to the CONSOL.SYS program. The Machine Check Logout information consists of the Saved Register contents that were saved in Temporary Storage registers ID #30-39, the PC and PSL at the time of the error, and a byte count that specifies the total number of bytes dumped on the stack (which is "always" a hexadecimal 28 or decimal 40). 7. The VAX-11/780 Micro-code causes the Instruction Set Processor to jump to the routine whose Longword address is in-"SCBB+4" if "SCBB+4 Bits <1:0>" is not equal to 3. If "SCBB+4 Bits <1:0>=3" then the VAX Instruction Set Processor is halted. 8. If "SCBB+4 Bits <1:0>" are not equal to 3, the VAX-11/780 Instruction Set Processor runs VAX Macro instructions to perform the specified trap routine. What is done in this routine depends totally on the running Macro-code program. When a Machine Check occurs while running the VMS Operating System, the Macro Routine that is run now will determine whether the Machine Check is FATAL or NON-FATAL and will act accordingly. When a Machine Check occurs while running the Diagnostic Supervisor, the Macro Routine that is run now will normally print out the STACK contents and then go back to the "OS>" prompt and await operator input. Other software may simply halt when the Machine Check occurs. Still other software may not properly set up a "SYSTEM CONTROL BLOCK" and all sorts of strange things may happen. NOTE: If another Machine Check condition occurs while the microcode is performing the functions in steps 2 thru 6, the VAX microcode flags a "Double Error Halt" and turns control over to the LSI Subsystem's CONSOL.SYS program. 1-12 VMS Fatal Bugcheck printout example caused by a Machine Check *** FATAL BUGCHECK, VERSION-V3.l MACHINECHK, Machine check while in kernel mode CURRENT PROCESS = STARTUP REGISTER DUMP RO = 00000206 Rl = 00000028 0000792E R2 R3 = 00000000 R4 = 0000792E RS = 0000021E R6 = 80027600 R7 = 00002768 R8 = 80137300 R9 = OOOOC768 RlO= 000015F8 Rll= 80137300 AP = 7FFB4888 FP = 7FFEADA8 SP = 80154FC4 PC = 800CF411 PSL= 041F0008 KERNEL/INTERRUPT STACK 00000028 80154FCC 00000000 80154FDO 00010084 80154FD4 00000224 80154FD8 80027Al8 80154FDC 03FB5E6C 80154FEO 00007E81 80154FE4 80154FE8 00000040 28005106 80154FEC 00004000 80154FFO 80154FF4 00009402 00002C4D 80154FF8 OODFOOOO 80154FFC HALT INST EXECUTED HALTED AT 800039ED (BOOTING) CPU HALTED INIT SEQ DONE HALT INST EXECUTED HALTED AT 200034F9 G OOOOOOOE 00000200 LOAD DONE, 00004200 BYTES LOADED VAX/VMS Version V3.l ll-AUG-1982 16:21 1-13 Example of a Machine Check while running ESSAA DS> RUN EVRAA •. Program: VAX DISK AND TU58 RELIABILITY TESTS *EVRAA*, revision 12.0, 6 tests, at 07:19:26.94. Testing: _DRBl ?? MACHINE CHECK EXCEPTION THROUGH VECTOR: 04(X) CP READ TIMEOUT/SB! ERROR CONFIRMATION FAULT MACHINE CHECK LOGOUT: COUNT: SUMMARY PARAMETER: CPU ERROR STATUS: 00000028(X) OOOOOOOO(X) 00010084(X) TRAPPED MICRO PC: VA/VI BA: D REGISTER: TBERO: 00000248(X) 60014008(X) 0504A056(X) 00007EOO(X) TBERl: TIME.ADDR: 00000040(X} 28005002(X) PARITY: SBI. ERR: 00004000(X) 00009402(X) PC at error: PSL at error: User return PC: OS> 00051649(X) OOlFOOOO(X) 0001A40D(X) i-14 ;NESTED ERROR, ALU C31 . ' ;LAST REFERENCE = ADS,MCTE,MCT2 MCTl,MCTO,IBWCHK ;FORCE TB PARITY ERROR=NO ERROR FORCED ;LAST TB WRP ;MODE=KERNEL,PROT CHECK, SBI AD DR=20014008(X) ;CP ERROR ;RDS INT EN,CP TO, CP TO STO, NOT BUSY ;CUR=KERNEL,PRV=KERNEL,IPL=lF Breakdown of a VMS Machine Check printout example. *** FATAL BUGCHECK, VERSION-V3.l MACHINECHK, Machine check while in kernel mode CURRENT PROCESS REGISTER DUMP RO = 00000206 Rl 00000028 R2 = 0000792E R3 = 00000000 R4 = 0000792E RS = 0000021E 80027600 R6 R7 = 00002768 RS = 80137300 R9 = OOOOC768 RlO= 000015F8 Rll= 80137300 AP = 7FFB4888 FP = 7FFEADA8 SP = 80154FC4 PC = 800CF4ll PSL= 041F0008 I Specifies type of BUGCHECK. This breakdown defines the meaning of this printout when the BUGHECK type is a "Machine Check". STARTUP <-I I This register dump isn't of much use to us if the BUGCHECK is a "Machine Check". Is useful for other types of BUGCHECKs. <- KERNEL/INTERRUPT STACK 00000028 80154FCC 80154FDO 00000000 00010084 80154FD4 00000224 80154FD8 80154FDC 80027Al8 03FB5E6C 80154FEO 80154FE4 00007E81 80154FE8 00000040 80154FEC 28005106 00004000 80154FFO 80154FF4 00009402 00002C4D 80154FF8 OODFOOOO 80154FFC The following definitions apply only when BUGCHECK is a MACHINE CHECK. <----- Byte Count <----- Summary Parameter <----- CPU Error Status (ID#OC) <----- Trapped micro-PC (ID#20) <----- VA/VI BA <----- D Register (ID#08) <----- TB Err. Reg. #0 (ID#l2) <----- TB Err. Reg. #1 (ID#l3) <----- Timeout Address (ID#lA) <----- Cache Parity (ID#lE) <----- SBI Erre Reg. (ID#l9) <----- PC (General Reg. #F) <----- PSL (ID#OF) HALT INST EXECUTED HALTED AT 800039ED (BOOTING) <--------------- SYSGEN "BUGREBOOT = l", , so rebooting CPU HALTED via "DEFBOO.CMD" command file. INIT SEQ DONE HALT INST EXECUTED HALTED AT 200034F9 <------ ISP Rom Macro program finished. "SP" now contains SA+200 of good 64K chunk. G OOOOOOOE 00000200 LOAD DONE, 00004200 BYTES LOADED <----- VMB.EXE loaded into VAX mem. VAX/VMS Version V3.l ll-AUG-1982 16:21 1-15 <----- VMS is loaded and started. Getting Started on MACHINE CHECKs The contents of the "STACK" are used to trouble-shoot "Machine Checks". The Stack Contents are printed out on the "Console Terminal", by the VMS Operating System, immediately after a "FATAL" Machine Check. "Fatal Machine Checks" are basically those Machine Checks that happened when the VMS Operating System was in "Kernel" or "Exec" mode. Machine Checks that happened during "User" or "Supervisor" mode are normally considered "Non-Fatal" and will result in the Machine Check Logout information (the contents of the STACK and the General Registers) being saved in the System Event file ("SYS$ERRORLOG:ERRLOG.SYS") versus being printed out on the "Console Terminal". If the Machine Check occurred while running a program that does not output the "Logout" information to the "Console Terminal" or "SYSTEM EVENT File", then you will have to dump the Stack yourself. To do this, first examine (using CONSOL.SYS) ID #12 and check to see if Bit 00 is set. Then use the appropriate command to examine the STACK. ID #12 - Bit <00> = 0 ; Memory Management not enabled. >>> E/L/H SP >>> E/L/H/P/N:30 @ ID #12 - Bit <00> = 1 ; Memory Management is Enabled. >>> E/L/H SP >>> E/L/H/V/N:30 @ Now, use the following steps to determine what caused the "Machine Check": 1. Find the "LONGWORD" on the Stack that contains a "00000028". If you cannot find this longword, then the Stack doesn't contain the "Machine Check Logout" information. You will, therefore, have to make sure the appropriate error catching facilities are in place, and then must wait for the next "Machine Check" to occur. 2. The "LONGWORD" following the "00000028", is the "Summary Parameter" word. Using "byte O" of this longword, check the SUMMARY PARAMETER DESCRIPTION, on the next page, to determine what type of error occurred. J. Now that you know what type of error occurred, go to the appropriate section of this Trouble-Shooting Guide to find out how to use the Stack "Machine Check Logout" information to further isolate the problem. 1-16 Normally the Exception Vector bits <1:0> define the following: O - Service the EXCEPTION on the KERNEL STACK unless running on the INTERRUPT STACK. 1 - Service the EXCEPTION on the INTERRUPT STACK. 2 - Service the EXCEPTION in WCS, Pass Bits <15:02> to Micro PC. 3 - Halt The Machine Check Exception Vector is found at "SCBB+4". The "System Control Block Base" is a Physical address and can be found by examining "ID Register #3B" or "Internal Register #11". MACHINE CHECK LOGOUT Information Description: Description Memory Loe. ID Loe. Notes (SP+4) (SP+8) (SP+l2) (SP+l6) (SP+20) (SP+24) (SP+28) (SP+32) (SP+36) (SP+40) (SP+44) (SP+48) None TO ( 3 0) Tl (31) T2 ( 3 2) T3 (33) T4 (34) TS ( 3 5) T6 (36) T7 (37) T8 (38) T9 (39) None None Must be a 28 (hex) . See below. See ID #OC. See ID #20. Virtual address. See ID #08. See ID #12. See ID #13. See ID #lA. See ID #lE. See ID #19. General Reg. #F. See ID #OF. --------------------------------------------------------------------(SP) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Byte Count Summary Parameter CPU Error Status Trapped UPC VA/VI BA D Register TB ERROR 0 TB ERROR 1 Timeout Address Parity SBI Error PC PSL SUMMARY PARAMETER Description Page Code 1-55 00 02 03 05 OA 1=38 1-34 1-92 1-38 1-92 1-55 1-34 1-55 1-45 1-38 1-34 1-92 1-94 Ij __ I oc OD OF FO Fl F2 F3 F5 F6 (use Byte #0, only!) Description CP Read Timeout or Error Confirmation Fault CP Translation Buffer Parity Error Fault. CP Cache Parity Error Fault. CP Read Data Substitute Fault. IB Translation Buffer Parity Error Fault. IB Read Data Substitute Fault. IB Read Timeout or Error Confirmation Fault. IB Cache Parity Error Fault. CP Read Timeout or Error Confirmation Abort. Control Store Parity Error Abort. CP Translation Buffer Parity Error Abort. CP Cache Parity Error Abort. CP Read Data Substitute Abort. Microcode "not suppose to get here" Abort. Goto to this page to find out how to trouble-shoot associated error. 1-17 BIT BREAKDOWN OF STACK ENTRIES - Showing error information ID #OC - CES 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 1 1 0 0 0 0 0 0 0 0 0 0 A A A A Control Store Parity Error Summary - I I I I CS Parity Error in Group #2 ----------1 I I CS Parity Error in Group #1 ------------1 I CS Parity Error in Group #0. --------------1 .. MICRO STACK ID #20 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 I<-- Micro PC bits <12:0> -->I - output of VAMX VA/VIBA 3 3 2 2 2 2 2 2 1 0 9 8 7 6 5 4 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 I<---------------- Virtual Address bits <31:00> --------------------->I From VA register if "CP" reference. From VISA register if "IB" reference. ID #08 3 3 2 2 - D Register 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 Data 11 Data II Data II Data I I<-- Byte #3 ---> 11 <-- Byte #2 ---> 11 <-- Byte #1 ---> 11 <-- Byte #0 --->I ID #12 3 3 2 2 1 0 9 8 - TBERO 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 Force Replace Both Grps-1 I I I I I I I I I Force Replace Group # 1 ----1 I I I I I I I I Force Replace Group #0 ------1 I I I I I I I Force TB miss Group #1 --------1 I I I I I I Force TB miss Group #0 ----------1 I I I I I TB Hit Group #1 --------------------------------------1 I I I I TB Hit Group #0 ----------------------------------------1 I I I Force TB Parity Error (code determines specific group/byte) --->I I MEMORY MANAGEMENT ENABLE --------------------------------------------1 1-18 ID #}3 3 3 2 2 0 9 8 l - TBERl 2 2 2 2 7 6 5 4 2 2 2 2 3 2 l 0 A 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 l 0 9 8 A A A A A A PE Group 1 Data Byte 2 -I I I I I I PE Group 1 Data Byte 1 ----1 I I I I PE Group 1 Data Byte 0 -'-----1 I I I PE Group 0 Data Byte 2 --------1 I I PE Group 0 Data Byte 1 ----------1 I PE Group 0 Data Byte 0 -------------1 ID #lA 3 3 2 2 o9 a i 1 0 9 8 A A I I I I I I I I I I I I A A 7 6 5 4 A 0 0 0, 0 3 2 J. "u I I I 1-- CP TB Parity Error I I I- PE Group 0 Addr Byte 0 I 1--- PE Group 0 Addr Byte 1 1----- PE Group 0 Addr Byte 2 1-------- PE Group 1 Addr Byte 0 I 1---------- PE Group 1 Addr Byte 1 1------------ PE Group 1 Addr Byte 2 I I - TIMEOUT ADDRESS 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 6 s 4 3 2 i o 9 a 1 6 5 4 3 2 i o 9 a 1 6 5 4 3 2 i o I<------------------------ PA <29:02> ----------------------->! - CACHE PARITY ID #lE 3 3 2 2 A 0 0 0 0 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 A A A A A A A A A A Cache Parity error was detected ----1 I I I I I I I I I 0 = IB reference, 1 = CP reference ---1 I I I I I I I I Parity OK in Data Group 1 Byte 0 -------1 I I I I I Parity OK in Data Group 1 Byte 1 ---------1 I I I I Parity OK in Data Group 1 Byte 2 ------------1 I I I I Pari tv OK in Data Group 1 Byte 3 --------------! ! ! ! Parity OK in Data Group 0 Byte 0 ----------------1 __________________ I, I I Parity OK in Data Group 0 Byte 1 I I Parity OK in Data Group 0 Byte 2 --~------------------! I Parity OK in Data Group 0 Byte 3 -----------------------! A A I I I I I I I ! I I I I I 0 0 0 0 3 2 1 0 A A A A I I I I I I ! I I I I I Parity OK in Address Group 0 Byte 0 ----------------------! I Parity OK in Address Group 0 Byte 1 ------------------------! I I Parity OK in Address Group 0 Byte 2 ---------------------------! I I Parity OK in Address Group 1 Byte 0 -----------------------------! I Parity OK in Address Group 1 Byte l -------------------------------! Parity OK in Address Group 1 Byte 2 ---------------------------------! 1-19 ID #19 - SBl.ERR 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 A RDS received for a CP requested cycle --1 I SBI Timeout on a CP requested cycle ------1 I I I I I I I I I I I I A A 0 0 0 0 3 2 1 0 A I I I I I I I I I I I I I I I SBI Err CNF received for an IB request 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 I I I I I I I I I I I I I I I I I I I I I I I I I I I I Decimal ovrflo --1 I I T I I I I I I I I Float Underflow ---1 I I I I I I I I I Integer Overflow ----1 I I I I I I 1--- Interrupt Priority Level I I I I I 1--- Previous MODE I I I I 1------ Current MODE I I I 1----- Interrupt Stack selected I I 1----- First Part Done I 1--- Trace Pending 1--- Compatibility Mode I I I I Nz v c 11 I I I I 10 ----------<-- see chart 0 0 - No device response 0 1 - Device Busy Timeout 1 0 - Waiting for READ DATA timeout 1 1 - Impossible code --=r SBI Error Confirmation on CP requested cycle ------1 RDS received for an IB requested cycle ---------------1 SBI Timeout on an IB requested cycle ------------------5 4 <-- see chart ---------=! 0 0 - No device response 0 1 - Device Busy Timeout 1 0 - Waiting for READ DATA timeout 1 1 - Impossible code PC - General Register #f - 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 Program Counter 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 !<---------------Program execution address pointer ------------------>I ID #Of 3 3 2 2 1 0 9 8 A A - PSL 2 2 2 2 7 6 5 4 Processor Status Longword 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 A 1-20 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 A PA ElJS 1 TB ~ [PG ~~ PG ~ l TAG CACHE ,, SBI Control ~ ·~ PG DATA TAG I PC PC PG .... ,,. [ 0/0 Register 1 1. ~ ti) llli ~ PC • Parity Dlecked _ _ _ __.. PG =Parity fienerated PG ~~ ~ ~ ,. Instruction Buffer WCS/OCS mm; ...... ...... ~ ,,. PC ~ PC ID llIS DATA PATHS 911 m; DATA l PC CIB ..... cs m; PCS lt'CS/OCS RAN PCS RON PC Machine Check Logout breakdown flowchart "START HERE" I 1----------------------------------------------1 I Find 00000028 on Kernel/Interrupt Stack I 1----------------------------------------------1 I 1-------------------------------------------------------------1 I I • Extract "Byte O" from the LONGWORD following the 00000028. l This byte is the SUMMARY PARAMETER code. I 1-------------------------------------------------------------1 I I 1-------------------------------------------------------------1 !Go to the appropriate flow for the associated parameter codesl l------l------l------l---~--1------1------1------1------------1 I 00 I OD I 02 I 03 I 05 I Fl I F6 I all others I I FO I I F2 I OF I oc I I I I I I I OA I F3 I F5 I I I I l------l------1------1------1------l------l------l------------I I goto "CP READ ERR" - I I I I goto "TB ERR" I I goto "IB READ ERR" I I I I goto "RDS ERR" - I I goto "CACHE ERR" I I I goto I "MICRO SEQ ERR" I -I goto "CS PAR ERR" I I I I I I I I I l<-----------------------------1 I 1-----------------------------------------------------------------------1 I I I I I I I If none of the above codes are what is contained in BYTE 0 of the LONGWORD following the BYTE COUNT (00000028), then the summary parameter byte is invalid. The problem could be in any of the following areas of the VAX CPU logic: DATA PATHs, CONTROL STORE, MICRO SEQUENCER, or INTERRUPT CONTROL LOGIC. I I I I I I I 1-----------------------------------------------------------------------1 Error Type Flowchart Additional Info. ******************************************************************** "CP READ ERR" --------- 1.023 ---------------------- 1.056 "IB-READ-ERR" --------- 1.025 ---------------------- 1.056 "TB-ERR" ------------- 1.028 ---------------------- 1.038 "CACHE ERR" ----------- 1.030 ---------------------- 1.034 "RDS E~R" ------------ 1.031 ---------------------- 1.092 "CS ~AR ERR" ---------- 1.032 ---------------------- 1.046 "MICRO_SEQ_ERR" ------- 1.033 ---------------------- 1.094 1-22 "CP READ ERR" I !--------------------------------------------------------! I Extract the "SBI ERROR" register from the STACK DUMP. I I entry #1). I It is the 11th logout entry (counting the 00000028 as I I 1--------------------------------------------------------1 I 1---------------------1 no l<------1 Bit <12> or <08> =l 1------->I I 1---------------------1 I yes I I goto "E" I 1-------------------------------1 yes 1-------------1 <------1 Bit <08>=1 I 1-------------1 I no I I I Binary value of Bits <11:10> = 00 01 10 I I I I I I I I Goto "A" I Summary Parameter code and I I Error Bits do not agree. I I I I Problem in INTERRUPT CONTROL I I LOGIC, CS or CS BUS, or the I I MICROSEQUENCER or MicroPC bus, I 1-------------------------------1 11 Goto "B" !----------------------------------------->! I I ----------------------------------------------------------1 I No Device Response received when attempting to access I I the address contained in the "TIMEOUT ADDRESS" register. I I Problem is probably in the address logic of the device I I being accessed. I 1---------------------------------------------------------1 I 1---------------------------------------------------------1 I Goto TIMEOUT ADDRESS flows to determine what device was I I being accessed. I !---------------------------------------------------------! I I I I I I I I I I I I 1---------------------------------------------------------1<---I I Device Busy Timeout occurred. Device being accessed is I I contained in the "TIMEOUT ADDRESS" register. The device! I recognized that it was being accessed, but was "busy" I I doing a previous command. The CPU timed out since 512 I 1. cycles went by and the device was still "busy". I I Problem could be almost anywhere in the accessed device I I or on the buses it is interfacing to. I !---------------------------------------------------------! I !---------------------------------------------------------! I Goto TIMEOUT ADDRESS flows to determine what device was I I being accessed. I 1---------------------------------------------------------1 1-23 "B" "A" I I I I I . !----------------------------->! 1------------------------------------------------->I I I 1---------------------------------------------------------1<-------I I Waiting for Read Data Timeout occured. The device being! I accessed (whose address is contained in the TIMEOUT I I ADDRESS register) acknowledged the CPU's C/A cycle, but I I didn't send back the expected READ DATA within 512 SBI I I cycles. I I I !Problem could be almost anywhere in the controlling NEXUSI Ito the device/unit acutally being addressed. I 1---------------------------------------------------------1 I 1---------------------------------------------------------1 I Goto TIMEOUT ADDRESS flows to determine what device was I I being accessed. I l---------------------------------------------------------1 I I I r I I I I I I I I I I I I I I I I I I I 1---------------------------------------------------------1<-----------1 I IMPOSSIBLE CODE. This code should never occur. I I Problem is most likely in the CPU's SBI control logic, I or in the DATA PATHS (may have picked a bit when moving I register first to T9 and then to the STACK). I i I I I 1---------------------------------------------------------1 1-24 "IB READ ERR" I 1--------------------------------------------------------1 I Extract the "SB! ERROR" register from the STACK DUMP. I I It is the 11th logout entry (counting the 00000028 as I I entry #1). I !--------------------------------------------------------! goto "E" I yes 1---------------------1 no l<------1 Bit <06> or <03> =l 1------->I I 1---------------------1 I I I I !-------------------------------! yes 1-------------1 I Summary Parameter code and I <------1 Bit <03>=1 I I Error Bits do not agree. I 1-------------1 I no I I I Binary value of Bits <05:04> = 00 01 10 I I I I I I I Problem in INTERRUPT CONTROL I I LOGIC, CS or CS BUS, or the I I MICROSEQUENCER or MicroPC bus. I !-------------------------------! 11 I Goto "C" Goto "D" I I 1----------------------------------------->I I I ----------------------------------------------------------! I No Device Response received when attempting to access I I I the address contained in the "TIMEOUT ADDRESS" register.I I I Problem is probably in the address logic of the device I I I which contains the address being accessed. I I I !--------------~------------------------------------------! I I 1---------------------------------------------------------1 I I Goto TIMEOUT ADDRESS flows to determine what device was I I I being accessed. I I !---------------------------------------------------------1 I I I 1---------------------------------------------------------1<---I I Device Busy Timeout occurred. Device being accessed is I I contained in the "TIMEOUT ADDRESS" register. The device! I recognized that it was being accessed, but was "busy" I I doing a previous command. The CPU timed out since 512 I I cycles went by and the device was still "busy". I I Problem could be almost anywhere in the accessed device I or on the arrays or array buses it is interfacing to. I 1---------------------------------------------------------1 I !---------------------------------------------------------! I Goto TIMEOUT ADDRESS flows to determine what device and I I the location-within the device that was being accessed. I 1---------------------------------------------------------1 1-25 I "D" "C" I I I I I !----------------------------->! !------------------------------------------------->! I I 1---------------------------------------------------------1<-------I I Waiting for Read Data Timeout occured. The device being! I accessed (whose address is contained in the TIMEOUT I I ADDRESS register) acknowledged the CPU's C/A cycle, but I I didn't send back the expected READ DATA within 512 SBI I I cycles. I I I !Problem could be almost anywhere in the controlling NEXUS! Ito the unit actually being addressed. I !---------------------------------------------------------! I !---------------------------------------------------------! I Goto TIMEOUT ADDRESS flows to determine what device and I I the location-within the device that was being accessed. I !---------------------------------------------------------! I I I I I I I I I I I I I I I I I I I I I I I 1---------------------------------------------------------1<-----------I I IMPOSSIBLE CODE. This code should never occur. I I Problem is most likely in the CPU's SBI control logic, I or in the DATA PATHS (may have picked a bit when moving I register first to T9 and then to the STACK). I I I I I !---------------------------------------------------------! l-26 "TIMEOUT ADDRESS" ------>I I I 1---------------------------------------------------------------1 I I Extract the "TIMEOUT ADDRESS" register from the STACK DUMP. I I I I It is the 9th logout entry (counting the 00000028 as #1). 1---------------------------------------------------------------1 -~Lt : --------------------'-~--------------------------------------! Extract Bits <27:00> from this register. Bits <27:00> of I the TIMEOUT ADDRESS register correspond to bits <29:02> of I the PHYSICAL BYTE ADDRESS of the device/location being I accessed. I I Convert the TIMEOUT ADDRESS Bits <27:00> to a 30-bit VAX I PHYSICAL BYTE addresi by first converting to binary, then I adding to binary zeros to the least significant end, and I then converting back to HEX. The resultant is the 30-bit I VAX Physical Byte Address of the device/location that the I VAX CPU was attempting to access at the time of the error. I -----------------------------------------------------------! I I -----------------------------------------------------------! I I I I I If you got here from an IB_READ_ERROR, the address must bel either a Physical MEMORY Address, or the address of one of I the locations in the ISP ROM (should only occur during a I boot). If it is an I/0 address, the problem has to do I with CPU addressing or address translation. I Now you know what type of error occured and who the CPU was attempting to access at the time of the error. With this. information, you should be able to zero in on the failing area of the system. ----------------------------------~------------------------! "E" I 1------------------------------------------------------------1 I An ERROR Confirmation was returned by the addressed device. I I This means that the function specified by the CPU in the I I C/A cycle. was either illegal or not implemented by this I I NEXUS device. I I I ! The problem could be a CPU problem, a Software problem, or I a NEXUS problem. I I The TIMEOUT ADDRESS register should indicate which NEXUS I was being accessed. I 1------------------------------------------------------------1 I <-------------------------------1 1-27 "TB ERR" I 1--------------------------------------------------------1 I Extract "TB ERROR Register #0" from the STACK DUMP. I I It is the 7th logout entry (counting the 00000028 as I I entry #1). I 1--------------------------------------------------------1 I 1--------------------------------1 no I Is Bits <04:01> equal to 0? 1--------> goto 1--------------------------------1 FORCED TB PAR ERR I yes yes 1---------------------1 no 1---------------------------1 <-----1 Is Bit <00> = 1 ? 1---->IMemory Management is OFF ? I 1---------------------1 1---------------------------1 I 1------------------------------------------------1 I Should never have gotten a Parity Error since I I memory management wasn't turned on, therefore I I the Translation Buffer wasn't used. I 1------------------------------------------------1 I 1------------------------------------------------1 I Problem is in the error detection logic. I 1-------------------------~----------------------I "" 1-----------------------------------------------------1 I Extract "TB ERROR Register #1" from the STACK DUMP. I I It is the 8th logout entry (counting the 00000028 asl ! entry #1). I l---~-------------------------------------------------1 I 1------------------------------------------1 no I I Are any of Bits <20:09> equal to a 1 ? 1------------->I 1------------------------------------------1 I 1------------------------------1 I Any of Bits <14:09> = 1 ??? I 1------------------------------1 l<-------------1 yes I no I 1-------------------------------1 1-------------------------------1 I I "TAG Parity Error" flagged. I I "PTE Parity Error" flagged. I I I Problem is most likely on the I I Problem is most likely on the I I I M8220 board. Could also be onl I M8222 board. Could also be onl I I M8222, M8226, M8219, M8223, I I the M8237, M8218, M8219, M8223, I I I M8224, M8226, M8230, M8233/8'sl I M8224, M8226, M8227, M8228, I I I M8234, M8286, M8236, or KA780 I IM8230, M8231, M8233/8's, M8234, I I I backplane or power. I IM8235, M8286, M8287, M8236, or I I 1-------------------------------1 I the KA780 backplane or power. I I I 1-------------------------------1 I 1---------------------------------1 I !Check for other TB Parity Errors 1---> 1------------------------------1 I 1---------------------------------1 I Any of Bits <20:15> = 1 ??? 1-->I !------------------------------! yes I no I then exit 1-28 "FORCED- TB- PAR- ERR" I I I 1----------------------------------------------------------------1 I I I I None of these bits should ever be set in normal operation. These may be set by diagnostics, but should have been cleared prior to booting of the operating system or the Diagnostic Supervisor. I I I I !----------------------------------------------------------------! I I I I 1------------------------------------------------------------------1 I I I Either the software that you are running is setting these bits I so as to cause a "Translation Buffer Parity Error" or the M8222 I board is probably bad. I 1---------------------------------------------------------------~--1 1-29 "CACHE ERR" I I 1---------------------------------------------------------------1 I Extract the "CACHE PARITY Register" from the STACK DUMP. I This is the 10th logout entry (counting the 00000028 as #1). I I !---------------------------------------------------------------! I I 1----------------------------------------------------------1 I Is any of Bits <13:00> = 0 ??? These bits are a "O" to I I indicate a parity error in the associated group and byte.I 1----------------------------------------------------------1 I yes I no I I I !-------------------------------------------! I I False detection of a cache parity error. I I I Problem is probably in the error detection! I I logic or microsequence logic.· I I !-------------------------------------------! I I !--------------------------------! yes I Is any of Bits <13:06> = O ??? 1-------------->I I ----------~--------------------! I I no I I I I I I I I I I I I I I 1-----------------------------------------------~-I I "Cache DATA Parity Error" flagged. ! The M8221 is most likely bad. Could also be I the M8218, M8219, M8223, M8225, KA780 backplane I or KA 7 8 0 power. I ! I I !-------------------------------------------------! I I I I I I I<--------I I !--------------------------------------! I "Cache TAG Parity Error" flagged. I ! The M8220 is most likely bad. Could I I also be the M8218, KA780 backplane, I I or KA780 power. I -------------------------------------- !--------------------- I Check to see if any I other Cache errors. 1--------------------I 1---------------------1 I Any of Bits <05:00> I I equal to a "O" ??? 1---------------------1 I I yes '<------! I no then exit 1-30 "RDS ERR" I 1--------------------------------------------------------------------1 I Multiple bits were detected bad by the accessed SBI NEXUS wheri it I attempted to get the data that the CPU requested. I I I I I Indicates that a problem exists in the referenced SBI NEXUS. I This NEXUS will be an SBI MEMORY CONTROLLER. I I I I I This type of error easiest to trouble-shoot by using the contents I I of the memory control registers in order to find the failing array. I 1--------------------------------------------------------------------1 I I 1----------------------------------------------------------------------1 I Find the contents of all the SBI Memory Nexus registers either by I I examining error log files, or by using CONSOL.SYS commands to examine! I these registers. The CONSOL.SYS method can only be used if the CPU I I was halted before the software was able to clear the memory control I I registers. I 1----------------------------------------------------------------------1 I I 1----------------------------------------------------------------------1 I The memory controller who detected the error should have error bits I set that indicate that a multiple bit error was detected and the I array in error should be latched. I Look in: I "Memory Register C" for MS780A's and MS780C's I "Memory Register C & D" for MS780E's and MS780F's I "Array Error Register" for MA780' s I I I I I I I 1----------------------------------------------------------------------1 I I 1----------------------------------------------------------------------1 I Problem is typically an array problem, but could also be the SBI I Memory control board(s), memory power, memory backplane, M8218, or I M8219. I I I !----------------------------------------------------------------------! 1-31 "CS PAR ERR" I 1-------------------------------------------------------------1 I Extract the "CPU ERROR STATUS Register" from the STACK DUMP I I It is the 3rd logout entry (counting the 00000028 as #1). I 1-------------------------------------------------------------1 I 1---------------------1 no 1-------------------------------1 I Is Bit <15> = 1 ??? 1-------->I Is any of Bits <14:12> =l ??? I 1---------------------1 1-------------------------------1 I yes I yes I no I I I I I I 1------------------------------1 I I CS Summary bit probably bad. I !Check M8231. Still a possible I !Control Store Parity Error. I 1------------------------------1 I 1------------------------------------------------------------1 I Bits <14:12> indicates the specific group (2,1, or 0) that I I that the Parity error was detected in. Log this information! I for future use in case problem is not fixed immediately. I 1------------------------------------------------------------1 I I I I I I I I 1------------------------------------------------------------1 I Extract the "TRAPPED Micro-PC Register" from the STACK DUMPI I It is the 4th logout entry (counting the 00000028 as #1). I 1------------------------------------------------------------1 I 1--------------------1 no 1----------------------------------1 !Trapped UPC> FFF ? 1----->IProblem occured while accessing a I 1--------------------1 !PCS microword. The M8234 should bel I yes I replaced as a 1st try. I I 1----------------------------------1 I I !--------------------------------------------------------! I I Problem occured while accessing a micro-word in WCS. I I I Bits <11:10> of the UPC indicate the WCS slot in error.I I I The appropriate M8233/M8238 should be replaced 1st try.I I 1--------------------------------------------------------1 I I I 1---------------------------------------------------------------1 I If 1st try fails; try those module that receive or transmit onl I the Control Store Bus for the micro-bits associated with the I I failing group. Charts indicating which boards are in question! I for each group can be found in chapter 1 under the section forl I Control Store Parity Errors. I I I I I I I I I I I I I I I 1---------------------------------------------------------------1 I I l<------------------------------------------1 !---------------------------------------------------------------------! I False detection of a Control Store Parity Error. Problem is in the I I error detection circuitry and is probably one of the following: I I M8230, M8231, M8222, M8235, KA780 Backplane, or power. I !---------------------------------------------------------------------! 1-32 "MICRO_SEQ_ERR" I I I 1------------------------------------------------------~-------I I Extract the "TRAPPED Micro-PC Register" from the STACK DUMP. I I It is the 4th logout entry (counting the 00000028 as #1). I 1--------------------------------------------------------------1 I I I 1---------------------------------------------------------------1 I This address can be verified in the micro-fiche to verify thatl I it is indeed an unused micro-word. However, this problem is I I a micro-sequencer/micro-PC problem no matter how you look at I I it. I 1------------------------------------------~--------------------I I I I 1----------------------------------------------------------------1 I This problem is most likely the M8235 board. Could also be I I the M8224, the M8234, an M8233 or M8238, or the KA780 backplane! I or KA780 power. I 1----------------------------------------------------------------1 1-33 1.) ***** Cache Parity errors ***** The "Parity" register is normally all that is needed to trouble shoot this type of Machine Check. Cache Parity is checked when the data is read from cache. The SBI control checks parity of SBI data as it is sent to the Cache from Memory. Cache Tag Parity is generated on the "CAM" board on a cache write and checked on the "CAM" board on a read from cache. Cache Data Parity is checked on the "COM" board. Bit #15 of ID Register #lE, equal to a 1, indicates that a Cache Parity error occur~ed. If Bit #14 of ID #lE is set, the read reference was from the CP (micro-code). This bit is not really an error flag but simply states who made the reference that caused the Cache Parity Error. If Bit #15 is not set, this bit is of no real importance. If Bit #14 of ID #lE is cleared, the read reference was from the IB (Instruction Buffer). Not an error flag bit. Bits <13:06>, of ID #lE, define the Group and Byte of Bad DATA that the parity error was detected upon. Beware, the bad Group and Byte are indicated by a 0 in the appropriate bit location. These bits = l indicate parity was good. Bits <05:00>, of ID #lE, define what Group and Byte has a bad address tag. Beware, the bad Group and Byte are indicated by a 0 in the appropriate bit location. These bits = 1 indicate parity was good. ID Register #lE is stored in "(SP)+36" by the machine check logout. It is stored in ID Register #38 on a Double Error Halt's first error. The Cache Data Matrix is on the "COM" (M8221) board. Cache Address Martix is on the "CAM" (M8220) board. The If ID Register #lE contains a parity error indication for the instruction buffer, the register is automatically cleared when the instruction buffer is flushed. 1-34 Problem areas if Cache "DATA Parity Error" : 1. cache Data Matrix - M8221 - "COM" - Slot 5 Parity is checked as it is being read from the matrix. Parity that is written into the matrix comes directly from the MD bus (not checked or generated by the cache control logic on the way into the matrix). 2. SBI Control/Interface boards: a. If problem is in "BYTE #1 or #0" SBI Interface Low bits - M8218 - "SBL" - Slot 2 b. If problem is in "BYTE #3 or #2" SBI Interface High bits - M8219 - "SBH" - Slot 3 The SBI Control boards do not check the parity on the received MD Bus data but do generate parity for the data that is written from the SBI to the MD bus. The M8218 uses the output from the parity checkers to generate "SBLP GO or Gl Par Err". 3. Instruction Buffer - M8223 - "IDP" - Slot 7 Receives "Bus MD <31:00>" but NOT "Bus MD Byte <3:0> Parn. Therefore, the Instruction Buffer does not check parity on the data used from the MD Bus. 4. Data Aligner - M8225 - "DBP" - Slot 9 Transmits "Bus MD <31:00> + Bus MD Byte <3:0> Par". Receives "Bus MD <31:00>" but NOT "Bus MD Byte <3:0> Par", therefore, parity is not checked on "Bus MD <31:00> prior to use by the data path boards. 5. KA780 backplane 6. KA780 backplane power 1-35 Problem areas if Cache "TAG Parity Error" 1. Cache Data Matrix - M8220 - "CAM" - Slot 4 Parity is generated on the "Bus PA <29:12> bits" prior to being written into the Tag Matrix. Parity is checked as it is being read from the Tag Matrix, prior to use. 2. SBI Interface Low - M8218 - "SBl" - Slot 2 This board uses the output from the parity checkers to create a "SBLP GO Par Err" or "SBLP Gl Par Err" signal. 3. KA780 backplane 4. KA780 backplane power Disabling CACHE by KA780 backplane jumpers. If you cannot obtain the correct cache boards in order to fix a cache parity error problem, you may still be able to get the system up by installing the following jumpers: D04Pl to a ground pin D04P2 to a ground pin This will cause a cache miss on all references. will run much slower than normal. Therefore, the system This should only be done in case of an emergency. You must let the customer know that cache is disable, since it may cause problems due to program timing problems. 1-36 ID Register #lE 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 Bits <31:16> ************ Not used, should be all zeros. Bits <15:14> ************ 15 14 0 1 1 1 0 1 Bits <13:06> ************ Data Parity OK for specified Group and Byte if the associated bit is set. Parity OK for CDM Group 1 Byte 0 Parity OK for CDM Group 1 Byte 1 Parity OK for CDM Group 1 Byte 2 Parity OK for CDM Group 1 Byte 3 Parity OK for CDM Group 0 Byte 0 Parity OK for CDM Group 0 Byte 1 Parity OK for CDM Group 0 Byte 2 Parity OK for CDM Group 0 Byte 3 13 12 11 10 09 08 07 06 Bits <05:00> ************ 05 04 03 02 01 00 No Error IB read reference caused the'error CP read reference caused the error - Address Parity OK for each Group and Byte if the associated bit is set. Parity OK for CAM Group 0 Byte 0 Parity OK for CAM Group 0 Byte 1 Parity OK for CAM Group 0 Byte 2 Parity OK for CAM Group 1 Byte 0 Parity OK for CAM Group 1 Byte 1 Parity OK for CAM Group 1 Byte 2 1-37 2. ) * * * * * Translation Buffer Parity errors ***** The TB ERR Registers, #0 and #1, are all that are needed to trouble-shoot Translation Buffer Parity error Machine Checks. TB Data Parity is written as it was on the ID bus. TB Data Parity is checked on the "TBM" (M8222) board as it is read. TB Tag Parity is generated on the "CAM" board and is checked on the "CAM" board on a read from the translation buffer. The TB Tag= "VAMX<30:15>" or "ID bus <31:26>". The TB Data= "ID bus <20:00>". Bits <20:09> of ID Register #13 define what the GROUP and whether it was a DATA Byte or ADDRESS Byte that caused the Translation Buffer Parity error. The Translation Buffer ADDRESS matrix is on the "CAM" (M8220) board. The Translation Buffer DATA matrix is on the "TBM" (M8222) board. Problem areas if Translation Buffer "TAG Parity Error": 1. Cache Address/TB Address Matrix - M8220 - "CAM" - Slot 4 Parity is generated on "VAMX bits <30:15>", and is written into TAG Matrix, on this board. Parity is checked, on this board, as the TAG is being read. The "Modify, Protect <3:0>, and Valid" bits are written from the ID bus. The associated parity bit for these bits also comes from the ID bus (it is NOT generated or checked on th i s board ) . 2. Translation Buffer Matrix - M8222 - "TBM" - Slot 6 The output of the parity checkers goes to this board (used to set appropriate bits in "TB Register 0"). The "VAMX bits" feed this module along with the "CAM'' board (MS 2 2 0) • 1-38 3. Data Path bits <31:16> - M8226 - "DEP" - Slot 10 The "VAMX bits" are created on this board and the "Bus ID bits <31:26>, that are used to write the "Modify, Protect <3:0>, and Valid" bits, are used on this board. 4. Any board that sends or receives the "Bus ID bi ts <31:26>". following boards have receivers/drivers for these bits: SBI Interface/Control High Cache Address Matrix -----Instruction Data Path Instruction Decode -------Data Path bits <31:16> Condition Codes/Exceptions Optional wcs Writable Control Store Prom Control Store -------Fraction Multiplier High Console Interface Board -------------- 4. KA780 backplane 5. KA780 backplane power M8219 - "SBH" - "CAM" M8220 M8223 - "IDP" M8224 - "IRC" M8226 - "DEP" M8230 - "CEH" M8233/8 - "OCS" M8233/8 - "WCS" - "PCS" M8234 - "FMH" M8286 - "CIB" M8236 The Slot 3 Slot 4 Slot 7 Slot 8 Slot 10 Slot 14 Slot 18 Slot 20 Slot 22 Slot 25 Slot 29 Problem areas if Translation Buffer "DATA Parity Error": 1. Translation Buffer Matrix - M8222 - "TBM" - Slot 6 Parity is not generated, on this board, for the data to be written into the DATA Matrix from the ID Bus. The parity bits that are written are the ID Bus Parity bits as received from the bus. Parity is checked as the data is read from the DATA matrix. 2. Any board on the ID bus that transmits or receives "Bus ID bits <20:00>". The following boards do this: Terminator and Silo - M8237 - "TRS" - Slot 1 SBI Interface Low Bits - M8218 - "SBL" - Slot 2 SBI Interface High Bits - M8219 - "SBH" - Slot 3 Translation Buffer - M8222 - "TBM" - Slot 6 Instruction Data Path - M8223 "!DP" - Slot 7 Instruction Decode M8224 "!RC" Slot 8 1-39 - "DEP" - Slot 10 Data Path bits <31:16> - M8226 - "DDP" - Slot 11 Data Path bits <15:08> - M8227 Data Path bits <07:00> - M8228 - "DCP" - Slot 12 - "CEH" - Slot 14 Cond. Codes/Exceptions - M8230 - "ICL" - Slot 15 - M8231 Interrupt Control - M8233/8 - "OCS" - Slot 18 Optional WCS Writable Control Store - M8233/8 - "WCS" - Slot 20 - "PCS" - Slot 22 PROM Control Store - M8234 Microsequence Control - M8235 - "USC" - Slot 23 - "FMH" - Slot 25 Fraction Multiplier Hi - M8286 - "FML" - Slot 26 Fraction Multiplier Low - M8287 Console Interface Board - M8236 - "CIB" - Slot 29 3. KA780 backplane 4. KA780 backplane power 1-40 ID #12 Translation Buffer Register #0 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 Bits <20:18> ************ 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 Force Replace Directs TB writes to defined groups. 20 - Write Both 19 - Force Replace Group 1 18 - Force Replace Group 0 Bits <17:16> ************ Force Miss Force TB miss on the defined group. 17 - Group 1 16 - Group 0 Bits <15:08> ************ Last Reference Data on last non-nop memory reference. 15 _, __ _ Status of micro-FS bit 14 ---- Status of micro-ADS bit 13: l 0 - Status of micro-MCT field 1 means IB WCHK existed on an IB reference 09 08 ---- 1 means reference delayed one cycle by IB auto-reload Bits <07:06> ************ TB Hit Indicates which group was a TB hit. 07 - Group 1 06 - Group 0 1-41 Force TB Parity Error Bits <04:01> ************ Allows bad parity to be generated in the encoded Group and Byte. Code of 0 - No errors Code of 1 - No errors Code of 2 - Group 0 Data Byte 0 Code of 3 - Group 0 Data Byte 1 Code of 4 - Group 0 Data Byte 2 Code of 5 - Group 1 Data Byte 0 Code of 6 - Group 1 Data Byte 1 Code of 7 - Group 1 Data Byte 2 Code of 8 - Group 0 Address Byte 0 Code of 9 - Group 0 Address Byte 1 Code of A - Group 0 Address Byte 2 Code of B - Group 1 Address Byte 0 Code of c - Group 1 Address Byte 1 Code of D - Group 1 Address Byte 2 Code of E - No errors Code of F - No errors Bit <00> ******** MME If a 1, enables Memory Management. 1-42 ID #13 Translation Buffer Register #l 0 0 0 0 7 6 5 4 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 1 0 9· 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 0 0 0 0 3 2 1 0 TB Parity Error Status Bits <20:09> ************ Translation Buffer Error Status. When set indicates a parity error in the associated Group and Byte. 20 - Group 1 Data_Byte 2 Parity error 19 - Group 1 Data_Byte 1 18 - Group 1 Data_Byte 0 Parity error Parity error Parity error Parity error 17 - Group 0 Data_Byte 2 16 - Group 0 Data_Byte 1 15 14 13 12 - Group 0 Data_Byte 0 Parity error Group 1 Address_Byte 2 Parity error Group 1 Address_Byte 1 Parity error Group 1 Address_Byte 0 Parity error 11 - Group 0 Address_Byte 2 Parity error 10 - Group 0 Address_Byte 1 Parity error 09 - Group 0 Address_Byte 0 Parity error Bit <08> ******** CP TB Parity Error Indicates a TB micro-trap has been requested. Bit <06> ******** Last TB Write Pulse Indicates which TB group was last written. written into. 0 = Group 0 1 Group 1 1-43 Unpredictable if both were Bit <04> Bad IPA ******** Contents of IPA are not meaningful if this bit is set. Bits <03:00> IPA information ************ Status of the last load from the IPA. 3 = 1 for TB miss on load. 2 1 for TB parity error. 1 1 for Protection violation or miss. 0 1 for automatic hardware initiated load. 1-44 3. ) * * * * Control Store Parity errors (PCS, WCS, or OCS) **** Two registers are used to trouble-shoot this type of Machine Check. They are as follows: CPU Error Status (CES) for Group the error occurred in. Trapped UPC for the micro-address of the error. Bit <15> of the CES register must be a l if a Control Store parity error occurred. If CES Bit <15>=0, then the problem could be either the microcode board (M8234, M8238, or M8233) whose address appears in the "Trapped UPC", or one of the following boards: M8231 Contains the register ("CES") that holds the "CS Par Err Summary" bit and the "CS Par Err Group <2:0>" bits. M8222 Receives the "CS Parity Error" signals to use to stop TB operations. M8230 Creates the signals needed to trap the microcode for a CS Parity Error. M8235 Controls the micro-addressing. Bit <12> of the "TRAPPED UPC" identifies where the Control Store Parity Error was generated from (WCS or PCS). If Bit <12> is a 0, then the problem occurred as a result of a PCS (M8234) access. If Bit <12> is a 1, then the problem occurred as a result of a WCS (M8233 or M8238) access. If an Optional WCS board is installed, further breakdown of the "TRAPPED UPC" address will reveal which WCS board is at fault. The following statements will define the board at fault providing the lowest addressed WCS/OCS board is in slot 20 (addressing is controlled by VAX-11/780 backplane jumpers): If there is an M8233 (lK board) in Slot 20 and: Bit <12>=1, Bit <10>=0 then wcs in Slot 20 had the error. Bit <12>=1, Bit <10>=1 then Optional WCS (slot 18) had the error. If there is an M8238 (2K board) in Slot 20 and: Bit <12>=1, Bit <11>=0 then WCS in Slot 20 had the error. Bit <12>=1, Bit <11>=1 then Optional WCS (slot 18) had the error. 1-45 The "Parity Error" checking logic is located on the PCS (M8234) logic board. The 96 bit micro-word is broken into three 32 bit sections, each with an associated parity bit, and parity is checked on each section individually. Parity should be EVEN (an even number of ones in each 32 bit section counting the associated parity bit). Use the bit configuration layout for ID register #20 for the "TRAPPED UPC" bit definitions. The "TRAPPED UPC" is stored in "(SP)+l2" on a MACHINE CHECK logout. The "TRAPPED UPC" remains in ID #32 for the first error of a DOUBLE ERROR HALT. The "CPU Error Status Register" bits <14:12> define the failing 32 bit section of the 96 bit Micro-code word. Bits <31:00> = Group 0 Bits <63:32> = Group 1 Bits <95:64> = Group 2 ( CES Bi t 12 = 1) ( CES Bi t 13=1 ) (CES Bit 14=1) - Pin A22Al - Pin A22Sl - Pin A22U2 If an OPTIONAL WCS board is installed in the System, Jumpers "W23 & W24" must be installed on the M8232, "CLK", board. If the jumpers are out, attempted access of the Optional WCS board will result in Control Store Parity Errors in all groups (the micro-word sent to "CS" bus is all ones). The same symptom will occur, when accessing any Micro-code board, if the clock lines are bad. Be aware that the WCS data can only be written by the LSI Subsystem. WCS data cannot be read by the LSI Subsystem. Problem areas: PCS, WCS, or OPTIONAL WCS. Incorrect setup of KA780 backplane jumpers for WCS and PCS. No jumpers, for OPTIONAL WCS, on M8232. Any Board on the "CS" bus. M8232 Clock Board. CPU Backplane. CPU Power or Backplane Power Pin to Module connections. 1-46 ID #OC 3 3 2 2 2 2 2 2 1 0 9 8 7 6 5 4 Bit <16> CPU Error Status Register 2 2 2 2 3 2 1 0 1 1 1 1 1 1 1 1 9 8 7 6 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 Nested Error ******** Used by Memory Management. Bit <15> Control Store Parity Error Summary ******** Set if any of Bits <14:12> are set. Bits <14:12> Control Store Parity Error bits ************ When set, indicates a parity error was detected in the associated group. 14 - Group 2 Parity Error 13 - Group 1 Parity Error 12 - Group 0 Parity Error Bit <11> E ALU N ******** Bit <10> E ALU Z ******** Bit <09> ALU N ******** Bit <08> ALU Z ******** 1-47 Bit <07> ******** ALU C31 Bits <06:04> ************ Arithmetic Trap Code The octal code in these bits defines the type of arithmetic trap. 7 Decimal divide by o. 6 = Decimal overflow. 5 = Float underflow. 4 = Float divide by 0. 3 = Float overflow. 2 = Integer divide by o. 1 = Integer overflow. 0 = No trap pending. Bit <03> ******** Performance Monitor Enable Loaded or read by the microcode. Bits <02:01> ************ AST Level Used to deliver AST SIR during RET. ID #20 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 Micro Stack Register 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 Reading this register pops the top address from the micro stack. Writing this register pushes an address onto the micro stack. Bits <15:00> ************ Control Store Address <15:00> <15:00> = micro Address <15:00> 1-48 Voltages to the Micro-code Boards The Microcode boards use +5 volts and -5 volts. may be checked at the following places: These voltages +5 volts should be on pins "A2" and "Vl" of rows "A" thru "F" of each slot that contains a Microcode board. -5 volts should be on pins "BL2" and "EKl" of each slot that contains a Microcode board. Ground is on pins "C2" and "Hl" of rows "A" thru "F" of each slot that contains a Microcode board. M8235 LED description The M8235, Micro Sequencer board, contains 14 LED's that reflect the following: 1.) 2.) "Dl - Dl3" "Micro PC 00 - 12" "Dl4" ="STALL" respectively. LED "Dl" is the bottom most LED while LED "Dl4" is the uppermost. 1-49 CS Bus Groups .and CS Bit Breakdown Besides going to all the Microcode boards the "Bus CS" bits also go to the following boards: Group 0 <12:00> <19:13> <22:20> <24:23> <25> <26> <31> M8235 M8227 M8230 M8227 M8228 M8230 M8230 - USC OOP CEH OOP OCP CEH CEH - Slot 23 Slot 11 Slot 14 Slot 11 Slot 12 Slot 14 Slot 14 Group 1 <34:32> <41: 35> <45:42> M8228 M8229 M8231 M8222 M8222 M8229 M8229 M8289 M8231 M8228 M8231 - OCP OAP ICL TBM TBM OAP OAP FCT ICL OCP ICL - Slot 12 Slot 13 Slot 15 Slot 6 Slot 6 Slot 13 Slot 13 Slot 28 Slot 15 Slot 12 Slot 15 M8235 M8229 M8289 M8235 M8231 M8235 M8229 M8229 M8230 M8229 M8225 M8223 - USC OAP FCT USC ICL USC OAP OAP CEH OAP OBP IOP - Slot 23 Slot 13 Slot 28 Slot 23 Slot 15 Slot 23 Slot 13 Slot 13 Slot 14 Slot 13 Slot 9 Slot 7 <47:46> <54:48> <57:55> <58> <63> Group 2 <65:64> <69:66> <71: 70> <74:72> <76:75> <77> <79:78> <87:80> <91:88> <95:92> Note: Remember that "Bus CS <95:00>" also go to slots 18,20 and 22. 1-50 Chart showing "Bus CS" bits to each Board by Board M8222 "TBM" <45:42> <47:46> - Group 1 Group 1 "DBP" slot 9 <91:88> - Group 2 M8225 M8228 "DCP" <25> <34:32> <58> "CEH" M8230 <22:20> <26> <31> <79:78> - "USC" M8235 <12:00> <65:64> <74:72> <76:75> - M8223 Slot 6 M8227 Slot 12 M8229 Group O Group 1 Group 1 Slot 14 M8231 Group 0 Group 0 Group 0 Group 2 M8289 Groups 0,1,2 M8233/M8238 <95:00> - Slot 18 Groups 0,1,2 "WCS" "DDP" "OAP" "ICL" "FCT" <57:55> <71:70> - Group 0 Group 2 Group 2 Group 2 <95:00> - <95:00> - Group 2 <45:42> <58> <63> <74:72> - Slot 23 "OCS" <95:92> - <41:35> <54:48> <57:55> <69:66> <77> <79:78> <87:80> - Slot 22 M8233/M8238 Slot 7 <19:13> <24:23> - "PCS" M8234 "IDP" Slot 20 Groups 0,1,2 1-51 Slot 11 Group 0 Group 0 Slot 13 Group 1 Group 1 Group 1 Group 2 Group 2 Group 2 Group 2 Slot 15 Group 1 Group 1 Group 1 Group 2 Slot 28 Group 1 Group 2 Chart showing "Bus CS" Groups to each Board Board Group 0 Group 1 x M8222 x x M8223 M8225 M8227 x M8228 x x x M8229 M8230 x x M8231 M8233 M8234 M8235 M8238 Group 2 x x x x x x M8289 1-52 x x x x x x x x x x Using the Microcode Sync Point for scoping of the CS Bus The VAX-11/780 CPU has a "Microcode Sync Pain~" that can be set up to provide a scope trigger whenever the Microcode reaches a specified address. To use this feature, proceed as follows: 1. Determine what Micro PC you want the Sync to trigger at. 2. Deposit, uiing the CONSOL.SYS program, the address into ID register #21. 3. Place your scopes SYNC on pin "A23V2" of the CPU backplane. 4. Start the failing Macro program. 5. You can now scope the "CS" bus to determine what bit(s) are bad. The VAX-11/780 CPU also has logic that can stop the CPU when the microcode reaches a specified Micro PC. This feature may be used as follows: l. Determine what Micro PC you want the CPU to halt at. 2. Deposit, using the CONSOL.SYS program, the desired address into ID register #21. 3. Set, using the CONSOL.SYS program, the Stop or Micro Match bit with the "SET SOMM" command. 4. Start the appropriate failing macro program. The VAX-11/780 CPU will halt when it reaches the Micro PC specified in ID register #21. You can then scope the logic in the static state. 5. Be sure to execute the "CLEAR SOMM" command before returning the system to the customer. 1-53 The Control Store Bit Backplane pin layout follows for the slots that contain WCS and PCS boards (18, 20, and 22). Group 0 Bus CS 00 - ABl Bus CS 01 - AB2 Bus CS 02 - ACl Bus CS 03 - ADl Bus cs 04 - AD2 Bus CS 05 - AEl Bus CS 06 - AE2 Bus CS 07 - AFl Bus CS 08 - AJ2 Bus CS 09 - AKl Bus CS 10 - AK2 (VAX CPU Slot 18. 20. or 22.) Bus cs 22 - BM2 Bus cs 11 - ALl Bus cs 23 - AV2 Bus cs 12 - AL2 Bus cs 24 - BDl Bus cs 13 - AM2 Bus cs 14 - ARl Bus cs 25 - BD2 Bus cs 26 - BNl Bus cs 15 - AR2 Bus cs 16 - BAl Bus cs 27 - BPl Bus cs 17 - BBl Bus cs 28 - BP2 Bus cs 18 - BB2 Bus cs 29 - BRl Bus cs 30 - BR2 Bus cs 19 - BCl Bus cs 20 - BLl Bus CS 31 - BSl Bus cs 21 - BMl Bus CS UPAR 0 - FL2 Group 1 Bus cs 32 - BEl Bus CS 33 - BE2 Bus CS 34 - BFl Bus CS 35 - BS2 Bus CS 36 - BT2 Bus CS 37 - BUl Bus CS 38 - BU2 Bus CS 39 - BV2 Bus CS 40 - CCl Bus CS 41 - CDl Bus CS 42 - CP2 (VAX CPU Slot 18.20. or 22.) Bus cs 43 - CSl Bus cs 54 Bus cs 44 - CS2 Bus cs 55 Bus cs 45 - CT2 Bus cs 56 Bus cs 46 - cu1 Bus cs 57 Bus cs 47 - CU2 Bus cs 58 Bus cs 48 - CD2 Bus cs 59 Bus cs 49 - CNl Bus cs 60 Bus cs 50 - CPl Bus cs 61 Bus cs 51 - DP2 Bus cs 62 Bus cs 52 - DT2 Bus CS 63 Bus cs 53 - DUl Bus CS UPAR 1 - DU2 DD2 DF2 DH2 DJl DJ2 DMl DNl DPl DS2 FMl Group 2 Bus CS 64 Bus CS 65 Bus CS 66 Bus CS 67 Bus CS 68 Bus CS 69 Bus CS 70 Bus CS 71 Bus CS 72 Bus CS 73 Bus cs 74 - (VAX CPU Slot 18.20. or 22.) Bus cs 75 - ENl Bus cs 86 Bus cs 76 - EPl Bus cs 87 Bus cs 77 - EBl Bus cs 88 Bus cs 78 - FAl Bus cs 89 Bus cs 79 - FBl Bus cs 90 Bus cs 80 - FCl Bus cs 91 Bus cs 81 - FLl Bus cs 92 Bus cs 82 - FSl Bus cs 93 Bus cs 83 - FS2 Bus cs 94 Bus cs 84 - FT2 Bus CS 95 Bus cs 85 - FUl Bus CS UPAR 2 - FU2 FV2 FPl FP2 FRl FR2 FJl FJ2 FKl FK2 FM2 EH2 EJl EP2 ES2 ET2 EUl DCl DDl EJ2 EK2 EMl 1-54 4. ) * * * * * CPU READ Timeouts or Error Confirmation Aborts ***** during Instruction Buffer ("IB") or Micro-code ("CP") accesses. Two registers are needed to correctly trouble-shoot this type of Machine Check. They are as follows: TIMEOUT Address to determine what device or location was being referenced when error occurred. SBI Error Reg. to determine what type of error occurred. The VAX-11/780 Processor initiates accesses to SBI NEXUS from two separate sources. The VAX microcode can initiate "read or write" accesses to any address and does so to obtain operands (these operands may be used to calculate source/destination addresses or may be the operand that will be operated on. ). The Instruction Buffer is the other source from which the CPU can initiate an SBI data transfer. The IB, however, can only do read accesses and these accesses are used to fetch instruction stream data. This type of error occurs whenever one of the following types of conditions has occurred: 1. An attempt was made to access a non-existent NEXUS address or a NEXUS did not respond when accessed. This will result in the VAX CPU receiving a "NO DEVICE RESPONSE" confirmation on the second cycle following the "Command Address" or "Write Data" cycle. A "NO DEVICE RESPONSE" confirmation is when the SBI CNF<l:O> lines are deasserted. The CPU will wait a cycle and then retry the cycle that got the NO DEVICE RESPONSE confirmation. If 512 cycles elapse, from the initial C/A cycle, before an ACKNOWLEDGE confirmation is received the CPU will timeout and a Machine Check Exception will occur. 2. The CPU detected a "Device Busy" response from a NEXUS and 512 SBI cycles later, still receives a "Device Busy" response on attempted accesses. Whenever the VAX CPU detects a "Device Busy" response, it will wait a cycle, and then will arbitrate for the bus in an attempt to retry the same transfer. This continues until the CPU receives an "Acknowledge" confirmation response or until 512 SBI cycles have occurred from the first transfer attempt (in this case, the CPU will timeout and a Machine Check exception will occur). 3. The CPU receives an "Error" confirmation to a "Command Address" transfer. This usually means that the CPU has requested a function that the NEXUS cannot perform. 1-55 The "TIMEOUT ADDRESS", ID Register #lA, latches the SBI PHYSICAL Longword Address whenever an SBI CP Timeout occurs. When using this ID register, be aware that ID #lA bits <27:00> are bits <29:02> of the PHYSICAL BYTE ADDRESS. The SBI address is a LONGWORD address. To convert to a BYTE Physical address, simply insert two BINARY ZERO's to the right of the least significant digit (first convert the LONGWORD S.B.I. address from HEX format to BINARY format, then add two zeros to the right, least significant digits, and then convert the result back to HEX format). The "TIMEOUT ADDRESS", ID #lA, does not latch the physical SBI address for IB data timeouts, but ID #lA "may" still be valid. The "TIMEOUT ADDRESS", ID Register #lA, is stored in "(SP)+32" on a MACHINE CHECK logout. It is stored in ID register #37 on the first error of a Double Error Halt. Bits <27:00> of ID Register #lA, are Bits <29:02> of the SBI Physical Byte Address. The SBI uses Longword Addresses. Bits <31:30> contain the "MODE" of the reference and Bit 29 flags whether or not a hardware protection check was done. Instruction Buff er accesses should always be "reads" in order to obtain instruction stream data. Therefore, they should always be to a memory location or ISP ROM location. ID register #19 identifies the type of error that occurred. If Bit 12=1 a CP timeout occurred and Bits <11:10> identify the type of timeout. If Bit 06=1 an !B timeout occurred and Bits <5:4> identify the type of timeout that occurred. If Bit 08=1 the error was due to an Error Confirmation as a result of a CP reference. If Bit 03=1 the error was due to an Error Confirmation as a result of an IB reference. ID register #19 also contains some other bits that may be of interest. Bit 13 flags the fact that a multiple bit error occurred in memory and that the data received by the VAX CPU is bad. Bit 7 flags the fact that a multiple bit error occurred in memory while fetching data for the Instruction Buffer (IB). Bit 2 flags a Multiple CP error, (another error occurred before the first error was cleared). Problem areas: CPU SBI interface. CPU Memory/CACHE control. Memory. Any Nexus. Power. SBI cables. 1-56 ID #19 3 3 2 2 1 0 9 8 - SBI Error Register 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 RDS Interrupt Enable Bit <15> ******** Enable interrupts for Read Data Substitute (Bad Data) errors. Bit <14> ******** CRD Received corrected read data (CRD) from memory. Bit <13> ******** RDS Received read data substitute (RDS) from memory. Bits <12:10> ************ If 12 = 1, cycle. 12 11 10 l 1 1 l 0 0 0 1 1 Bit <08> ******** l 0 1 CP Timeout Status indicates a timeout occurred as a result of a CP requested "No Device Response" timeout. "Device Busy" ti~eout. "Waiting for Read Data" timeout. Impossible code. CP SBI Error Confirmation Set when the CP requested cycle received an error confirmation to a command address transfer. Bit <07> ******** IB RDS Read data substitute {RDS) data was received from memory on an IB data· request. 1-57 Bits <06:04> ************ IB Timeout Status If bit <06>=1, a timeout occurred on an IB requested cycle. 06 05 04 1 1 1 1 0 0 1 1 0 1 0 1 Bit <03> ******** "No Device Response" timeout. "Device Busy" timeout. "Waiting for Read Data" timeout. Impossible code. IB SBI Error Confirmation Set when an IB requested cycle receives an error confirmation. Bit <02> ******** Multiple CP Error Set with pending CP timeout or CP SBI error confirmation not serviced. Bit <01> ******** SBI Not Busy 1-58 ID #IA 3 3 2 2 2 2 2 2 7 6 5 4 1 0 9 8 2 2 2 2 3 2 1 0 - Timeout Address Register l 1 1 l 9 8 7 6 1 l l 1 5 4 3 2 1 l 0 0 1 0 9 8 0 0 0 0 7 6 5 4 Latches the SBI PHYSICAL LONGWORD Address on an SBI Timeout. latch for IB data timeouts. Bits <31:30> 0 0 0 0 3 2 1 0 Will not Mode ************ 31 30 0 0 0 1 1 Kernel mode Executive mode Supervisor mode User mode 1 0 1 Bit <29> Protection Check ******** Equal to a zero for references not subject to a hardware protection check. Bits <27:00> SBI Physical Longword Address ************ Contains the latched Physical Address bits <29:02> of the SBI Physical address. <27:00> PA<29:02> 1-59 Note: A written step by step procedure on how to break down Physical VAX BYTE addresses follows these bit breakdown charts. Breaking down PHYSICAL BYTE ADDRESSES NEXUS Register Offset if If <29>=1 & <20>=1 -->I I I <29>=1 & <20>=0. MBZ if <29>=1 & <20>=01 I I Adapter # I I I<- MBZ if <29>=1 ->I I I I I 1 1 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 0 0 0 7 6 5 4 1 0 9 8 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 3 2 1 0 "l<------->I I I I I I TR Levt:!l I I I I I " I 1-------- If <29>=1 & <20>=0 0 = MEMORY Array Addr. I I I 1 = I/0 Address l<-------MBZ if <29>=1 & <20>=0 I I If <29>=1 & <20>=1 this is a UNIBUS ADAPTER Address. If <29>=1 & <20>=0 this is a NEXUS Register Address. MEMORY ARRAY Physical Byte Addresses OOOOOOOO:lFFFFFFF I<------------ 64KB Array # --->I I<------ 256KB Array # ---->I I<-- 1 MB Array # --->I I I 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 "I<------------------------- Memory Array address ---------------------->! I 0 NEXUS Physical Byte Addresses 20002000:2001FFFF 2 2 2 2 2 2 6 5 4 9 8 7 " " I I 1 0 A /'\.. A A I I I I 0 0 0 0 2 2 2 2 1 1 1 1 3 2 1 0 " " 9 8 7 6 I I I I 0 0 0 0 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 " ""I I I I I I I <---1 --->I<---- Register Offset ------->! 0 0 0 I 1-- Hex representation of NEXUS TR Level \ 1-60 UNIBUS Physical Byte Addresses 20100000:201FFFFF 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 I I I I I I 1 0 0 0 0 0 I I I I 0 0 0 1 2 2 9 8 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 I I<-- 18 Bit UNIBUS Address in HEX format -->I l<->I I UNIBUS ADAPTER number A maximum of 4 DW780 controllers, and therefore a maximum of 4 UNIBUSes, are supported on the VAX-11/780 system. Jumpers on the DW780 backplanes select the "UNIBUS Adapter #" for the associated UNIBUS. RH780 External Register Physical Byte Addresses 2 2 2 2 7 6 5 4 3 2 1 0 RH780 l<-TR # ->I I I 1 1 1 1 1 1 1 1 5 4 3 2 9 8 7 6 A A A 200xx400:200xx7FC xx = RH780 TR Level 2 2 9 8 I I 1 0 A A A I I I I 0 0 0 0 2 2 2 2 A A A I I I I 0 0 0 0 A A I I I 0 0 0 I 0 Drive number I r---r 1 1 0 0 1 0 9 8 A A I I 0 1 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 l<---1--->I I Register number Offsets (in bits <12:0>) from 400 thru 7FC are External Drive registers. RH780 Internal Register Physical Byte Addresses 200xx000:200xx3FC and 200xx800:200xxFCO xx RH780 i<-TR # ->i I 2 2 9 8 2 2 2 2 7 6 5 4 "' "' I I 1 0 I I I I 0 0 0 0 2 2 2 2 3 2 1 0 A = RH780 TR Level A A I 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 !<----------------------------->! I Register Byte offset. Bits I I <12:10> must not = 001~ I 9 8 7 6 A I I I I 0 0 0 0 I I I 0 0 0 Offsets of 000 thru 3FC are internal registers, except MAP registers. Offsets of 800 thru FCO are internal MAP registers. 1-61 Physical Byte Address breakdown procedure: The 30 bit VAX Physical address spaces is broken into two equal parts. The upper 512 Megabytes of address space is called I/0 space and is used to address NEXUS, UNIBUS, and MASSBUS registers. The lower 512 Megabytes is used to address Physical Memory Arrays. The address space is broken down as follows: lFFFFFFF 3FFFFFFF 00000000 20000000 = Physical Memory array addresses Physical I/0 register & I/0 memory space. The first step in breaking down a PHYSICAL BYTE ADDRESS is to determine if the address is an I/0 or MEMORY ARRAY address. This is done by checking the state of PA bit <29>. PA<29> 1 indicates that the address is an I/O address. PA<2"9> = 0 indicates that the address is a MEMORY ARRAY address. PA bit <29> = 0 - Physical Memory Array address The address is a Memory ARRAY address if PA<29>=0. The system configuration must be known in order to determine what array is being addressed. Further on in this section are several pages of charts and procedure that can be used to determine what addresses correspond to what physical array. PA bit <29> = 1 - Physical I/O address Use the following procedure to breakdown a Physical I/0 address. 1. "PA Bit <29>" must be a 1 to indicate that the address is a VAX I/0 address. If "PA Bit <29> = O" the address is a Physical MEMORY address, and the remainder of this procedure cannot be used. 2. If PA Bit <29>=1 then PA Bits <28:21> must be zeros. address is illegal. 3. Check "PA Bit <20>" and proceed as indicated: 1-62 If not, the PA bit <20> = 1 If "PA Bit <20> = l", the I/0 address is in a "UNIBUS ADAPTER'S" address region, and the following procedure can be used to find out what UNIBUS ADAPTER and UNIBUS DEVICE is being addressed: a. "PA bits <19:18>" indicate the "UNIBUS ADAPTER number". b. "PA bits <17:00>" contain the 18-bit UNIBUS DEVICE address. NOTE: "UNIBUS ADAPTER" does not ref er to which DW780 but indicates which "UNIBUS" is being referenced. In other words, the UNIBUS ADAPTER number is not an indication of how the "TR Level" jumpers are set for a DW780, but indicate how DW780 backplane jumpers "Wl & W2" are configured for the controlling DW780 PA bit <20> = 0 If "PA bit <20> = O", the I/0 address is a NEXUS Registers or MASSBUS Drive register address. In both cases, "PA<l6:13>" will contain the "TR Level" of the NEXUS being addressed. The system configuration must be known in order to determine if the address is a NEXUS Register or MASSBUS Drive register address. If PA Bit <29>=1 & PA Bit <20>=0, then PA Bit <17> and PA Bits <19:18> must be zero. If they do not, the address is illegal. If "PA bits <16:13>" indicate an RH780 address, use the following procedure to determine if the address is for an RH780 NEXUS register or for an associated MASSBUS Drive register: a. If "PA bits <12:10> do not = l", then "PA<l2:00>" contain the offset address for an RH780 (Internal) register. b. If "PA bit <12:10> = l", then "PA bits <9:7>" indicate the MASSBUS Drive addressed, and "PA bits <6:2>" indicate the register (EXTERNAL MASSBUS register) addressed. 1-63 1/0 ADDRESS Ranges NEXUS TR level "LONGWORD" range "BYTE" range ---------------~---------------------------------------------- 0 (see note) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Note: 20001FFF 20003FFF 20005FFF 20007FFF 20009FFF 2000BFFF 2000DFFF 2000FFFF 20011FFF 20013FFF 20015FFF 20017FFF 20019FFF 2001BFFF 2001DFFF 2001FFFF "TR#O address space" is not assigned to any NEXUS. unused address space. This is DW780 Adapter NEXUS CODE 0 28 29 2A 2B 1 2 3 NOTE: 80007FF 8000FFF 80017FF 8001FFF 80027FF 8002FFF 80037FF 8003FFF 80047FF 8004FFF 80057FF 8005FFF 80067FF 8006FFF 80077FF 8007FFF - 8000000 8000800 8001000 8001800 8002000 8002800 8003000 8003800 8004000 8004800 8005000 8005800 8006000 8006800 8007000 8007800 20000000 20002000 20004000 20006000 20008000 2000AOOO 2000COOO 2000EOOO 20010000 20012000 20014000 20016000 20018000 2001AOOO 2001COOO 2001EOOO "Longword" Address ranges for UNIBUS devices 8040000 8050000 8060000 8070000 804FFFF 805FFFF 806FFFF 807FFFF "BYTE" Address ranges for UNIBUS devices 20100000 20140000 20180000 201COOOO - 2013FFFF 2017FFFF 201BFFFF 201FFFFF Adapter numbers are assigned by DW780 backplane jumpers and do not have to correspond to any TR level scheme. The ADAPTER # simply indicates a particular UNIBUS. Unused "LONGWORD" Address Unused "BYTE" Address Ranges 20000000 - 20001FFF 20020000 - 200FFFFF 20200000 - 3FFFFFFF 8000000 - 80007FF 8008000 - 803FFFF 8080000 - FFFFFFF Physical Memory Array Address range "Byte" Address range "Longword" Address range 00000000 - lFFFFFFF 0000000 - 7FFFFFF 1-64 DW780 Register offsets Reg. Name Longword Byte offset offset Reg. Name Longword Byte off set off set CNF GR UBACR UBASR OCR FMER FU BAR FMER FU BAR BRSVRO BRSVRl BRSVR2 BRSVR3 BRRVR4 BRRVR5 BRRVR6 BRRVR7 DPRO DPRl DPR2 DPR3 DPR4 DPRS DPR6 DPR7 DPR8 DPR9 DPRlO DPRll DPR12 DPR13 DPR14 DPR15 resvd 000 004 008 MR13 MR14 MR15 MR16 MR17 MR18 MR19 MR20 MR22 MR23 MR24 MR25 MR26 MR27 MR28 MR29 MR30 MR31 MR32 MR33 MR34 MR35 MR36 MR37 830 834 838 83C 840 844 848 84C 850 854 858 85c 860 864 868 86C 870 874 878 87C 880 884 888 ----------------------- ---------------------- resvd MRO MRl MR3 MR4 MRS MR6 MR7 MRS MR9 MRlO MRll MR12 ooc 010 014 018 OlC 020 024 028 02C 030 034 038 03C 040 044 048 04C 050 054 058 05C 060 064 06B 06C 070 074 078 07C 080 7EC 800 804 BOB BOC 810 814 818 81C 820 824 828 82C 000 001 002 003 004 005 006 007 008 009 OOA OOB ooc OOD OOE OOF 010 Oll 012 013 014 015 016 017 018 019 OlA OlB OlC 010 OlE OlF 020 . MR480 MR481 MR482 MR4B3 MR484 MR485 MR486 MR4B7 MR488 MR489 MR490 MR491 MR492 MR493 MR494 MR495 resvd . lFF 200 201 202 203 204 205 206 207 208 209 20A 208 . resvd 1-65 BBC . 20C 200 20E 20F 210 211 212 213 214 215 216 217 218 219 21A 21B 21C 210 21E 21F 220 221 222 223 . F80 F84 F88 F8C F90 F94 .F98 F9C FAO FA4 FAB FAC FBO FB4 FBB FBC FCO 3EO 3El 3E2 3E3 3E4 3E5 3E6 3E7 3E8 3E9 3EA 3EB 3EC 3ED 3EE 3EF 3FO FFC 3FF . RH780 Internal Register offsets Longword Byte offset offset Reg. Name Byte Longword off set offset CNF GR 000 000 004· 001 MBACR MBASR oos 002 003 MBAVAR ooc 004 MB AB CR 010 MBADR 014 005 MBASMR 018 006 007 MBACAR OlC resvd (and MASSBUS Registers) resvd 200 MRO 800 201 804 MRl 202 SOB MRl BOC 203 MR2 204 810 MR3 MR65 MR66 MR67 MR6S MR69 MR70 MR71 MR72 MR73 MR74 MR75 MR76 MR77 MR78 MR79 MRSO MR81 MR82 MR83 MR84 MR85 SFC 900 904 90S 90C 910 914 918 91C 920 924 92S 92C 930 934 938 93C 940 944 948 94C 23F 240 241 242 243 244 245 246 247 248 249 24A 24B 24C 240 24E 24F 250 251 252 253 MR467 MR468 MR469 MR470 MR471 MR472 MR473 MR474 MR475 MR476 MR477 MR478 MR479 MR480 F4C F50 F54 F58 FSC F60 F64 F6S F6C F70 F74 F7S F7C FSO 303 3D4 3D5 3D6 3D7 3D8 3D9 30A 30B 30C 300 30E 3DF 3EO MR491 MR492 MR493 MR494 MR495 FBO FB4 FB8 FBC FCO 3EC 3EO 3EE 3EF 3FO Reg. Name ---------------------- MR37 MR38 MR39 MR40 MR41 MR42 MR43 MR44 MR45 MR46 MR47 MR48 MR49 MRSO MRSl MR52 MR53 MR54 MR55 MR56 MR57 MR58 MR59 MR60 MR61 MR62 MR63 MR64 . . . . . SSC 890 S94 S98 89C SAO 8A4 SAS SAC 8BO 8B4 8B8 SBC SCO SC4 aca ace 8DO 804 808 SOC SEO 8E4 8E8 SEC 8FO 8F4 8F8 . 223 224 225 226 227 228 229 22A 22B 22C 22D 22E 22F 230 231 232 233 234 235 236 237 238 239 23A 23B 23C 230 23E ----------------------- . If PA<lO>=l then the register is a "MASSBUS" (external) register. The "MASSBUS Register Offsets" are on the next page. 1-66 RH780 MASSBUS (EXTERNAL) Register offsets Reg. No. 0 1 2 3 4 5 6 7 8 9 A B c D E F 10 11 12 13 14 15 16 17 18 19 lA 18 lC lD lE lF Reg.# 0 1 2 3 4 5 6 7 8 9 A B c D E F #0 0 4 8 c 10 14 18 lC 20 24 28 2C 30 34 38 3C 40 44 48 4C 50 54 58 5C 60 64 68 6C 70 74 78 7C "Offsets for MASSBUS register of Drives 0 thru 7" I #4 I #5 I #6 I #3 I I #1 I #2 200 280 300 100 180 80 204 284 184 304 84 104 208 288 308 188 108 88 20C 28C 30C 100 18C SC 190 210 290 310 100 90 214 294 100 194 314 94 218 298 100 198 318 98 19C 21C 29C 100 31C 9C 2AO lAO 220 AO 100 320 1A4 224 2A4 A4 100 324 100 1A8 228 2A8 328 A8 lAC 22C 2AC AC 100 32C 2BO 100 lBO 230 330 BO 284 1B4 234 84 100 334 100 1B8 238 288 88 338 2BC lBC 23C BC 100 33C 2CO co 100 lCO 240 340 100 1C4 244 2C4 344 C4 ca 100 1C8 248 2C8 348 lCC 24C 2CC cc 100 34C DO 2DO 100 lDO 250 350 2D4 1D4 254 D4 100 354 D8 100 1D8 258 2D8 358 2DC DC 100 lDC 25C 35C EO 100 lEO 260 2EO 360 2E4 E4 1E4 264 100 364 E8 100 1E8 268 2E8 368 EC lEC 2EC 100 26C 36C FO 100 lFO 270 2FO 370 274 F4 100 1F4 2F4 374 1F8 F8 100 278 2F8 378 FC 100 lFC 27C 2FC 37C RPOx CSl RMOx RMCSl DS RMDS ERl MR AS DA DT LA SN OFF DCA CCA ER2 ER3 ECCPOS ECCPAT RMERl RMMRl RMAS RMDA RMDT RMLA RMSN RMOF RMOC RONR RMMR2 RMER2 RMECl RMEC2 TE16 CSl DS ER MR AS FC DT ex SN TC 1-67 #7 380 384 388 38C 390 394 398 39C 3AO 3A4 3A8 3AC 3BO 3B4 3B8 3BC 3CO 3C4 3C8 3CC 3DO 3D4 3D8 3DC 3EO 3E4 3E8 3EC 3FO 3F4 3F8 3FC Memory Array Address Bit breakdown Operand Length Boundaries Array Boundaries PA Bit -> 2 2 2 2 7 6 5 4 2 2 9 8 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 A 0 0 0 0 3 2 1 0 A A A Longword _ I I I Word I I Byte _ I 1 Mb I I I 256 Kb. I 1 = I/0 space 64 - Kb 0 = Phy. Mem. space <28:16> = 64KB array number <28:18> = 256KB array number <28:20> = lMegaByte array number Physical Address bits 0 & 1 are not used on the SBI. All addresses to Nexus devices are Longword addresses, (only Physical Address bits <29:02> are used on the SBI). The "SBI MASK" field is used to specify which byte(s) are to be referenced within a Longword. There is a total of 1 GigaByte of Physical address space. is broken up into two equal sections. This space 5i2 Megabyte of Physical MEMORY Address Space, 512 Megabyte of Physical I/0 Address Space "Timeout Address" ID register bit breakdown Bit ->3 3 2 2 1 0 9 8 A A 2 2 2 2 7 6 5 4 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 I I I<---------- Physical Address Bits <29:02> ------------------>! A I I I I I I I I I 2 2 2 2 3 2 1 0 (ID #IA) Protection Check specifier value "A Mode 1-68 Physical "BYTE" Address Space. - 64KB boundries 000.00 Megabyte 00000000 00010000 00020000 00030000 000.25 Megabyte 00040000 00050000 00060000 00070000 000.50 Megabyte 00080000 00090000 OOOAOOOO 00080000 000.75 Megabyte ooocoooo 00000000 OOOEOOOO OOOFOOOO 001. 00 Megabyte 00100000 00110000 00120000 00130000 001. 25 Megabyte 00140000 00150000 00160000 00170000 001.50 Megabyte 00180000 00190000 OOlAOOOO OOlBOOOO 001. 75 Megabyte OOlCOOOO 00100000 OOlEOOOO - OOOOFFFF OOOlFFFF 0002FFFF 0003FFFF 0004FFFF 0005FFFF 0006FFFF 0007FFFF 0008FFFF 0009FFFF OOOAFFFF 0008FFFF OOOCFFFF OOOOFFFF OOOEFFFF OOOFFFFF OOlOFFFF OOllFFFF 0012FFFF 0013FFFF 0014FFFF 0015FFFF 0016FFFF 0017FFFF 0018FFFF 0019FFFF OQlAFFFF OOlBFFFF OOlCFFFF OOlOFFFF OOlEFFFF OOlFOOOO - OOlFFFFF 002.00 Megabyte 00200000 - 0020FFFF 00210000 - 0021FFFF 00220000 - 0022FFFF 00230000 - 0023FFFF 002.25 Megabyte 00240000 - 0024FFFF 00250000 - 0025FFFF 00260000 - 0026FFFF 00270000 - 0027FFFF 002.50 Megabyte 00280000 - 0028FFFF 00290000 - 0029FFFF 002A0000 - 002AFFFF 00280000 - 002BFFFF 005.50 Megabyte 002.75 Megabyte 002C0000 - 002CFFFF 00580000 - 0058FFFF 00200000 - 0020FFFF 00590000 - 0059FFFF 002EOOOO - 002EFFFF 005A0000 - 005AFFFF 002FOOOO - 002FFFFF 00580000 - 0058FFFF 005.75 Megabyte 003.00 Megabyte 005COOOO - 005CFFFF 00300000 - 0030FFFF 00500000 - 0050FFFF 00310000 - 0031FFFF 005EOOOO - 005EFFFF 00320000 - 0032FFFF 005FOOOO - 005FFFFF 00330000 - 0033FFFF 006.00 Megabyte 003.25 Megabyte 00600000 - 0060FFFF 00340000 - 0034FFFF 00610000 - 0061FFFF 00350000 - 0035FFFF 00620000 - 0062FFFF 00360000 - 0036FFFF 00370000 - 0037FFFF 00630000 - 0063FFFF 006.25 Megabyte 003.50 Megabyte 00380000 - 0038FFFF 00640000 - 0064FFFF 00650000 - 0065FFFF 00390000 - 0039FFFF 00660000 - 0066FFFF 003A0000 - 003AFFFF 00670000 - 0067FFFF 00380000 - 0038FFFF 006.50 Megabyte 003.75 Megabyte 00680000 - 0068FFFF 003COOOO - 003CFFFF 00690000 - 0069FFFF 00300000 - 0030FFFF 006AOOOO - 006AFFFF 003EOOOO - 003EFFFF 00680000 - 0068FFFF 003FOOOO - 003FFFFF 006.75 Megabyte 004.00 Megabyte 006C0000 - 006CFFFF 00400000 - 0040FFFF 00600000 - 0060FFFF 00410000 - 0041FFFF 006EOOOO - 006EFFFF 00420000 - 0042FFFF 006FOOOO - 006FFFFF 00430000 - 0043FFFF 007.00 Megabyte 004.25 Megabyte 00700000 - 0070FFFF 00440000 - 0044FFFF 00710000 - 0071FFFF 00450000 - 0045FFFF 00720000 - 0072FFFF 00460000 - 0046FFFF 00730000 - 0073FFFF 00470000 - 0047FFFF 007.25 Megabyte 004.50 Megabyte 00740000 - 0074FFFF 00480000 - 0048FFFF 00750000 - 0075FFFF 00490000 - 0049FFFF 00760000 - 0076FFFF 004AOOOO - 004AFFFF 00770000 - 0077FFFF 004BOOOO - 004BFFFF 007.50 Megabyte 004.75 Megabyte 00780000 - 0078FFFF 004COOOO - 004CFFFF 00790000 - 0079FFFF 00400000 - 0040FFFF 007AOOOO - 007AFFFF 004EOOOO - 004EFFFF 007BOOOO - 0078FFFF 004FOOOO - 004FFFFF 007.75 Megabyte 005.00 Megabyte 007COOOO - 007CFFFF 00500000 - 0050FFFF 00700000 - 007DFFFF 00510000 - 0051FFFF 007EOOOO - 007EFFFF 00520000 - 0052FFFF 007FOOOO - 007FFFFF 00530000 - 0053FFFF 008.00 Megabyte 005.25 Megabyte 00800000 - 0080FFFF 00540000 - 0054FFFF 00810000 - 0081FFFF 00550000 - 0055FFFF 00820000 - 0082FFFF 00560000 - 0056FEFF 00830000 - 0083FFFF 00570000 - 0057FFFF 1-69 Physical "BYTE" Address Space - 64KB boundries 013. 75 Megabyte 011. 00 Megabyte 008.25 Megabyte 00800000 - 0080FFFF OOOCOOOO - OOOCFFFF 00840000 - 0084FFFF 00810000 - 0081FFFF 00000000 - OOOOFFFF 00850000 - 0085FFFF 00820000 - 0082FFFF OOOEOOOO - OOOEFFFF 00860000 - 0086FFFF OOOFOOOO - OOOFFFFF 00830000 - 0083FFFF 00870000 - 0087FFFF 014.00 Megabyte Oll. 25 Megabyte 008.50Megabyte OOEOOOOO - OOEOFFFF 00840000 - 0084FFFF 00880000 - 0088FFFF OOElOOOO - OOElFFFF 00850000 - 0085FFFF 00890000 - 0089FFFF OOE20000 - OOE2FFFF 00860000 - 0086FFFF 008A0000 - 008AFFFF OOE30000 - OOE3FFFF 00870000 - 0087FFFF 00880000 - 0088FFFF 014.25 Megabyte Oll.50 Megabyte 008.75 Megabyte OOE40000 - OOE4FFFF 00880000 - OOB8FFFF 000coooo - 008CFFFF OOE50000 - OOE5FFFF 00890000 - 0089FFFF 00800000 - 0080FFFF OOE60000 - OOE6FFFF OOBAOOOO - OOBAFFFF 008EOOOO - 008EFFFF OOE70000 - OOE7FFFF OOBBOOOO - OOB8FFFF 008FOOOO - 008FFFFF 014.50 Megabyte 0 ll. 7 5 Megabyte 009.00 Megabyte OOBCOOOO - 008CFFFF OOE80000 - OOE8FFFF 00900000 - 0090FFFF OOBOOOOO - OOBOFFFF OOE90000 - OOE9FFFF 00910000 - 0091FFFF OOEAOOOO - OOEAFFFF 008EOOOO - OOBEFFFF 00920000 - 0092FFFF OOEBOOOO - OOEBFFFF 008FOOOO - OOBFFFFF 0093000.0 - 0093FFFF 014. 75 Megabyte 012.00 Megabyte 009.25 Megabyte OOECOOOO - OOECFFFF OOCOOOOO - OOCOFFFF 00940000 - 0094FFFF OOEOOOOO - OOEOFFFF OOClOOOO - OOClFFFF 00950000 - 0095FFFF OOEEOOOO - OOEEFFFF OOC20000 - OOC2FFFF 00960000 - 0096FFFF OOEFOOOO - OOEFFFFF OOC30000 - OOC3FFFF 00970000 - 0097FFFF 015.00 Megabyte 012.25 Megabyte 009.50 Megabyte OOFOOOOO - OOFOFFFF OOC40000 - OOC4FFFF 00980000 - 0098FFFF OOFlOOOO - OOFlFFFF OOC50000 - OOC5FFFF 00990000 - 0099FFFF OOF20000 - OOF2FFFF OOC60000 - OOC6FFFF 009A0000 - 009AFFFF OOC70000 - OOC7FFFF OOF30000 - OOF3FFFF 00980000 - 009BFFFF 015.25 Megabyte 012.50 Megabyte 889. 75 Megabyte OOF40000 - OOF4FFFF OOC80000 - OOC8FFFF 009COOOO - 009CFFFF OOF50000 - OOF5FFFF OOC90000 - OOC9FFFF 00900000 - 0090FFFF OOF60000 - OOF6FFFF OOCAOOOO - OOCAFFFF 009EOOOO - 009EFFFF OOCBOOOO - OOCBFFFF OOF70000 - OOF7FFFF 009FOOOO - 009FFFFF 015.50 Megabyte 012.75 Megabyte 010. 00 Megabyte OOF80000 - OOF8FFFF OOCCOOOO - OOCCFFFF OOAOOOOO - OOAOFFFF OOF90000 - OOF9FFFF OOCOOOOO - OOCOFFFF OOAlOOOO - OOAlFFFF OOFAOOOO - OOFAFFFF OOCEOOOO - OOCEFFFF OOA20000 - 00A2FFFF OOFBOOOO - OOF8FFFF OOCFOOOO - OOCFFFFF OOA30000 - 00A3FFFF 015.75 Megabyte 013.00 Megabyte 010.25 Megabyte OOFCOOOO - OOFCFFFF 00000000 - OOOOFFFF OOA40000 - 00A4FFFF OOFOOOOO - OOFOFFFF 00010000 - OOOlFFFF OOA50000 - OOA5FFFF OOFEOOOO - OOFEFFFF 00020000 - 0002FFFF OOA60000 - 00A6FFFF OOFFOOOO - OOFFFFFF 00030000 - 0003FFFF OOA70000 - OOA7FFFF 016.00 Megabyte 013.25 Megabyte 010.50 Megabyte 01000000 - OlOOFFFF 00040000 - 0004FFFF OOA80000 - 00A8FFFF 01010000 - 0101FFFF 00050000 - 0005FFFF OOA90000 - 00A9FFFF 01020000 - 0102FFFF 00060000 - 0006FFFF OOAAOOOO - OOAAFFFF 01030000 - 0103FFFF 00070000 - 0007FFFF OOA80000 - OOABFFFF 016.25 Megabyte 013.50 Megabyte 010.75 Megabyte 01040000 - 0 04FFFF 00080000 - 0008FFFF OOACOOOO - OOACFFFF 01050000 - 0 05FFFF 00090000 - 0009FFFF OOAOOOOO - OOAOFFFF 01060000 - 0 06FFFF OOOAOOOO - OODAFFFF OOAEOOOO - OOAEFFFF 01070000 - 0 07FFFF 00080000 - OOD8FFFF OOAFOOOO - OOAFFFFF 1-70 Physical "BYTE" Address Space - 256KB boundries 016.0 Megabyte 01000000 01040000 01080000 OlOCOOOO 017.0 Megabyte 01100000 01140000 01180000 OllCOOOO 018.0 Megabyte 01200000 01240000 01280000 012COOOO 019.0 Megabyte 01300000 01340000 01380000 013COOOO 020.0 Megabyte 01400000 01440000 01480000 014COOOO 021. 0 Megabyte 01500000 01540000 01580000 015COOOO 022.0 Megabyte 01600000 01640000 01680000 016COOOO 023.0 Megabyte 01700000 01740000 01780000 017COOOO 024.0 Megabyte 01800000 01840000 01880000 018COOOO 025.0 Megabyte 01900000 01940000 01980000 019COOOO - 036.0 Megabyte 026.0 Megabyte 02400000 OlAOOOOO - 01A3FFFF 02440000 01A40000 - 01A7FFFF 02480000 01A80000 - OlABFFFF 024COOOO OlACOOOO - OlAFFFFF 037.0 Megabyte 027.0 Megabyte 02500000 OlBOOOOO - 01B3FFFF 0113FFFF 02540000 01B40000 - 01B7FFFF 0117FFFF 02580000 01B80000 - OlBBFFFF OllBFFFF 025COOOO OlBCOOOO - OlBFFFFF OllFFFFF 038.0 Megabyte 028.0 Megabyte 02600000 OlCOOOOO - 01C3FFFF 0123FFFF 02640000 01C40000 - 01C7FFFF 0127FFFF 02680000 01C80000 - OlCBFFFF 012BFFFF 026COOOO OlCCOOOO - OlCFFFFF 012FFFFF 039.0 Megabyte 029.0 Megabyte 02700000 01000000 - 0103FFFF 0133FFFF 02740000 01040000 - 0107FFFF 0137FFFF 02780000 01080000 - OlOBFFFF 013BFFFF 027COOOO OlOCOOOO - OlOFFFFF 013FFFFF 040.0 Megatyte 030.0 Megabyte 02800000 OlEOOOOO - 01E3FFFF 0143FFFF 02840000 01E40000 - 01E7FFFF 0147FFFF 02880000 01E80000 - OlEBFFFF 014BFFFF 028COOOO OlECOOOO - OlEFFFFF 014FFFFF 041. 0 Megabyte 031. 0 Megabyte 02900000 OlFOOOOO - 01F3FFFF 0153FFFF 02940000 01F40000 - 01F3FFFF 0157FFFF 02980000 01F80000 - OlFBFFFF 015BFFFF 029COOOO OlFCOOOO - OlFFFFFF· 015FFFFF 042.0 Megabyte 032.0 Megabyte 02A00000 02000000 - 0203FFFF 0163FFFF 02A40000 02040000 - 0207FFFF 0167FFFF 02A80000 02080000 - 020BFFFF 016BFFFF 02AC0000 020COOOO - 020FFFFF 016FFFFF 043.0 Megabyte 033.0 Megabyte 02BOOOOO 02100000 - 0213FFFF 0173FFFF 02840000 02140000 - 0217FFFF 0177FFFF 02880000 02180000 - 021BFFFF 017BFFFF 02BCOOOO 021COOOO - 021FFFFF 017FFFFF 044.0 Megabyte 034.0 Megabyte 02COOOOO 02200000 - 0223FFFF 0183FFFF 02C40000 02240000 - 0227FFFF 0187FFFF 02C80000 02280000 - 022BFFFF 018BFFFF 02CCOOOO 022COOOO - 022FFFFF 018FFFFF 045.0 Megabyte 035.0 Megabyte 02000000 02300000 - 0233FFFF 0193FFFF 02040000 0197FFFF 02340000 - 0237FFFF 02080000 02380000 - 023BFFFF 019BFFFF 020COOOO 023COOOO - 023FFFFF 019FFFFF 0103FFFF 0107FFFF OlOBFFFF OlOFFFFF 1-71 0243FFFF 0247FFFF 024BFFFF 024FFFFF 0253FFFF 0257FFFF 025BFFFF 025FFFFF 0263FFFF 0267FFFF 026BFFFF 026FFFFF 0273FFFF 0277FFFF 027BFFFF 027FOOOO 0283FFFF 0287FFFF 028BFFFF 028FFFFF 0293FFFF 0297FFFF 029BFFFF 029FFFFF 02A3FFFF 02A7FFFF 02ABFFFF 02AFFFFF 02B3FFFF 02B7FFFF 02BBFFFF 02BFFFFF 02C3FFFF 02C7FFF'F 02CBFFFF 02CFFFFF 0203FFFF 0207FFFF 020BFFFF 020FFFFF Physical "BYTE" Address Space - 256KB boundries 046.0 Megabyte 02EOOOOO 02E40000 02E80000 02ECOOOO 047.0 Megabyte 02FOOOOO 02F40000 02F80000 02FCOOOO 048.0 Megabyte 03000000 03040000 03080000 030COOOO 049.0 Megabyte 03100000 03140000 03180000 031COOOO 050.0 Megabyte 03200000 03240000 03280000 032COOOO 051. O Megabyte 03300000 03340000 03380000 033COOOO 052.0 Megabyte 03400000 03440000 03480000 034COOOO - 02E3FFFF 02E7FFFF 02EBFFFF 02EFFFFF 02F3FFFF 02F7FFFF 02F8FFFF 02FFFFFF 0303FFFF 0307FFFF 0308FFFF 030FFFFF 0313FFFF 0317FFFF 031BFFFF 031FFFFF 0323FFFF 0327FFFF 032BFFFF 032FFFFF 0333FFFF 0337FFFF 033BFFFF 033FFFFF 059.0 Megabyte 053.0 Megabyte 03500000 - 0353FFFF 03800000 - 03B3FFFF 03540000 - 0357FFFF 03840000 - 03B7FFFF 03580000 - 035BFFFF 03880000 - 0388FFFF 035COOOO - 035FFFFF 03BCOOOO - 03BFFFFF 060.0 Megabyte 054.0 Megabyte 03600000 - 0363FFFF 03COOOOO - 03C3FFFF 03640000 - 0367FFFF 03C40000 - 03C7FFFF 03680000 - 0368FFFF 03C80000 - 03C8FFFF 036COOOO - 036FFFFF 03CCOOOO - 03CFFFFF 061. 0 Megabyte 055.0 Megabyte 03700000 - 0373FFFF 03000000 - 0303FFFF 03740000 - 0377FFFF 03040000 - 0307FFFF 03780000 - 0378FFFF 03080000 - 0308FFFF 037COOOO - 037FFFFF 030COOOO - 030FFFFF 056.0 Megabyte 062.0 Megabyte 03800000 - 0383FFFF 03EOOOOO - 03E3FFFF 03840000 - 0387FFFF 03E40000 - 03E7FFFF 03880000 - 0388FFFF 03E80000 - 03EBFFFF 038COOOO - 038FFFFF 03ECOOOO - 03EFFFFF 057.0 Megabyte 063.0 Megabyte 03FOOOOO - 03F3FFFF 03900000 - 0393FFFF 03940000 - 0397FFFF 03F40000 - 03F7FFFF 03980000 - 039BFFFF 03F80000 - 03F8FFFF 039COOOO - 039FFFFF 03FCOOOO - 03FFFFFF 058.0 Megabyte 064.0 Megabyte 03A00000 - 03A3FFFF 04000000 - 0403FFFF 03A40000 - 03A7FFFF 04040000 - 0407FFFF 03A80000 - 03ABFFFF 04080000 - 0408FFFF 03ACOOOO - 03AFFFFF 040COOOO - 040FFFFF 0343FFFF 0347FFFF 034BFFFF 034FFFFF 1-72 Physical "BYTE" Address Space - lMB boundries 000 Megabyte 00000000 00100000 00200000 00300000 00400000 005 Megabyte 00500000 00600000 00700000 00800000 00900000 010 Megabyte OOAOOOOO OOBOOOOO oocooooo OODOOOOO OOEOOOOO 015 Megabyte OOFOOOOO 01000000 01100000 01200000 01300000 020 Megabyte 01400000 01500000 01600000 01700000 01800000 025 Megabyte 01900000 OlAOOOOO OlBOOOOO OlCOOOOO 01000000 030 Megabyte OlEOOOOO OlFOOOOO 02000000 02100000 02200000 035 Megabyte 02300000 02400000 02500000 02600000 02700000 040 Megabyte 02800000 02900000 02AOOOOO 02BOOOOO 02COOOOO - OOOFFFFF OOlFFFFF 002FFFFF 003FFFFF 004FFFFF 005FFFFF 006FFFFF 007FFFFF 008FFFFF 009FFFFF OOAFFFFF OOBFFFFF OOCFFFFF OODFFFFF OOEFFFFF OOFFFFFF OlOFFFFF OllFFFFF 012FFFFF 013FFFFF 014FFFFF 015FFFFF 016FFFFF 017FFFFF 018FFFFF 019FFFFF OiAFFFFF OlBFFFFF OlCFFFFF OlDFFFFF OlEFFFFF OlFFFFFF 020FFFFF 021FFFFF 022FFFFF 023FFFFF 024FFFFF 025FFFFF 026FFFFF 027FFFFF 028FFFFF 029FFFFF 02AFFFFF 02BFFFFF 02CFFFFF 045 Megabyte 02000000 02EOOOOO 02FOOOOO 03000000 03100000 050 Megabyte 03200000 03300000 03400000 03500000 03600000 055 Megabyte 03700000 03800000 03900000 03AOOOOO 03800000 060 Megabyte 03COOOOO 03DOOOOO 03EOOOOO 03FOOOOO 04000000 065 Megabyte 04100000 04200000 04300000 04400000 04500000 070 Megabyte 04600000 04700000 04800000 04900000 04A00000 075 Megabyte 04800000 04COOOOO 04000000 04EOOOOO 04FOOOOO 080 Megabyte 05000000 05100000 05200000 05300000 05400000 085 Megabyte 05500000 05600000 05700000 05800000 05900000 - 1-73 090 Megabyte 05AOOOOO 05BOOOOO 05COOOOO 05DOOOOO 05EOOOOO 095 Megabyte 032FFFFF 05FOOOOO 033FFFFF 06000000 034FFFFF 06100000 035FFFFF 06200000 036FFFFF 06300000 100 Megabyte 037FFFFF 06400000 038FFFFF 06500000 039FFFFF 06600000 03AFFFFF 06700000 03BFFFFF 06800000 105 Megabyte 03CFFFFF 06900000 06AOOOOO 03DFFFFF 06BOOOOO 03EFFFFF 06COOOOO 03FFFFFF 040FFFFF 06DOOOOO llO Megabyte 06EOOOOO 041FFFFF 06FOOOOO 042FFFFF 07000000 043FFFFF 044FFFFF 07100000 045FFFFF 07200000 115 Megabyte 046FFFFF 07300000 047FFFFF 07400000 048FFFFF 07500000 07600000 049FFFFF 04AFFFFF 07700000 120 Megabyte 04BFFFFF 07800000 04CFFFFF 07900000 07AOOOOO 04DFFFFF 07BOOOOO 04EFFFFF 07COOOOO 04FFFFFF 12·5 Megabyte 07DOOOOO 050FFFFF 051FFFFF 07EOOOOO 052FFFFF 07FOOOOO 053FFFFF 08000000 054FFFFF 08100000 130 Megabyte 055FFFFF 08200000 056FFFFF 08300000 057FFFFF 08400000 058FFFFF 08500000 059FFFFF 08600000 02DFFFFF 02EFFFFF 02FFFFFF 030FFFFF 031FFFFF 05AFFFFF 05BFFFFF 05CFFFFF 05DFFFFF 05EFFFFF 05FFFFFF 060FFFFF 061FFFFF 062FFFFF 063FFFFF 064FFFFF 065FFFFF 066FFFFF 067FFFFF 068FFFFF 069FFFFF 06AFFFFF 06BFFFFF 06CFFFFF 06DFFFFF 06EFFFFF 06FFFFFF 070FFFFF 071FFFFF 072FFFFF 073FFFFF 074FFFFF 075FFFFF 076FFFFF 077FFFFF 078FFFFF 079FFFFF 07AFFFFF 07BFFFFF 07CFFFFF 07DFFFFF 07EFFFFF 07FFFFFF 080FFFFF 081FFFFF 082FFFFF 083FFFFF 084FFFFF 085FFFFF 086FFFFF Physical "BYTE" Address Space - lMB boundries 135 Megabyte 08700000 08800000 08900000 08AOOOOO 08800000 140 Megabyte 08COOOOO 08000000 08EOOOOO 08FOOOOO 09000000 145 Megabyte 09100000 09200000 09300000 09400000 09500000 150 Megabyte 09600000 09700000 09800000 09900000 09AOOOOO 155 Megabyte 09800000 09COOOOO 09000000 09EOOOOO 09FOOOOO 160 Megabyte OAOOOOOO OAlOOOOO 0A200000 0A300000 OA400000 165 Megabyte 0A500000 OA600000 0A700000 OA800000 0A900000 170 Megabyte OAAOOOOO OABOOOOO OACOOOOO OAOOOOOO OAEOOOOO 175 Megabyte OAFOOOOO 08000000 OBlOOOOO 08200000 08300000 - 087FFFFF 088FFFFF 089FFFFF 08AFFFFF 08BFFFFF 08CFFFFF 080FFFFF 08EFFFFF 08FFFFFF 090FFFFF 091FFFFF 092FFFFF 093FFFFF 094FFFFF 095FFFFF 096FFFFF 097FFFFF 098FFFFF 099FFFFF 09AFFFFF 098FFFFF 09CFFFFF 090FFFFF 09EFFFFF 09FFFFFF OAOFFFFF OAlFFFFF 0A2FFFFF 0A3FFFFF 0A4FFFFF OASFFFFF 0A6FFFFF OA7FFFFF OA8FFFFF OA9FFFFF OAAFFFFF OA8FFFFF OACFFFFF OADFFFFF OAEFFFFF OAFFFFFF OBOFFFFF OBlFFFFF OB2FFFFF OB3FFFFF 180 Megabyte 084.00000 08500000 08600000 08700000 08800000 185 Megabyte 08900000 08A00000 08800000 08COOOOO 08000000 190 Megabyte 08EOOOOO 08FOOOOO ocoooooo OClOOOOO OC200000 195 Megabyte OC300000 OC400000 ocsooooo OC600000 OC700000 200 Megabyte oc8ooooo OC900000 OCAOOOOO OCBOOOOO occooooo 205 Megabyte OCOOOOOO OCEOOOOO OCFOOOOO 00000000 00100000 210 Megabyte 00200000 00300000 00400000 ODSOOOOO 00600000 215 Megabyte 00700000 OD800000 00900000 OOAOOOOO 00800000 220 Megabyte OOCOOOOO OODOOOOO OOEOOOOO ODFOOOOO OEOOOOOO - 1-74 225 Megabyte OElOOOOO OE200000 OE300000 OE400000 OE500000 230 Megabyte 089FFFFF OE600000 OE700000 08AFFFFF 088FFFFF OE800000 OE900000 08CFFFFF OEAOOOOO 080FFFFF 235 Megabyte OEBOOOOO 08EFFFFF 08FFFFFF OECOOOOO OCOFFFFF OEOOOOOO OEEOOOOO OClFFFFF OEFOOOOO 0C2FFFFF 240 Megabyte OFOOOOOO OC3FFFFF OFlOOOOO OC4FFFFF OF200000 OC5FFFFF OC6FFFFF OF300000 OF400000 OC7FFFFF 245 Megabyte OF500000 OC8FFFFF OC9FFFFF OF600000 OF700000 OCAFFFFF OF800000 OC8FFFFF OCCFFFFF OF900000 250 Megabyte OCOFFFFF OFAOOOOO OF800000 OCEFFFFF OFCOOOOO OCFFFFFF OFDOOOOO OOOFFFFF OFEOOOOO OOlFFFFF 255 Megabyte OFFOOOOO OD2FFFFF 10000000 003FFFFF 10100000 004FFFFF 10200000 005FFFFF 10300000 OD6FFFFF 260 Megabyte OD7FFFFF 10400000 OD8FFF'FF 10500000 10600000 009FFFFF 10700000 ODAFFFFF OD8FFFFF 10800000 265 Megabyte ODCFFFFF 10900000 lOAOOOOO ODDFFFFF ODEFFFFF 10800000 lOCOOOOO ODFFFFFF OEOFFFFF 10000000 084FFFFF 085FFFFF 086FFFFF 087FFFFF 088FFFFF OElFFFFF OE2FFFFF OE3FFFFF OE4FFFFF OE5FFFFF OE6FFFFF OE7FFFFF OE8FFFFF OE9FFFFF OEAFFFFF OE8FFFFF OECFFFFF OEOFFFFF OEEFFFFF OEFFFFFF OFOFFFFF OFlFFFFF OF2FFFFF OF3FFFFF OF4FFFFF OF5FFFFF OF6FFFFF OF7FFFFF OF8FFFFF OF9FFFFF OFAFFFFF OF8FFFFF OFCFFFFF OFOFFFFF OFEFFFFF OFFFFFFF lOOFFFFF 101FFFFF 102FFFFF 103FFFFF 104FFFFF 105FFFFF 106FFFFF 107FFFFF 108FFFFF 109FFFFF lOAFFFFF lOBFFFFF lOCFFFFF lODFFFFF Physical "BYTE" Address Space - 1MB boundries 270 Megabyte lOEOOOOO lOFOOOOO 11000000 11100000 11200000 275 Megabyte 11300000 11400000 11500000 11600000 11700000 280 Megabyte 11800000 11900000 llAOOOOO 11800000 llCOOOOO 285 Megabyte llDOOOOO llEOOOOO llFOOOOO 12000000 12100000 290 Megabyte 12200000 12300000 12400000 12500000 12600000 295 Megabyte 12700000 12800000 12900000 12A00000 12800000 300 Megabyte 12COOOOO 12DOOOOO 12EOOOOO 12FOOOOO 13000000 305 Megabyte 13100000 13200000 13300000 13400000 13500000 310 Megabyte 13600000 13700000 13800000 13900000 13A00000 - 360 Megabyte 315 Megabyte 16800000 - 168FFFFF 13800000 - 138FFFFF 13COOOOO - 13CFFFFF 16900000 - 169FFFFF 16AOOOOO - 16AFFFFF 13DOOOOO - 13DFFFFF 13EOOOOO - 13EFFFFF 16800000 - 168FFFFF 16COOOOO - 16CFFFFF 13FOOOOO - 13FFFFFF 320 Megabyte 365 Megabyte 16DOOOOO - 16DFFFFF 14000000 - 140FFFFF 113FFFFF 16EOOOOO - 16EFFFFF 14100000 - 141FFFFF 114FFFFF 16FOOOOO - 16FFFFFF 14200000 - 142FFFFF 115FFFFF 17000000 - 170FFFFF 14300000 - 143FFFFF 116FFFFF 17100000 - 171FFFFF 14400000 - 144FFFFF 117FFFFF 325 Megabyte 370 Megabyte 17200000 - 172FFFFF 118FFFFF 14500000 - 145FFFFF 119FFFFF 14600000 - 146FFFFF 17300000 - 173FFFFF 14700000 - 147FFFFF 17400000 - 174FFFFF llAFFFFF 14800000 - 148FFFFF 17500000 - 175FFFFF llBFFFFF 17600000 - 176FFFFF llCFFFFF 14900000 - 149FFFFF 375 Megabyte 330 Megabyte 17700000 - 177FFFFF 14AOOOOO - 14AFFFFF llDFFFFF 17800000 - 178FFFFF llEFFFFF 14800000 - 14BFFFFF 14COOOOO - 14CFFFFF 17900000 - 179FFFFF llFFFFFF 17A00000 - 17AFFFFF 120FFFFF 14000000 - 140FFFFF 14EOOOOO - 14EFFFFF 17800000 - 178FFFFF 121FFFFF 335 Megabyte 380 Megabyte l 7COOcrcro-- -- 17CFFFFF 14F0-0-000 -- 14FFFF"FF 122FFFFF 15000000 - 150FFFFF 17000000 - 17DFFFFF 123FFFFF 17EOOOOO - 17EFFFFF 124FFFFF 15100000 - 151FFFFF 17FOOOOO - 17FFFFFF 15200000 - 152FFFFF 125FFFFF 15300000 - 153FFFFF 18000000 - 180FFFFF 126FFFFF 340 Megabyte 385 Megabyte 18100000 - 181FFFFF 127FFFFF 15400000 - 154FFFFF 18200000 - 182FFFFF 128FFFFF 15500000 - 155FFFFF 129FFFFF 15600000 - 156FFFFF 18300000 - 183FFFFF 18400000 - 184FFFFF 12AFFFFF 15700000 - 157FFFFF 18500000 - 185FFFFF 128FFFFF 15800000 - 158FFFFF 390 Megabyte 345 Megabyte 18600000 - 186FFFFF 12CFFFFF 15900000 - 159FFFFF 18700000 - 187FFFFF 15AOOOOO - 15AFFFFF 12DFFFFF 18800000 - 188FFFFF 12EFFFFF 15800000 - 158FFFFF 15COOOOO - 150FFFFF 18900000 - 189FFFFF 12FFFFFF 18A00000 - 18AFFFFF 15DOOOOO - 15DFFFFF 130FFFFF 350 Megabyte 395 Megabyte 18800000 - 188FFFFF 15EOOOOO - 15EFFFFF 131FFFFF 18COOOOO - 18CFFFFF 15FOOOOO - 15FFFFFF 132FFFFF 18000000 - 18DFFFFF 16000000 - 160FFFFF 133FFFFF 18EOOOOO - 18EFFFFF 134FFFFF 16100000 - 161FFFFF 18FOOOOO - 18FFFFFF 135FFFFF 16200000 - 162FFFFF 355 Megabyte 400 Megabyte 19000000 - 190FFFFF 16300000 - 163FFFFF 136FFFFF 19100000 - 191FFFFF 137FFFFF 16400000 - 164FFFF\F 19200000 - 192FFFFF 138FFFFF 16500000 - 165FFFFF 19300000 - 193FFFFF 139FFFFF 16600000 - 166FFFFF 16700000 - 167FFFFF 19400000 - 194FFFFF 13AFFFFF lOEFFFFF lOFFFFFF llOFFFFF lllFFFFF 112FFFFF 1-75 ··--···-·· ···--- Physical "BYTE" Address Space - lMB boundries 405 Megabyte 19500000 19600000 19700000 19800000 19900000 410 Megabyte 19AOOOOO 19800000 19COOOOO 19DOOOOO 19EOOOOO 415 Megabyte 19FOOOOO lAOOOOOO lAlOOOOO 1A200000 1A300000 420 Megabyte 1A400000 1A500000 1A600000 1A700000 1A800000 425 Megabyte 1A900000 lAAOOOOO lABOOOOO lACOOOOO lAOOOOOO 430 Megabyte lAEOOOOO lAFOOOOO 18000000 18100000 18200000 435 Megabyte 1B300000 18400000 18500000 18600000 1B700000 440 Megabyte 1B800000 18900000 lBAOOOOO lBBOOOOO lBCOOOOO 445 Megabyte lBDOOOOO lBEOOOOO lBFOOOOO lCOOOOOO lClOOOOO - 195FFFFF 196FFFFF 197FFFFF 198FFFFF 199FFFFF 19AFFFFF 198FFFFF 19CFFFFF 19DFFFFF 19EFFFFF 19FFFFFF lAOFFFFF lAlFFFFF 1A2FFFFF 1A3FFFFF J:A4FFFFF 1A5FFFFF 1A6FFFFF lA7fFFFF 1A8FFFFF 1A9FFFFF lAAFFFFF lABFFFFF lACFFFFF lADFFFFF lAEFFFFF lAFFFFFF 180FFFFF lBlFFFFF 1B2FFFFF 183FFFFF 1B4FFFFF 1B5FFFFF 1B6FFFFF 1B7FFFFF 1B8FFFFF 1B9FFFFF lBAFFFFF lBBFFFFF lBCFFFFF lBOFFFFF lBEFFFFF lBFFFFFF lCOFFFFF lClFFFFF 450 Megabyte 1C200000 1C300000 1C400000 1C500000 1C600000 455 Megabyte 1C700000 1C800000 1C900000 lCAOOOOO 1C800000 460 Megabyte lCCOOOOO lCDOOOOO lCEOOOOO lCFOOOOO 10000000 465 Megabyte 10100000 10200000 1D300000 10400000 1D500000 470 Megabyte 1D600000 10700000 10800000 10900000 lOAOOOOO 475 Megabyte lDBOOOOO lOCOOOOO 10000000 lOEOOOOO lOFOOOOO 480 Megabyte lEOOOOOO lElOOOOO 1E200000 lEJOOOOO 1E400000 485 Megabyte 1E500000 1E600000 1E700000 1E800000 1E900000 490 Megabyte lEAOOOOO 1E800000 lECOOOOO lEOOOOOO lEEOOOOO - 1-76 495 Megabyte lEFOOOOO - lEFFFFFF lFOOOOOO - lFOFFFFF lFlOOOOO - lFlFFFFF 1F200000 - 1F2FFFFF 1F300000 - 1F3FFFFF 500 Megabyte 1C7FFFFF 1F400000 - 1F4FFFFF 1F500000 . .;. 1F5FFFFF 1C8FFFFF 1F600000 - 1F6FFFFF 1C9FFFFF 1F700000 - 1F7FFFFF lCAFFFFF 1C8FFFFF 1F800000 - 1F8FFFFF 505 Megabyte 1F900000 - 1F9FFFFF lCCFFFFF lCDFFFFF lFAOOOOO - lFAFFFFF lCEFFFFF 1F800000 - 1F8FFFFF lCFFFFFF lFCOOOOO - lFCFFFFF lOOFFFFF lFDOOOOO - lFOFFFFF 510 Megabyte lFEOOOOO - lFEFFFFF lDlFFFFF lFFOOOOO - lFFFFFFF 1D2FFFFF 1D3FFFFF l04FFFFF l05FFFFF 1C2FFFFF 1C3FFFFF 1C4FFFFF 1C5FFFFF 1C6FFFFF 1D6FFFFF l07FFFFF 108FFFFF 1D9FFFFF lOAFFFFF 1D8FFFFF lOCFFFFF lDOFFFFF lOEFFFFF lOFFFFFF lEOFFFFF lElFFFFF 1E2FFFFF 1E3FFFFF 1E4FFFFF 1E5FFFFF 1E6FFFFF 1E7FFFFF 1E8FFFFF 1E9FFFFF lEAFFFFF lEBFFFFF lECFFFFF lEOFFFFF lEEFFFFF Physical "Longword" Address Space 1 MB boundries 000 Megabyte 0000000 - 003FFFF 0040000 - 007FFFF 0080000 - OOBFFFF oocoooo - OOFFFFF 004 Megabyte 0100000 - 013FFFF 0140000 - 017FFFF 0180000 - OlBFFFF OlCOOOO - ~lFFFFF 008 Megabyte 0200000 - 023FFFF 0240000 - 027FFFF 0280000 - 02BFFFF 02COOOO - 02FFFFF 012 Megabyte 0300000 - 033FFFF 0340000 - 037FFFF 0380000 - 03BFFFF 03COOOO - 03FFFFF 016 Megabyte 0400000 - 043FFFF 0440000 - 047FFFF 0480000 - 04BFFFF 04COOOO - 04FFFFF 020 Megabyte 0500000 - 053FFFF 0540000 - 057FFFF 0580000 - 05BFFFF 05COOOO - 05FFFFF 024 Megabyte 0600000 - 063FFFF 0640000 - 067FFFF 0680000 - 0.6BFFFF 06COOOO - 06FFFFF 028 Megabyte 0700000 - 073FFFF 0740000 - 077FFFF 0780000 - 07BFFFF 07COOOO - 07FFFFF 032 Megabyte 0800000 - 083FFFF 0840000 - 087FFFF 0880000 - 08BFFFF 08COOOO - 08FFFFF 036 Megabyte 0900000 - 093FFFF 0940000 - 097FFFF 0980000 - 09BFFFF 09COOOO - 09FFFFF 040 Megabyte OAOOOOO 0A3FFFF OACOOOO - 0A7FFFF OA80000 - OABFFFF OACOOOO - OAFFFFF 044 Megabyte OBOOOOO OB40000 OB80000 OBCOOOO 048 Megabyte ocooooo OC40000 OC80000 - occoooo 153FFFF 157FFFF 15BFFFF 15FFFFF *** BEWARE *** These are LONGWORD address ranges,(not byte ranges). (PA<29:02>) I (ID#lA<27:00>) OC3FFFF OC7FFFF OCBFFFF - OCFFFFF 052 Megabyte ODOOOOO 0040000 0080000 ODCOOOO 056 Megabyte OEOOOOO OE40000 OE80000 OECOOOO 060 Megabyte OFOOOOO OF40000 OF80000 OFCOOOO 064 Megabyte 1000000 1040000 1080000 lOCOOOO 068 Megabyte 1100000 1140000 1180000 llCOOOO 072 Megabyte 1200000 1240000 1280000 12COOOO 076 Megabyte 1300000 1340000 1380000 13COOOO 080 Megabyte 1400000 1440000 1480000 14COOOO 084 Megabyte 1500000 1540000 1580000 15COOOO 1-77 143FFFF 147FFFF 14BFFFF 14FFFFF 088 Megabyte 1600000 1640000 1680000 16COOOO 092 Megabyte 1700000 1740000 1780000 17COOOO 096 Megabyte 1800000 1840000 1880000 18COOOO 100 Megabyte 1900000 1940000 1980000 19COOOO 104 Megabyte lAOOOOO 1A40000 1A80000 lACOOOO 108 Megabyte lBOOOOO 1840000 1880000 lBCOOOO 112 Megabyte lCOOOOO 1C40000 1C80000 lCCOOOO 116 Megabyte 1000000 1040000 1080000 lDCOOOO 120 Megabyte lEOOOOO 1E40000 1E80000 lECOOOO 124 Megabyte lFOOOOO 1F40000 1F80000 lFCOOOO - OB3FFFF OB7FFFF OBBFFFF OBFFFFF OD3FFFF OD7FFFF ODBFFFF ODFFFFF OE3FFFF OE7FFFF OEBFFFF OEFFFFF OF3FFFF 0F7FFFF OFBFFFF OFFFFFF 103FFFF 107FFFF lOBFFFF lOFFFFF 113FFFF 117FFFF llBFFFF llFFFFF 123FFFF 127FFFF 12BFFFF 12FFFFF 133FFFF 137FFFF 13BFFFF 13FFFFF 163FFFF 167FFFF 16BFFFF 16FFFFF 173FFFF 177FFFF 17BFFFF 17FFFFF 183FFFF 187FFFF 18BFFFF 18FFFFF 193FFFF 197FFFF 19BFFFF 19FFFFF 1A3FFFF 1A7FFFF lABFFFF lAFFFFF 1B3FFFF 1B7FFFF lBBFFFF lBFFFFF 1C3FFFF 1C7FFFF lCBFFFF lCFFFFF 1D3FFFF 1D7FFFF lDBFFFF lDFFFFF 1E3FFFF 1E7FFFF lEBFFFF lEFFFFF 1F3FFFF 1F7FFFF lFBFFFF lFFFFFF Physical "Longword" Address Space 1 MB boundries 128 Megabyte 2000000 2040000 2080000 20COOOO 132 Megabyte 2100000 2140000 2180000 21COOOO 136 Megabyte 2200000 2240000 2280000 22COOOO 140 Megabyte 2300000 2340000 2380000 23COOOO 144 Megabyte 2400000 2440000 2480000 24COOOO 148 Megabyte 2500000 2540000 2580000 25COOOO 152 Megabyte 2600000 2640000 2680000 26COOOO 156 Megabyte 2700000 2740000 2780000 27COOOO 160 Megabyte 2800000 2840000 2880000 28COOOO 164 Megabyte 2900000 2940000 2980000 29COOOO 168 Megabyte 2AOOOOO 2AC0000 2A80000 2AC0000 - 203FFFF 207FFFF 20BFFFF 20FFFFF 213FFFF 217FFFF 21BFFFF 21FFFFF 223FFFF 227FFFF 228FFFF 22FFFFF 233FFFF 237FFFF 238FFFF 23FFFFF 243FFFF 247FFFF 248FFFF 24FFFFF 253FFFF 257FFFF 258FFFF 25FFFFF 263FFFF 267FFFF 26BFFFF 26FFFFF 273FFFF 277FFFF 27BFFFF 27FFFFF 283FFFF 287FFFF 28BFFFF 28FFFFF 293FFFF 297FFFF 29BFFFF 29FFFFF 2A3FFFF 2A7FFFF 2ABFFFF 2AFFFFF 172 Megabyte 2800000 2840000 2880000 2BCOOOO 176 Megabyte 2COOOOO 2C40000 2C80000 2CCOOOO 180 Megabyte 2000000 2040000 2080000 2DCOOOO 184 Megabyte 2EOOOOO 2E40000 2E80000 2ECOOOO 188 Megabyte 2FOOOOO 2F40000 2F80000 2FCOOOO 192 Megabyte 3000000 3040000 3080000 30COOOO 196 Megabyte 3100000 3140000 3180000 31COOOO 200 Megabyte 3200000 3240000 3280000 32COOOO 204 Megabyte 3300000 3340000 3380000 33COOOO 208 Megabyte 3400000 3440000 3480000 34COOOO 212 Megabyte 3500000 3540000 3580000 35COOOO - 1-78 343FFFF 347FFFF 348FFFF 34FFFFF 216 Megabyte 3600000 3640000 3680000 36COOOO 220 Megabyte 3700000 3740000 3780000 37COOOO 224 Megabyte 3800000 3840000 3880000 38COOOO 228 Megabyte 3900'000 3940000 3980000 39COOOO 232 Megabyte 3A00000 3A40000 3A80000 3AC0000 236 Megabyte 3800000 3840000 3880000 38COOOO 240 Megabyte 3COOOOO 3C40000 3C80000 3CCOOOO 244 Megabyte 3000000 3040000 3080000 3DCOOOO 248 Megabyte 3EOOOOO 3E40000 3E80000 3ECOOOO 252 Megabyte 3FOOOOO 3F40000 3F80000 3FCOOOO - 353FFFF 357FFFF 35BFFFF 35FFFFF *** BEWARE *** These are LONGWORD address ranges,(not byte ranges). (PA<29:02>) I (ID#lA<27:00>) 2B3FFFF 2B7FFFF 2BBFFFF 2BFFFFF 2C3FFFF 2C7FFFF 2CBFFFF 2CFFFFF 2D3FFFF 2D7FFFF 2D8FFFF 2DFFFFF 2E3FFFF 2E7FFFF 2E8FFFF 2EFFFFF 2F3FFFF 2F7FFFF 2F8FFFF 2FFFFFF 303FFFF 307FFFF 30BFFFF 30FFFFF 313FFFF 317FFFF 31BFFFF 31FFFFF 323FFFF 327FFFF 32BFFFF 32FFFFF 333FFFF 337FFFF 33BFFFF 33FFFFF 363FFFF 367FFFF 36BFFFF 36FFFFF 373FFFF 377FFFF 37BFFFF 37FFFFF 383FFFF 387FFFF 388FFFF 38FFFFF 393FFFF 397FFFF 398FFFF 39FFFFF 3A3FFFF 3A7FFFF 3A8FFFF 3AFFFFF 383FFFF 387FFFF 3BBFFFF 3BFFFFF 3C3FFFF 3C7FFFF 3CBFFFF 3CFFFFF 3D3FFFF 3D7FFFF 3DBFFFF 3DFFFFF 3E3FFFF 3E7FFFF 3EBFFFF 3EFFFFF 3F3FFFF 3F7FFFF 3FBFFFF 3FFFFFF Physical "Longword" Address Space 1. MB boundries 256 Megabyte 4000000 4040000 4080000 40COOOO 260 Megabyte 4100000 4140000 4180000 41C0000 264 Megabyte 4200000 4240000 4280000 42COOOO 268 Megabyte 4300000 4340000 4380000 43COOOO 272 Megabyte 4400000 4440000 4480000 44COOOO 276 Megabyte 4500000 4540000 4580000 45COOOO 280 Megabyte 4600000 4640000 4680000 46C0000 284 Megabyte 4700000 4740000 4780000 47COOOO 288 Megabyte 4800000 4840000 4880000 48COOOO 292 Megabyte 4900000 4940000 4980000 49COOOO 296 Megabyte 4A00000 4ACOOOO 4A80000 4ACOOOO - 403FFFF 407FFFF 408FFFF 40FFFFF 413FFFF 417FFFF 41BFFFF 41FFFFF 423FFFF 427FFFF 42BFFFF 42FFFFF 433FFFF 437FFFF 438FFFF 43FFFFF 443FFFF 447FFFF 44BFFFF 44FFFFF 453FFFF 457FFFF 458FFFF 45FFFFF 463FFFF 467FFFF 46BFFFF 46FFFFF 473FFFF 477FFFF 478FFFF 47FFFFF 483FFFF 487FFFF 48BFFFF 48FFFFF 493FFFF 497FFFF 498FFFF 49FFFFF 4A3FFFF 4A7FFFF 4ABFFFF 4AFFFFF 300 Megabyte 4800000 4840000 4880000 48C0000 304 Megabyte 4COOOOO 4C40000 4C80000 4CCOOOO 308 Megabyte 4000000 4040000 4080000 40COOOO 312 Megabyte 4EOOOOO 4E40000 4E80000 4ECOOOO 316 Megabyte 4FOOOOO 4F40000 4F80000 4FCOOOO 320 Megabyte 5000000 5040000 5080000 50COOOO 324 Megabyte 5100000 5140000 5180000 51COOOO 328 Megabyte 5200000 5240000 5280000 52COOOO 332 Megabyte 5300000 5340000 5380000 53COOOO 336 Megabyte 5400000 5440000 5480000 54COOOO 340 Megabyte 5500000 5540000 5580000 55COOOO - 1-79 543FFFF 547FFFF 54BFFFF 54FFFFF 344 Megabyte 5600000 5640000 5680000 56COOOO 348 Megabyte 5700000 5740000 5780000 57COOOO 352 Megabyte 5800000 5840000 5880000 58COOOO 356 Megabyte 5900000 5940000 5980000 59COOOO 360 Megabyte 5AOOOOO 5A40000 5A80000 5AC0000 364 Megabyte 5800000 5840000 5880000 5BCOOOO 368 Megabyte 5COOOOO 5C40000 5C80000 5CCOOOO 372 Megabyte 5000000 5040000 5080000 50COOOO 376 Megabyte 5EOOOOO 5E40000 5E80000 5ECOOOO 380 Megabyte 5FOOOOO 5F40000 5F80000 SFCOOOO - 553FFFF 557FFFF 55BFFFF 55FFFFF *** BEWARE *** These are LONGWORD address ranges,(not byte ranges). (PA<29:02>) I (I0#1A<27:00>) 483FFFF 487FFFF 488FFFF 48FFFFF 4C3FFFF 4C7FFFF 4C8FFFF 4CFFFFF 403FFFF 407FFFF 408FFFF 4DFFFFF 4E3FFFF 4E7FFFF 4EBFFFF 4EFFFFF 4F3FFFF 4F7FFFF 4FBFFFF 4FFFFFF 53FFFFF 57FFFFF 58FFFFF 5FFFFFF 513FFFF 517FFFF SlBFFFF 51FFFFF 523FFFF 527FFFF 52BFFFF 52FFFFF 533FFFF 537FFFF 538FFFF 53FFFFF 563FFFF 567FFFF 56BFFFF 56FFFFF 573FFFF 57FFFFF 578FFFF 57FFFFF 583FFFF 587FFFF 588FFFF 58FFFFF 593FFFF 597FFFF 598FFFF 59FFFFF 5A3FFFF 5A7FFFF 5ABFFFF 5AFFFFF 5B3FFFF 587FFFF 58BFFFF 5BFFFFF 5C3FFFF 5C7FFFF 5CBFFFF 5CFFFFF 503FFFF 507FFFF 50BFFFF SOFFFFF SE3FFFF 5E7FFFF 5E8FFFF 5EFFFFF 5F3FFFF 5F7FFFF 5FBFFFF 5FFFFFF Physical "Longword" Address Space 1 MB bou ndries 384 Megabyte· 6000000 6040000 6080000 60COOOO 388 Megabyte 6100000 6140000 6180000 61COOOO 392 Megabyte 6200000 6240000 6280000 62COOOO 396 Megabyte 6300000 6340000 6380000 63COOOO 400 Megabyte 6400000 6440000 6480000 64COOOO 404 Megabyte 6500000 6540000 6580000 65COOOO 408 Megabyte 6600000 6640000 6680000 66COOOO 412 Megabyte 6700000 6740000 6780000 67COOOO 416 Megabyte 6800000 6840000 6880000 68COOOO 420 Megabyte 6900000 6940000 6980000 69COOOO 424 Megabyte 6A00000 6AC0000 6A80000 6AC0000 - 603FFFF 607FFFF 60BFFFF 60FFFFF 613FFFF 617FFFF 61BFFFF 61FFFFF 623FFFF 627FFFF 62BFFFF 62FFFFF 633FFFF 637FFFF 63BFFFF 63FFFFF 643FFFF 647FFFF 64BFFFF 64FFFFF 653FFFF 657FFFF 65BFFFF 65FFFFF 663FFFF 667FFFF 66BFFFF 66FFFFF 673FFFF 677FFFF 67BFFFF 67FFFFF 683F·FFF 687FFFF 68BFFFF 68FFFFF 693FFFF 697FFFF 69BFFFF 69FFFFF 6A3FFFF 6A7FFFF 6ABFFFF 6AFFFFF 428 Megabyte 6800000 - 6B3FFFF 6840000 - 6B7FFFF 6880000 - 6BBFFFF 6BCOOOO - 6BFFFFF 432 Megabyte 6C00000 - 6C3FFFF 6C40000 - 6C7FFFF 6C80000 - 6CBFFFF 6CCOOOO - 6CFFFFF 436 Megabyte 6000000 - 603FFFF 6040000 - 607FFFF 6080000 - 60BFFFF 60COOOO - 60FFFFF 440 Megabyte 6EOOOOO - 6E3FFFF 6E40000 - 6E7FFFF 6E80000 - 6EBFFFF 6ECOOOO- 6EFFFFF 444 Megabyte 6FOOOOO - 6F3FFFF 6F40000 - 6F7FFFF 6F80000 - 6FBFFFF 6FCOOOO - 6FFFFFF 448 Megabyte 7000000 - 703FFFF 7040000 - 707FFFF 7080000 - 70BFFFF 70COOOO - 70FFFFF 452 Megabyte 7100000 - 713FFFF 7140000 - 717FFFF 7180000 - 71BFFFF 71COOOO - 71FFFFF 456 Megabyte 7200000 - 723FFFF 7240000 - 727FFFF 7280000 - 72BFFFF 72COOOO - 72FFFFF 460 Megabyte 7300000 - 733.FFFF 7340000 - 737FFFF 7380000 - 73BFFFF 73COOOO - 73FFFFF 464 Megabyte 7400000 - 743FFFF 7440000 - 747FFFF 7480000 - 74BFFFF 74COOOO - 74FFFFF 468 Megabyte 7500000 - 753FFFF 7540000 - 757FFFF 7580000 - 75BFFFF 75COOOO - 75FFFFF 1-80 472 Megabyte 7600000 7640000 7680000 76COOOO 476 Megabyte 7700000 7740000 7780000 77COOOO 480 Megabyt 7800000 7840000 7880000 78COOOO 484 Megabyte 7900000 7940000 7980000 79COOOO 488 Megabyte 7A00000 7A40000 7A80000 7ACOOOO 492 Megabyte 7800000 7840000 7880000 7BCOOOO 496 Megabyte 7C00000 7C40000 7C80000 7CC0000 500 Megabyte 7000000 7040000 7080000 70COOOO 504 Megabyte 7EOOOOO 7E40000 7E80000 7ECOOOO 508 Megabyte 7FOOOOO 7F40000 7F80000 7FCOOOO - 763FFFF 767FFFF 76BFFFF 76FFFFF 773FFFF 777FFFF 77BFFFF 77FFFFF 783FFFF 787FFFF 78BFFFF 78FFFFF 793FFFF 797FFFF 79BFFFF 79FFFFF 7A3FFFF 7A7FFFF 7ABFFFF 7AFFFFF 7B3FFFF 7B7FFFF 7BBFFFF 7BFFFFF 7C3FFFF 7C7FFFF 7CBFFFF 7CFFFFF 7D3FFFF 707FFFF 7DBFFFF 70FFFFF 7E3FFFF 7E7FFFF 7EBFFFF 7EFFFFF 7F3FFFF 7F7FFFF 7FBFFFF 7FFFFFF *** BEWARE *** These are LONGWORD address ranges,(not byte ranges). (PA<29:02>) I (ID#lA<27:00>) The following charts show the TIMEOUT ADDRESS (ID #lA) range for the VAX NEXUS devices. The address ranges actually show the Longword Address ranges for each device. The address shown in "ID #lA" bits <27:00> are equal to the Physical address bits PA<29:02>, which is actually a Longword address. The charts showing memory array address ranges assume that the memories are not interleaved. MS780C "0-4 Megabyte" /MS780A "0-1 Megabyte" ("LONGWORD" ranges) Array Slot 0 1 2 3 4 5 6 7 8 9 A B 17 16 15 14 13 12 11 10 9 8 7 6 0 4 3 2 c E F 5 MS780C M8210 Arrays MS780A M8211 Arrays 0000000 - OOOFFFF 0010000 - OOlFFFF 0020000 - 002FFFF 0030000 .;,,. 003FFFF 0040000 - 004FFFF 0050000 - 005FFFF 0060000 - 006FFFF 0070000 - 007FFFF 0080000 - 008FFFF 0090000 - 009FFFF OOAOOOO - OOAFFFF 0080000 - OOBFFFF oocoooo - OOCFFFF 0000000 - OOOFFFF OOEOOOO OOEFFFF OOFOOOO - OOFFFFF 0000000 - 0003FFF 0004000 - 0007FFF 0008000 - OOOBFFF ooocooo - OOOFFFF 0010000 - 0013FFF 0014000 - 0017FFF 0018000 - OOlBFFF OOlCOOO - OOlFFFF 0020000 - 0023FFF 0024000 - 0027FFF 0028000 - 002BFFF 002COOO - 002FFFF 0030000 - 0033FFF 0034000 - 0037FFF 0038000 003BFFF 003COOO - 003FFFF MS780C "4-8 Megabyte" /MS780A "1-2 Megabyte" ("LONGWORD" ranges) Array Slot 0 1 2 3 4 5 6 7 8 9 A B 17 16 15 14 13 12 11 10 MS780C M8210 Arrays MS780A M8211 Arrays --------------------------------------------------------------------------- c 0 E F 9 8 7 6 5 4 3 2 0100000 0110000 0120000 0130000 0140000 0150000 0160000 0170000 0180000 0190000 OlAOOOO 0180000 OlCOOOO 0100000 OlEOOOO OlFOOOO 1-81 - OlOFFFF OllFFFF 012FFFF 013FFFF 014FFFF 015FFFF 016FFFF 017FFFF 018FFFF 019FFFF OlAFFFF OlBFFFF OlCFFFF OlOFFFF OlEFFFF OlFFFFF 0040000 0044000 0048000 004COOO 0050000 0054000 0058000 ooscooo 0060000 0064000 0068000 006COOO 0070000 0074000 0078000 007COOO - 0043FFF 0047FFF 004BFFF 004FFFF 0053FFF 0057FFF 005BFFF OOSFFFF 0063FFF 0067FFF 006BFFF 006FFFF 0073FFF 0077FFF 007BFFF 007FFFF MA780A Array "Longword" Address Ranges Array Slot 0 1 2 3 4 5 6 8 7 7 6 5 4 3 2 1 Array S1ot 0 1 8 7 6 2 3 5 4 4 5 6 7 2 3 1 MA780A M8210 Arrays O to 2 Megabyte 0000000 0010000 0020000 0030000 0040000 0050000 0060000 0070000 - OOOFFFF OOlFFFF 002FFFF 003FFFF 004FFFF OOSFFFF 006FFFF 007FFFF MA780A M8210 Arrays 4 to 6 Megabyte 0100000 0110000 0120000 0130000 0140000 0150000 0160000 0170000 1-82 - OlOFFFF - OllFFFF - 012FFFF - 013FFFF - 014FFFF - '015FFFF - 016FFFF - 017FFFF MA780A M8210 Arrays 2 to 4 Megabyte 0080000 0090000 OOAOOOO OOBOOOO oocoooo 0000000 OOEOOOO OOFOOOO - 008FFFF 009FFFF OOAFFFF OOBFFFF OOCFFFF OOOFFFF OOEFFFF OOFFFFF MA780A M8210 Arrays 6 to 8 Megabyte 0180000 0190000 OlAOOOO OlBOOOO OlCOOOO 0100000 OlEOOOO OlFOOOO - 018FFFF 019FFFF OlAFFFF OlBFFFF OlCFFFF OlOFFFF OlEFFFF OlFFFFF MS780-E Array "Longword" Address Ranges Internally Interleaved A total of 16 Megabytes per MS780-E are possible when ·internally interleaving. In order to internal interleave the MS780-E, the following configuration guidelines must be followed: . Memory Controllers (M8375's) must be installed in slots 10 & 12 . . Each controller must have the same amount of memory arrays, of the same type and capacity, in their respective array slots . . There cannot be any gaps between the arrays on each controller. In other words, the Lower Controller expands from slot 9 towards slot 2 while the Upper Controller expands from slot 13 towards slot 20. When the MS780-E is configured with two controllers, internally interleaved as follows: the memory is . The "Lower Controller's Arrays" contain the "EVEN Physical QUADWORD" addresses, (Physical Address bit 3=0) . . The "Upper Controller's Arrays" contain the "ODD Physical QUADWORD" addresses, (Physical Address bit 3=1). Array LO uo Ll Ul L2 U2 L3 U3 L4 U4 L5 U5 L6 U6 L7 U7 Slot MS780-E M8373 Arrays 0 to 16 Megabyte 9 0000000 - 007FFFF 13 8 14 0080000 - OOFFFFF 7 0100000 - 017FFFF 0180000 - OlFFFFF 0200000 - 027FFFF 15 6 16 5 17 4 18 3 19 2 20 0280000 - 02FFFFF 0300000 - 037FFFF 0380000 - 03FFFFF L = Lower Controller's Array u = Upper Controller's Array PA3 = Physical Address bit 3 1-83 MS780-E M8373 Arrays 16 to 32 Megabyte (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) 0400000 - 047FFFF 0480000 - 04FFFFF 0500000 - 057FFFF 0580000 - 05FFFFF 0600000 - 067FFFF 0680000 - 06FFFFF 0700000 - 077FFFF 0780000 - 07FFFFF MS780-E Array "Longword" Address Ranges (cont'd) No Internal Interleaving The MS780-E may be operated in NO INTERNAL INTERLEAVING mode but the total amount of memory per MS780-E is reduced to-a total of 8 Megabytes. This mode of operation is accomplished whenever the following configuration guidelines are followed: There is only one Memory Controller (M8375) installed in the MS780-E backplane. This controller can be installed in either slot 10 or 12 (slot 10 is preferred). If the memory controller is installed in slot 10, the memory array modules must be installed in slots 9 through 2 only. No memory arrays are to be installed in slots 13 through 20. If the memory controller is installed in slot 12, the memory array modules must be installed in slots 13 through 20 only. No memory arrays are to be installed in slots 9 through 2. The memory arrays must be installed with no gaps between arrays and no gap between the memory controller and the first array. Array Slot MS780-E M8373 Arrays 0 to 8 Megabyte 0 1 2 3 4 9 or 13 8 or 14 7 or 15 6 or 16 5 or 17 4 or 18 3 or 19 2 or 20 0000000 - 003FFFF 0040000 - 007FFFF 0080000 - OOBFFFF oocoooo - OOFFFFF 0100000 - 013FFFF 0140000 - 017FFFF 0180000 - OlBFFFF OlCOOOO - OlFFFFF MS780-E M8373 Arrays 8 to 16 Megabyte 0200000 0240000 0280000 02COOOO 0300000 0340000 0380000 03COOOO --------------------------------------------------------------------------- 5 6 7 - 023FFFF - 027FFFF - 02BFFFF - 02FFFFF - 033FFFF - 037FFFF - 03BFFFF - 03FFFFF In the above chart, the slot of the array depends upon which memory controller is installed. Slots 2 through 9 are used if the Memory Controller is in slot 10, and slots 13 through 20 are used if the Memory Controller is in slot 12. 1-84 MS780-E Array "Longword" Address Ranges (cont'd) Externally Interleaved A total of 16 Megabytes are possible when externally interleaving two MS780-E controllers. In order to externally interleave 2 MS780-E memory backplanes, the following configuration guidelines must be followed: . Both memory backplanes must be configured to operate in the non internal interleaved mode . . Both memory subsystems must have the same amount of memory arrays, of the same type and capacity, and in corresponding slot locations . . Both memory subsystems must have the same assigned starting address . . The memory subsystems must have adjacent "TR Levels" assigned to them . . "Bit <O>" of both memory subsystems' "CNFG A register" must be set prior to memory usage. When two MS780-E's are configured for EXTERNAL interleaving, the following rules are used to determine what address are located in what memory . . The Memory Subsystem assigned the "Lower TR Level" contains the "EVEN Quadword" addresses . . The Memory Subsystem assigned the "Higher TR Level" contains the "ODD Quadword" addresses. Array Slot MS780-E M8373 Arrays 0 to 16 Megabyte LO 9/13 0000000 - 007FFFF uo Ll Ul L2 U2 L3 U3 L4 U4 L5 U5 L6 U6 L7 U7 9/13 8/14 8/14 7/15 7 /15 6/16 6/16 5/17 0080000 - OOFFFFF 0100000 - 017FFFF 0180000 - OlFFFFF 0200000 - 027FFFF 5/17 4/18 4/18 3/19 3/19 0280000 - 02FFFFF 2/20 2/20 0380000 - 03FFFFF 0300000 - 037FFFF (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=1) (PA3=0) (PA3=l) (PA3=0) (.?A3=:) Memory Subsystem with the Lower assighed "TR :=...evel". Memory Subsystem with t:.he Higher assigned "TR =-.evel". PA3 = Physical Address bit 3 L H 1-85 Converting a 1. Take the UNIBUS address and drop off the 2 least significant "binary" bits (Unibus address bits <1:0> are not used). I 2. "UNIBUS_Byte (Octal Format) Address" to a "VAX (Hex Format) Longword" address 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 use these binary bits for conversion I not I used Change the Unibus address bits <17:02> to a Hexadecimal number by breaking the "binary" representation of these address bits into 4-bit sections. Do not use address bits <1:0>. I 17 16 15 14 I 13 12 11 10 I 09 08 07 06 I 05 04 03 02 I 3. Using the hexadecimal number converted in steps 1 and 2, add it to one of the following DW780 Adapter Base addresses (which one you use depends on which DW780 the UNIBUS device resides). DW780 Adapter DW780 Unibus Space Longword Base Address 8040000 8050000 8060000 8070000 0 1 2 3 4. The resulting hexadecimal number (should be 7 hexadecimal digits in length) is the SBI Longword address that is used to access the UNIBUS address just converted for that particular Adapter's UNIBUS. This is the address that will be stored in the "TIMEOUT ADDRESS" {ID #lA) register on a CP Timeout. If you want to find out what the Physical Byte address is, simply convert the Longword address by adding two binary zeros as the least significant bits and then reconvert back to hexadecimal. 1-86 Converting a "VAX LONGWORD (Hex Format)" address to a "UNIBUS BYTE (Octal Format)" address 1. First of all, you must make sure that you have an SB! address that is assigned to a DW780 Adapters' Unibus space. Check to see that the address falls in one of the following ranges: Adapter #0 SBI UNIBUS Address Space Adapter #1 SBI UNIBUS-Address-Space Adapter #2 SBI UNIBUS-Address-Space Adapter #3 SBI UNIBUS=Address=Space 2. 8040000 8050000 8060000 8070000 thru 804FFFF thru 805FFFF thru 806FFFF thru 807FFFF If the address to be converted falls in one of these ranges, then you do have a VAX Physical Longword Unibus address. Drop off the 3 most significant digits (804, 805, 806, or 807), and use the remaining four digits to find the equivalent UNIBUS 18-bit octal address. !<---------------- SBI "Longword_Hex" Address -------------------->! I 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 7 6 5 4 9 8 7 6 5 4 3 2 1 0 9 8 3 2 1 0 I I I I<----- Adapter Base ------->!<- UNIBUS 18-bit HEX LONGWORD Addr. ->I I 3. Change these four HEX digits (the digits labeled "UNIBUS 18-bit HEX LONGWORD Address" in the diagram above) to their BINARY representation. You should now have 16 binary digits written down. 4. Add two binary zeros to the least significant end (far right end) of this BINARY number. This will change the "UNIBUS LONGWORD address" to a "UNIBUS BYTE address". You should now have 18 binary bits written down with the last two digits on the right being zeros. 5. Convert the result back to octal by breaking up into three digit sections= You should end up with six octal digits. This is the "UNIBUS BYTE address" in octal representation. 1-87 Converting "VAX PHYSICAL BYTE (Hex Format)" address to "UNIBUS (Octal Format)" address 1. First of all, you must make sure that you have a Physical Byte address that is assigned to one of the DW780 Adapters' UNIBUS space. Check to see that the address falls in one of the following ranges: Adapter #0 UNIBUS Byte Address space Adapter #1 UNIBUS-Byte-Address space Adapter #2 UNIBUS-Byte-Address space Adapter #3 UNIBUS=Byte=Address space 2. 20100000 20140000 20180000 201COOOO thru 2013FFFF thru 2017FFFF thru 201BFFFF thru 201FFFFF If the address to be converted falls in one of these ranges, then you do have a VAX (hex) Physical Byte UNIBUS address. Extract the 18 least significant digits from this address. These 18 bits represent the HEX representation of the UNIBUS address. !<---------------I 3 3 2 2 2 2 2 2 1 0 9 8 7 6 5 4 VAX Physical Byte UNIBUS Address ---------------->! 2 2 2 2 3 2 1 0 0 0 0 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 7 6 5 4 I 0 0 0 0 3 2 1 0 I I I !<----- Adapter Base --------->!<-- UNIBUS 18-Bit HEX BYTE Address --->I 3. Change these 5 HEX digits (the digits labeled "UNIBUT 18-Bit HE~ BYTE Address" in the diagram above) to their BINARY representation. 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 4. Now, break this BINARY representation up into 3 bit sections so as to convert to OCTAL representation. 1 1 1 * 7 6 5 * 5. 1 1 l * 4 3 2 * 1 1 0 * 1 0 9 * 0 0 0 * 8 7 6 * 0 0 0 * 5 4 3 * Read this broken up Binary representation in OCTAL. the UNIBUS BYTE address in OCTAL representation. 1-88 0 0 0 2 l 0 The result is Converting a "UNIBUS Octai_BYTE" Address to a "VAX Hex PHYSICAL BYTE" Address - le - Take the OCTAL UNIBUS BYTE Address and change it to its BINARY representation~ 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 2. Now change this BINARY representation, of the UNIBUS BYTE Address, to its HEX representation by breaking up the Binary rep~esentation into 4 digit sections (you must start with the least significant digit <00> and work towards the most significant digit <17>). * * 1 1 7 6 3. * * 1 1 0 0 1 0 9 8 * * 0 0 0 0 7 6 5 4 * * 0 0 0 0 3 2 1 0 Add the appropriate DW780 UNIBUS Adapter Base Address onto the resultant HEX number converted in the preceeding step. -The following chart shows the Adapter_Base_Addresses for the 4 possible DW780 adapters. Adapter #0 Adapter #2 4. 1 1 1 1 5 4 3 2 20100000 20180000 Adapter #1 Adapter #3 = 20140000 201COOOO The resultant HEX number is the HEX representation of the VAX PHYSICAL BYTE UNIBUS Address. 20lx0000 + yyyyy 20lzzzzz <--- UNIBUS Space Base nf desired DW780 Adapter <--- Hex representation of UNIBUS address <--- HEX representation of the UNIBUS Address converted to a VAX PHYSICAL BYTE-UNIBUS Address. - 1-89 - - Equivalent DW780 Adapter "Longword" address #2 #3 #1 UNIBUS device Address #0 760010 760020 760030 760040 760050 760060 760070 760100 760110 760120 760130 760140 760150 760160 760170 760200 760210 760220 760230 760240 760250 760260 760270 760300 760310 760320 760330 760340 760350 760360 760370 760400 760410 760420 760430 760440 760450 804F802 804F804 804F806 804F808 804F80A 804F80C 804F80E 804F810 804F812 804F814 804F816 804F818 804F81A 804F81C 804F81E 804F820 804F822 804F824 804F826 804F828 804F82A 804F82C 804F82E 804F830 804F832 804F834 804F836 804F838 804F83A 804F83C 804F83E 804F840 804F842 804F844 804F846 804F848 804F84A 805F802 805F804 805F806 805F808 805F80A 805F80C 805F80E 805F810 805F812 805F814 805F816 805F818 805F81A 805F81C 805F81E 805F820 805F822 805F824 805F826 805F828 805F82A 805F82C 805F82E 805F830 805F832 805F834 805F836 805F838 805F83A 805F83C 805F83E 805F840 805F842 805F844 805F846 805F848 805F84A 806F802 806F804 806F806 806F808 806F80A 806F80C 806F80E 806F810 806F812 806F814 806F816 806F818 806F81A 806F81C 806F81E 806F820 806F822 806F824 806F826 806F828 806F82A 806F82C 806F82E 806F830 806F832 806F834 806F836 806F838 806F83A 806F83C 806F83E 806F840 806F842 806F844 806F846 806F848 806F84A 807F802 807F804 807F806 807F808 807F80A 807F80C 807F80E 807F810 807F812 807F814 807F816 807F818 807F81A 807F81C 807F81E 807F820 807F822 807F824 807F826 807F828 807F82A 807F82C 807F82E 807F830 807F832 807F834 807F836 807F838 807F83A 807F83C 807F83E 807F840 807F842 807F844 807F846 807F848 807F84A 764004 764014 764024 804FA01 804FA03 804FA05 805FA01 805FA03 805FA05 806FA01 806FA03 806FA05 807FA01 807FA03 807FA05 770460 804FC4C 805FC4C 806FC4C 807FC4C 772410 804FD42 805FD42 806FD42 807FD42 774400 804FE40 805FE40 806FE40 807FE40 777160 804FF9C 805FF9C 806FF9C 807FF9C 777440 804FFC8 805FFC8 806FFC8 807FFC8 777514 804FFD3 805FFD3 806FFD3 807FFD3 --------------------------------------------------------------------------- 1-90 Equivalent DW780 Adapter "BYTE" address #2 #1 UNIBUS device Address #0 760010 760020 760030 760040 760050 760060 760070 760100 760110 760120 760130 760140 760150 760160 760170 760200 760210 760220 760230 760240 760250 760260 760270 760300 760310 760320 760330 760340 760350 760360 760370 760400 760410 760420 760430 760440 760450 2013E008 2013E010 2013E018 2013E020 2013E028 2013E030 2013E038 2013E040 2013E048 2013E050 2013E058 2013E060 2013E068 2013E070 2013E078 2013E080 2013E088 2013E090 2013E098 2013EOAO 2013EOA8 2013EOBO 2013EOB8 2013EOCO 2013EOC8 2013EODO 2013EOD8 2013EOEO 2013EOE8 2013EOFO 20.13EOF8 2013El00 2013El08 2013Ell0 2013Ell8 2013El20 2013El28 2017E008 2017E010 2017E018 2017E020 2017E028 2017E030 2017E038 2017E040 2017E048 2017E050 2017E058 2017E060 2017E068 2017E070 2017E078 2017E080 2017E088 2017E090 2017E098 2017EOAO 2017EOA8 2017EOBO 2017EOB8 2017EOCO 2017EOC8 2017EODO 2017EOD8 2017EOEO 2017EOE8 2017EOFO 2017EOF8 2017El00 2017El08 2017Ell0 2017Ell8 2017El20 2017El28 201BE008 201BE010 201BE018 201BE020 201BE028 201BE030 201BE038 201BE040 201BE048 201BE050 201BE058 201BE060 201BE068 201BE070 201BE078 201BE080 201BE088 201BE090 201BE098 201BEOAO 201BEOA8 201BEOBO 201BEOB8 201BEOCO 201BEOC8 201BEODO 201BEOD8 201BEOEO 201BEOE8 201BEOFO 201BEOF8 201BE100 201BE108 201BE110 201BE118 201BE120 201BE128 201FE008 201FE010 201FE018 201FE020 201FE028 201FE030 201FE038 201FE040 201FE048 201FE050 201FE058 201FE060 201FE068 201FE070 201FE078 201FE080 201FE088 201FE090 201FE098 201FEOAO 201FEOA8 201FEOBO 201FEOB8 201FEOCO 201FEOC8 201FEODO 201FEOD8 201FEOEO 201FEOE8 201FEOFO 201FEOF8 201FE100 201FE108 201FE110 201FE118 201FE120 201FE128 764004 764014 764024 2013E804 2013E80C 2013E814 2017E804 2017E80C 2017E814 201BE804 201BE80C 201BE814 201FE804 201FE80C 201FE814 770460 2013Fl30 2017Fl30 201BF130 201FF130 772410 2013F508 2017F508 201BF508 201FF508 774400 2013F900 2017F900 201BF900 201FF900 777160 2013FE70 2017FE70 201BFE70 201FFE70 777440 2013FF20 2017FF20 201BFF20 201FFF20 777514 2013FF4C 2017FF4C 201BFF4C 201FFF4C #3 --------------------------------------------------------------------------- 1-91 5. ) ***** Read Data Substitute (RDS) Faults and Aborts ***** The Machine Check Logout information is not very good for this type of Machine Check. The associated Memory's status registers are more helpful for this type of problem. MS780A and MS780C memories have error correction logic that can supposedly correct one bad bit per 72 bit array word. For read accesses that result in one bad bit being detected, the memories' error correction logic will correct the bad bit and will flag the data that is returned as "Corrected Read Data". If there are a multiple even number of bad bits detected ouring the 72 bit array read access, the data returned will be flagged as "Read Data Substitute". This indicates that the data has not been corrected and the quadword returned "may" be bad (the bits bad may have been in the ECC code so, therefore, the actual data returned may be good). BEWARE that MS780A & C memories cannot correctly detect and signal a multiple odd number of bad bi ts read from the ·72 bit array. If this condition happens, the memory will send back the data and report it as "Corrected Read Data". It is, therefore, a good idea to swap out any arrays that are giving single bit errors for those types of problems that are intermittent and cannot seem to be fixed by other means. This type of Machine Check means that a Double Bit Error has been detected, by memory, when the CPU was accessing a memory location. Bit #13 of ID Register #19 should be set for this type of error to havt occured. "(SP)+l6" contains a Virtual Address within the quadword location at fault. If the system has not been rebooted or disturbed, you may be able to use this "Virtual Address" in the following console command to find the Physical BYTE Address causing the error. >>> E/L/V xxxxxxxx ; where xxxxxxxx = contents of "(SP)+l6". The CONSOL.SYS program should respond with the following type of output: p yyyyyyyy zzzzzzzz Where "yyyyyyyy" is the Physical Address at fault. If you get a "Mic-err", the necessary PTE to make the Virtual to Physica translation isn't available from memory or the TB. If this command was successful, you can use this Physical Address to determine what array is at fault. This address is a "Physical BYTE Address". If you were not able to find the failing array by the procedure above, your only other choice is to use the "SYSTEM EVENT File" to see if any memory errors have been recorded. Remember that the first array is array #0 not array #1. 1-92 MS780A & MS780C memories: If bit <28> = 1, in "Memory Register C", then Bits <27:24> should reflect the array that had the error. Memory Register "C" Bit <28> Bits <27:24> Error Log Request Array Select MS780E memories: If bit <28> = 1, in "Memory Register C" or "Memory Register D", then bit <27> will indicate the controller and bits <26:24> will indicate the array within that controller that had the error. Memory Registers "C & D" -----------------------Bit <28> Bit <27> Bits <26:24> Bits <23:22> Bits <21:11> Bits <19:11> Bit <10> Bit <09> ("C" - Lower Controller) ("D" - Upper Controller) Error Log Request Controller Select Array Select Array Bank Select RAM page address for 256K RAMs RAM page address for 64K RAMs Multiple bit error Single bit error detected and corrected MA780 memories: If bit <28> ~ 1, in the "Array Error Register", then bits <27:24>, of the same register, will indicate the Array in error. Array Error Register Bit <28> Bit <08> Bits <22:09> Bit <23> Bits <27:24> Error Log Request 1 = Upper Word, 0 = Lower Word Chip address presented to the memory chip 1 = Upper Bank, 0 = Lower Bank Array card with the error Problem areas: A Memory Array or the MEMORY Control. Memory or CPU Backplane. Memory or CPU Power. SBI/CPU interface. SBI cables. 1-93 6. ) ***** VAX Micro-Code NOT SUPPOSE TO GET HERE ***** The "Trapped UPC" is about the only data saved, in the Machine Check Logout information, that may help you trouble-shoot this type of problem. This type of Machine Check exception occurs whenever the microcode finds itself accessing a microcode location that it should never make it to. The unused microwords contain jumps that will direct the Micro-PC to ~he micro routine that flags this error. The Micro-stack register, ID #20, should contain the Control Store Address that the microcode wasn't suppose to get to. The microcode stores this register in ID #32 for a Double Error Halt and on the stack at "(SP)+12" on a Machine Check exception. Verify that the address is unused via the micro-fiche MICROCODE listing. Problem areas: Micro-code address logic (M8235). Any board on the "micro PC" bus. PCS ( M8 2 34 ) • WCS (M8233 or M8238 in slot 20). OPTIONAL wcs (M8233 or M8238 in slot 18). IR Decode Logic. WCSxxx.PAT on the LOCAL CONSOLE Floppy (or whatever floppy the WCS was loaded from). WCS load path (Floppy-> LSI-> CIB ->ID Bus-> WCS). Clock Board (M8232). CPU Power. 1-94 ID #20 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 Micro Stack Register 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 Reading this register pops the top address from the micro stack. Writing this register pushes an address onto the micro stack. Bits <15:00> ************ Control Store Address <15:00> <15:00> = micro Address <15:00> Micro PC Wirelist and Slot chart Slot 18 Slot 20 Slot 22 Slot 23 Slot 08 Signal ! Pin !Opt. WCS WCS PCS M8235 M8224 *************!*****!*********!********!*********!********* *********! Bus uPC 00 ! EAl ! X ! X X X X ! -------------!-----!---------!--------!---------!--------- ---------! Bus UPC 01 ! ER2 ! x x x x x -------------!-----!---------!--------!---------!--------- ---------! Bus uPC 02 ! ESl ! X X X ! X X -------------!-----!---------!-------- ---------!---------!---------! x x Bus uPC 03 ! EU2 ! x x x -------------!-----!---------!-------- ---------!---------!--------- Bus UPC 04 I EV2 ! x x x ! x ! x ------------- -----!---------!-------- ---------!---------!--------Bus uPC 05 FB2 ! X ! X X X ! X ------------- -----!---------!-------- ---------!---------!--------Bus uPC 06 x x FDl ! x x x ------------- -----!---------!-------- ---------!--------- --------- Bus UPC 07 FD2 ! x ! x x x x ------------- -----!---------!-------- ---------!--------- --------Bus uPC 08 ! FEl ! X ! X X X no -------------!-----!---------!-------- ---------!--------- -----~--Bus uPC 09 ! FE2 ! x x x x no -------------!-----!---------!-------- ---------!--------- ---------! Bus uPC 10 ! FFl ! X ! X X x no -------------!-----!---------!-------- ---------!---------!---------! Bus uPC 11 ! FF2 ! X X ! X ! X ! no -------------!-----!---------!--------!---------!---------!---------! Bus uPC 12 ! FH2 ! X ! X X X no -------------!-----!---------!--------!---------!---------!---------! "WCS" and Opt. WCS" boards are either M823~'s (2K) or M8233's (lK). 1-95 c p u DOUBLE CPU DOUBLE c p u DOUBLE CPU DOUBLE c p u DOUBLE CPU DOUBLE c p u DOUBLE ERROR ERROR ERROR ERROR ERROR ERROR ERROR $ ?CPU DBLE-ERR HLT HALTED AT 8007E2A8 >>> 1-97 HALTS HALTS HALTS HALTS HALTS HALTS HALTS If the Problem is a "CPU Double Error Halt", "?CPU DBLE-ERR HLT" was printed on the console terminal, diagnosis is similiar to the "Machine Check" trouble-shooting. The difference is in where the information is stored by the VAX-11/780 CPU microcode. A "Double Error Halt" is simply a trap upon a trap. On a "Double Error Halt" the logout information is stored in 2 places. The information for the first trap, "Machine Check", is stored in ID Bus registers 30 thru 39, and the information for the second trap, "Machine Check", is stored in the associated ERROR/STATUS Registers and the Memory NEXUS registers. It is, therefore, very important to take a dump of all the Processor ID Bus Registers and all the Memory NEXUS registers at the time of the crash, before any other commands are given. This can be done with the following CONSOL.SYS commands: >>> >>> E/L/H/ID/N:l7 0 R E/L/H/ID 18 ;allow CONSOL.SYS to do at least 15 examines, then type "AC". Ac >>> >>> E/L/H/ID/N:25 19 E/L/H/P/N:x 200yy000 x = depends on memory type ; yy = depends on Mem TR level Repeat the last command, changing "x" and "yy" as needed in order to gather all the Memory NEXUS registers. >>> ; yy = depends on TR level E/L/H/P 200yy000 Repeat the last command, changing "yy" as needed, in order to obtain the contents of all NEXUS Configuration Registers. An easier method to dump the needed information would be to use a "DUMP." CONSOL.SYS command file, built as outlined in Chapter 3 of this manual. Unlike "MACHINE CHECKS", "Double Error Halts" bring the VAX completely down to a HALT. Control passes back to the VAX-11/780 CONSOL.SYS program. Therefore, the System Event file, ERRLOG.SYS, will not contain information at the time of the crash. ERRLOG.SYS may, however, contain some pertinent information about something that happ~ned just prior to the crash, (such as a Double Bit Error in Memory). If you have not isolated the problem by examining the Hardware Registers, it may be worth your time to try to bring the VMS Operating System back up and examine the Error log file. The information for the first error of a DOUBLE ERROR HALT will be found in the Temporary Registers, ID Registers #30 thru #39 (see note). The information for the second error of a DOUBLE ERROR HALT will be found in the associated error/status registers. Therefore, it is very important to examine all the Hardware Registers in order to trouble-shoot Double Error Halts. The Hardware Register Dump must be 1-98 taken immediately before anything else is done, in order to assure that the Register Contents are valid for the time of the error. Note: ***** If the second error was a "Control Store Parity Error" or a "Microsequencing Error", the information in "TO-T9" MAY NOT BE VALID for the first error. The safest thing to due is to check ID #OC, see if bit <15>=1, and IF IT IS DO NOT USE "T0-T9" (which are ID #30-39). If the second error was a "Micro-sequencing Erro~", there will not be any other error bits set. In either case, if the SECOND error is found to be either a "Control Store Parity Error" or "Micro-sequencing Error", the information in TO thru T9 may not be valid. Use the MACHINE CHECK outline tb trouble-shoot the first error. The only difference is that the LOGOUT information is found in "ID 30" thru "ID 39" instead of on the stack. These ID registers must be dumped by you, or the customer, prior to anything else being done. Examine the rest of the ID registers and all the Memory NEXUS hardware registers in order to determine what the second error was. It is best to determine what the second error was prior to checking the first error since the information for the first error may not be valid, due to the second error occuring before the "TO-T9" logout was completed. i.e. "Control Store Parity Error" or "Micro-Sequencing Error". If Bits <19>, <17>, & <16> of ID #lB are equal to a 1, then an S.B.I. FAULT has occured. Use ID #lB, the S.B.I. Silo dump, and the Configuration registers in the NEXUS devices, to determine the cause of the FAULT. DOUBLE ERROR HALT Information Description Summary Parameter CPU Error Status Trapped UPC VA/VIBA D Register TB Error 0 TB Error 1 Timeout Address Parity SBI Error Fault Status Register 1st Error ID Location 2nd Error ID Location TO Tl T2 T3 T4 T5 T6 T7 TS T9 none 30 31 32 33 34 35 36 37 38 39 none none oc 20 none 08 12 13 lA lE 19 lB If the second error is caused by a RDS error, then the associated memory registers wi 11 reflect the array in error. BEWARE: The 1st error information MAY NOT BE VALID 1f ID ::oc Bit< 15 > = 1, or if a micro-sequencer problem has occured. 1-99 Due to the possibility of the processor detecting a non-existent error condition, it is a good idea to constantly make certain validity checks of the error information that you have gathered. In the case of "Double Error Halts", some of the error information may not be correctly stored away due to a second error occuring while the first error is being stored. Therefore, you should always make a validity check of the information stored in ID #30:39 (the 1st error). It is a good idea to always make validity checks on the errors. CPU Detected Error VALIDITY CHECKS: Control Store Parity Error -- "CPU Error Status Register", ID #OC, must have Bit <15>=1. CP/IB Read Timeouts -------- "SBI Error Register", ID #19, must have either Bit <12>=1 or Bit <06>=1. CP/IB Error Confirmations --- "SBI Error Register", ID #19, must have either Bit <08>=1 or Bit <03>=1 CP/IB RDS Faults ------------ "SBI Error Register", ID #19, must have Bit<l3>=1 or Bit <07>=1. TB Parity Errors ------------ "Translation Buffer Register #1", ID #13, must have at least one of Bits <20:09>=1. Cache Parity Errors --------- "Cache Parity Register", ID #lE, must have Bit <15>=1. S.B.I. Fault ---------------- "SBI Fault Status Register", ID #lB, must have Bit <19>=1, and Bit <17>=1. Also, at least one of the NEXUS should have at least one of Bits <31:27> set(=l) in their associated Configuration Status Registers. The VAX-11/780 is also a NEXUS and its equivalent register is ID #lB. 1-100 CPU Double Error Halt Flowchart 1------------------------------------------------1 I ?CPU DBLE-ERR HLT I I >>> I I The above printout occured on the console. I 1------------------------------------------------1 I 1------------------------------------------------1 I Examine all the ID registers, the SB! SILO, alll I the registers within the MEMORIES, and the I I CONFIGURATION/STATUS register in each NEXUS. I I This can be done by using a previously built I I "DUMP." CONSOL.SYS command file (as outlined inl I Chapter 3) or by using the commands outlined inl I the beginning of the DOUBLE ERROR HALT section.I 1------------------------------------------------1 I 1-------------------------------------------------1 I Using the contents of ID OC, 13, 19, lB, and lE I I determine what the 2nd error was, by checking I I the following bits: I 1-------------------------------------------------1 l I 1-------------------------1 I I I --1 I --1 I --1 1--1 I --1 I I El I I E2 I I E3 I I E4 I I ES I I I --1 I --1 I --1 I --1 I --1 I I I I I I 1-----------------------------------------------------------------1 I ID #OC I ID #13 I ID #19 I ID #19 I ID #lB I ID #lE I none I I I I I I I of I I I <12> or I I I I these I I any of I <06> or I <13> or I <19> and I 1-->I I <15> =l I <20:09> I <08> or I <07> =l I <17> =l I <15> =l I I I I =l I <03> =l I I I I I l----------l----------l----------1----------1----------1----------I I I yes l yes i yes i yes I yes I yes I I I I I I I I goto goto goto goto goto goto I "CSPE" "TBPE" "SBIERR" "RDS" "SBIFLT" "CAPE" I I !<---------------------------------------! I !---------------------------------------------------------------------! I No errors bits are set. I problem in the KA780. This usually indicates a "MICRO-SEQUENCER" I I I Use the appropriate section in the Machine Check error portion of I I this manual to trouble-shoot this type error. Then return to this I I flow at "FIRST ERROR ANALYSIS". I l---------------=-----=-----------------------------------------------1 1-101 1------------1 I "CSPE" I l--~---------1 I l----------~----------------------------------------------------------1 I ID #OC bit <15>=1 indicates that a "CONTROL STORE PARITY ERROR" was I detected in the KA780. I I Use the appropriate section in the Machine Check error portion of I this manual to trouble-shoot this type error (page 1.046). Then I return to this flow at "El" to see what other errors occured. I However CSPE's should be fixed first. I I I I I I I 1---------------------------------------------------------------------1 1-----------1 I "TBPE" I 1-----------1 I 1---------------------------------------------------------------------1 I ID #13 bits <20:09> are used to indicate "TRANSLATION BUFFER PARITY I ERRORS" detected in ~he KA780. I I Use the appropriate section in the Machine Check error portion of I this manual to trouble-shoot this type error (page 1.038). Then I return to this flow at "E2". I I I I I I 1---------------------------------------------------------------------1 1--------------1 I "SBIERR" I 1--------------1 I 1---------------------------------------------------------------------1 I ID #19 bits <12> and <06> are used to indicate SBI timeouts as a I result of a KA780 microcode or IB requests, respectively. I I ID #19 bits <08> and <03> are used to indicate SBI Error CNF's as a I result of a KA780 microcode or IB requests, respectively. I I Use the appropriate section in the Machine Check error portion of I this manual to trouble-shoot this type error (page 1.056). Then I return to this flow at "E3". I I I I I I I I I 1---------------------------------------------------------------------1 1-102 1------------1 I "RDS~ I 1------------1 I 1---------------------------------------------------------------------1 I ID #19 bits <13> and <07> are used to indicate that "RDS" data has I been received as a result of a KA780 microcode or IB request, I respectively. A "READ DATA SUBSTITUTE" error has occured. I I Use the appropriate section in the Machine Check error portion of I this manual to trouble-shoot this type error (page 1.092). Then I return to this flow at "E4". I I I I I I I 1---------------------------------------------------------------------1 l---~--------1 I "SBIFLT" I 1------------1 I 1---------------------------------------------------------------------1 I ID #lB bits <19> and <17>=1 indicate that an "SBI FAULT" condition I was detected by the KA780 or one of the SBI NEXUS. I I Use the "SBI FAULT" trouble-shooting section of this manual to I isolate this problem (page 1.212). Then return to this flowchart I at "ES". I I I t I I 1---------------------------------------------------------------------1 1------------1 I "CAPE" I 1------------1 I 1---------------------------------------------------------------------i I ID #lE bit <15>=1 indicates that a "CACHE PARITY ERROR" was I detected in the KA780. I I Use the appropriate section in the Machine Check error portion of I this manual to trouble-shoot this type error (page 1.034). Then I return to this flow at "FIRST ERROR ANALYSIS". I I I I I I l------------------------------=-----=--------------------------------1 1-103 1---------------------------1 I "FIRST ERROR ANALYSIS" I l--------=-----=------------1 I I !----------------------------------------------------------------! I Information about the first error is stored in the "TEMPORARY" I I registers (ID #30:39). I I I I HOWEVER, this information may not be valid if the 2nd error wasl I due to a CONTROL STORE PARITY ERROR or a MICROSEQUENCER ERROR. I I If either of these errors occured, the information MAY still bel I good. Use the "VALIDITY CHECKS" to make sure. I 1----------------------------------------------------------------1 I I ------------------------------------------------------------------! The information stored in ID #30:39 is basically a MACHINE CHECK LOGOUT. You can use the MACHINE CHECK trouble-shooting section of this manual to determine what caused this error. The only difference is where the information is stored. The LOGOUT info is found in the TEMPORARIES instead of on the stack. They are assigned as follows: ID #30 - Summary Parameter Code ID #31 - CPU Error Status (saved ID #OC) ID #32 - Trapped UPC (saved ID #20) ID #33 - VA/VIBA (saved output of the VAMX) ID #34 - D Register (saved ID #08) ID #35 - TB Error 0 (saved ID #12) ID #36 - TB Error l (saved ID #13) ID #37 - Timeout Address (saved ID #lA) ID #38 - Cache Parity (saved ID #lE) ID #39 - SBI Error (saved ID #19) I I I I I I I I I I I I I ------------------------------------------------------------------! I I ------------------------------------------------------------------! Using the temporaries instead of the contents of the STACK FRAME, I go to the appropriate section of the MACHINE CHECK section, I based on the SUMMARY PARAMETER CODE found in ID #30's byte 0, to I determine the cause of this error. I I By determining what caused both errors, you now have two pieces I of information to work with in order to fix the system. I I The two errors may help you zero in on one unit being at fault. I However, often times Double Error Halts are two separate errors, I so you have to fix each one individually. I ------------------------------------------------------------------! 1-104 VAX-11/780 "ID" Register ERROR information ID #OC - CES 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 Control Store Parity Error Summary -I I I I CS Parity Error in Group #2 ----------1 I I CS Parity Error in Group #1 ------------! I CS Parity Error in Group #0 --------------1 ID #13 - TBERl 3 3 2 2 1 0 9 8 PE Group PE Group PE Group PE Group PE Group PE Group 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 "' "' "" "" "' "" "" "' "" "" "" "" "" 1 Data Byte 2 -I I I I I I I I I I I I 1-- CP TB Parity Error 1 Data Byte 1 ----1 I I I I I I I I I I- PE Group 0 Addr Byte 0 1 Data Byte 0 ------1 I I I I I I I 1--- PE Group 0 Addr Byte 1 0 Data Byte 2 --------1 I I I I I 1----- PE Group 0 Addr Byte 2 0 Data Byte 1 ----------1 I I I !--------PE Gro.up l Addr _Byte 0 0 Data Byte 0 -------------1 I 1---------- PE Group 1 Addr Byte 1 1------------ PE Group 1 Addr Byte 2 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 ID #19 - SBJ,ERR 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 RDS received for a CP requested cycle --1 I I I SBI Timeout on a CP requested cycle ------1 I I ii iO <-- see chart --1 I ----------<-- see chart ----1 0 0 - No device response 0 1 - Device Busy Timeout 1 0 - Waiting for READ DATA timeout 1 1 - Impossible code 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 I I I I I I SBI Err CNF received for an IB request I I I I I I I I I I I I I I I I I I SBI Error Confirmation on CP requested cycle ------1 I I RDS received for an IB requested cycle ---------------1 I SBI Timeout on an IB requested cycle -------------------1 I 5 4 <-- see chart ---------1 I ----------<-- see chart -----------1 0 0 - No device response 0 1 - Device Busy Timeout 1 0 Waiting for READ DATA timeout 1 1 - Impossible code 1-105 ID #18 - FAULT 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 0 0 0 0 3 2 1 0 I I 1---- Indicates SBI SILO is locked I 1--- indicates that CPU was transmitting at FAULT I 1----- A Multiple Transmitter fault was detected by the CPU I 1---------- An Unexpected Read Data fault was detected by the CPU 1-------------- An SBI Parity Error was detected by the CPU ID #lE - CACHE PARITY 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 A A A "' 1 1 0 0 1 0 9 8 "' "' 0 0 0 0 7 6 5 4 "' "' A A Cache Parity error was detected ----1 I I I I I I I I I I 0 = IB reference, 1 = CP reference ---1 I I I I I I I I I I, I I I I I I I I ________ Parity OK in Data Group 1 Byte 0 I I I I I I I I Parity OK in Data Group 1 Byte 1 ----------1 _____________ ,I I I I I I I Parity OK in Data Group 1 Byte 2 _______________ ,I I I I I I Parity OK in Data Group 1 Byte 3 I I I I I Parity OK in Data Group 0 Byte 0 -----------------1 I I I I Parity OK in Data Group 0 Byte 1 -------------------1 I I I Parity r.u in Data Group 0 Byte "" ----------------------, I I Vl'Parity OK in Data Group 0 Byte '3 ------------------------! I I Parity OK Parity OK Parity OK Parity OK Parity OK Parity OK 0 0 0 0 3 2 1 0 I I I I I I I I I I I I I I I I I I I I in Address Group 0 Byte 0 -----------------------1 in Address Group 0 Byte 1 -------------------------1 I I in Address Group 0 Byte 2 ------------------------~---! I in Address Group 1 Byte 0 ------------------------------! I in Address Group 1 Byte 1 --------------------------------! I in Address Group 1 Byte 2 ----------------------------------! ID #lA - TIMEOUT ADDRESS 3 3 2 2 1 0 9 8 2 2 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1 1 1 1 9 8 7 6 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 PA <29:02> ----------------------->! 1 1 1 1 9 8 7 6 1 1 1 1 5 4 3 2 I<------------------------ ID #20 - MICRO STACK 3 3 2 2 1 0 9 8 22 2 2 7 6 5 4 2 2 2 2 3 2 1 0 1-106 1 1 0 0 0 0 0 0 0 0 0 0 1 0 9 8 7 6 5 4 3 2 1 0 I<-- Micro PC bits <12:0> -->I Example of a Double Error Halt and a hardware dump ?CPU D8LE-ERR HLT HALTED AT 8007E2A8 >>>E/L/H/ID/N:3F 0 ID 00000000 ID 00000001 ID 00000002 ID 00000003 ID 00000004 ID 00000005 ID 00000006 ID 00000007 ID 00000008 ID 00000009 ID OOOOOOOA ID 00000008 ID oooooooc ID OOOOOOOD ID OOOOOOOE 041FOOOO ID 00000010 ID 00000011 ID 00000012 ID 00000013 ID 0.0000tH4 ID 00000015 ID 00000016 ID 00000017 ID 00000018 ID 00000019 ID OOOOOOlA ID 00000018 ID OOOOOOlC ID OOOOOOlD ID OOOOOOlE ID OOOOOOlF ID 00000020 ID 00000021 ID 00000022 ID 00000023 ID 00000024 ID 00000025 ID 00000026 ID 00000027 ID 00000028 ID 00000029 ID 0000002A ID 00000028 ID 0000002C ID 0000002D ID 0000002E ID 0000002F (1st Error) CP RDS Fault -> 8F590908 Summary Code 5CFA8525 00000000 013A0260 00000040 00000000 00000040 00000000 00000000 00000000 CP RDS bit set -> 000080Cl FFFFEA96 00000184 03630054 OOlAOOOO ID 00000030 00000005 ID 00000031 00000002 ID 00000032 00001116 ID 00000033 00000040 ID 00000034 7FFD7130 ID 00000035 00007C81 ID 00000036 00000000 ID 00000037 00001FA3 ID 00000038 00004000 ID 00000039 0000A002 ID 0000003A 00021074 ID 00000038 0007CEOO ID 0000003C 00000000 ID 0000003D 003FFDE9 ID 0000003E 00000800 ID 0000003F 00080000 >>> E/L/P/N:2 20002000 p 20002000 00002El0 p 20002004 F0001400 p 20002008 38080200 00007C41 00000000 00007C41 00000000 00000000 " >>> 00000000 I Array #11. 00000000 had an error 00000000 00000000 OOOOA082 <-- CP RDS bit set (2nd Error) 0001F8AA 02040000 00000000 0021COOO 00004000 1st and 2nd error indicate that FFFFOOOO "Read Data Substitute" data was OOOOOFCF received, by the CPU, on a CP 00000000 request. The registers within 00000000 the memory at TR#1 indicate 00000030 that Array #11. was the array 80007000 at fault. 7FODFOOO 0007EOOO 33333333 7FFEAD1C 7FFE8D04 7FFED4FC OOOOC6CO 800C3COO 00000880 00000000 00000880 1-107 INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts INTERRUPT STACK NOT VALID Halts $ ? INT-STK INVLD HALTED AT 8007E2A8 >>> 1-109 "INTERRUPT STACK NOT VALID halts" are exceptions that indicate that the interrupt stack was not valid or that a memory error occurred while the processor was pushing information onto the stack during the initiation of an exception or interrupt. In other words, an "Interrupt Stack Not Valid" means that, while pushing information onto the STACK a reference was made to a Virtual Address not currently mapped to Physical Memory or that a Fatal Error occurred while referencing the STACK. No further interrupt requests are acknowledged on this processor. This problem is detected by VAX CPU microcode, which tells the "LSI Front-end Subsystem", which will halt the VAX CPU and print out the "?INT-STK INV" message. For this reason, the VAX software will not have been able to take a Software Dump as the system crashes. In order to get a Software dump, the "AUTO RESTART" switch must be "on", or, the "RESTAR.CMD" indirect command file can be used to restart the operating system. The RESTAR.CMD file will attempt to reboot the system but will fail, therefore allowing a software dump to be taken. In either case, the "RESTAR.CMD" command file should have been previously modified to cause a dump (such as done by the "DUMP." indirect command file) to be taken prior to rebooting. This type of problem can be caused by any number of things but listed below are the most common reasons: a. Memory Errors 1. 2. 3. Double Bit Errors (Uncorrectable errors) Hardware problems causing NXM (Non-existent Memory) errors. SBI interface in VAX-11/780 CPU or Memory has problems. b. Some device interrupting excessively. c. Memory Management or System Disk problems. d. The contents of "SP" and "Internal Register #4" should be equal. If they are not, the problem is probably the M8229 or M8225. The following information should be used to trouble-shoot the "Interrupt Stack Not Valid" problem: a. A "Hardware Register Bump" should be used to see if any hardware errors have occured. b. The contents of the Stack should be dumped for further examination. This should be available from the "Hardware Register Dump", if it is set up as the "DUMP." example in this manual. Look for repeated Machine Check Logouts or Exceptions on the Stack. This could indicate the hidden reason for the "INT STK INV". 1-110 c. If the VMS Operation System is operative, an Error Log report should be taken at least of the time immediately prior to and at the time of the failure. Does it show any errors logged? d. A Software Dump should have been taken. This dump can be analyzed by either RDC, Remote Support, D.E.C. Software Support, your District Support Group, or yourself. It may be necessary to examine several dumps in order to see what is commonly happening or what device is commonly being accessed. This type of problem can be caused by Non-D.E.C. Supported Device drivers. Find out from the Customer if any new drivers have been installed recently or if some new foreign equipment has recently been added to the system. If one or more of these have recently been added to the system, see if the problem occurs when these devices are no longer used. If the Problem is of intermittent nature, it is may be faster to trouble-shoot this type of problem from a software approach. The Software Dumps may not point a finger directly at a unit or subsystem, but will at least let you know what was happening at the time of the crash. This information along with any Hardware registe~ dumps that are available, may point you to a unit or subsystem. The following should be done in order to enable gathering of the information that is needed to trouble-shoot intermittent type INTERRUPT STACK not VALID's: 1. Make sure that the SYSGEN Parameter "DUMPBUG" is set (=l)! This will cause a Software Dump to be taken, (on the way back up for "?INT-STK INV's"). 2. Have the Customer take a Hardware Register Dump when the System Crashes. After the Hardware Dump is taken, the Customer can then reboot the Operating System. This step will be automatically taken care of if the "RESTAR.CMD" file has been modified to include the "DUMP." commands. 3. Have the Customer save the Software Dump when the System is rebooted after a crash. This can either be saved on MAGTAPE or the "SYS$SYSTEM:SYSDUMP.DMP" can be "Copied" to another file. 4. An ERROR LOG report should be taken for the time just prior to and at the time of the crash. 5. Have the Customer save the Hardware Dump Output, the Software Dump, the Console Terminal Output at the time of the crash, and the ERROR LOG report for you to examine. 1-111 KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts KERNEL STACK NOT VALID Aborts 1-113 "KERNEL STACK NOT VALID ABORTS" are exceptions that indicate that the Kernel Stack was not valid while the processor was pushing information onto the stack during the initiation of an exception or interrupt. Usually this is a indication of stack overflow or another executive software error. The attempted exception is transformed into an abort that uses the interrupt stack. No information other than the PSL and PC is pushed onto the Interrupt Stack. Software may abort the process without aborting the Operating System; however, because of the lost information, the process cannot be continued. If the Kernel Stack is not valid during the execution of an instruction, the processor initiates a normal Memory Management fault, and if the exception vector <1:0> for Kernel Stack not Valid is 0 or 3, the behavior of the processor is undefined. If the problem is of an intermittent nature, certain things should be done in order to enable gathering of the information needed to aid problem diagnosis. If the problem is solid, you should be able to gather most of the following information without the aid of the customer. In either case, the following steps should be taken: NOTE: 1. Make sure that the SYSGEN Parameter "BUGREBOOT" is cleared (=0). This will cause the Operating System to halt after a FATAL Bugcheck. 2. Make sure that the SYSGEN Parameter "DUMPBUG" is set (=l). This will cause a Software Dump to be taken as the Operating System is coming down. 3. Have the Customer take a Hardware Register Dump when the System Crashes. After the Hardware Dump is taken, the Customer can then reboot the Operating System. 4. Have the Customer save the Software Dump when the System is rebooted after a crash. This can either be saved on MAGTAPE or "SYS$SYSTEM:SYSDUMP.DMP" can be "Copied" to another file. 5. An ERROR LOG report should be taken for the time just prior to and at the time of the crash. 6. Have the Customer save the Hardware Dump Output, the Software Dump, the Console Terminal Output at the time of the crash, and the ERROR LOG report for you to examine. Steps #1 and #3 may be eliminated if the "DEFBOO.CMD" command file has been modified so that it will dump all the Hardware Registers. The "REMOTE LOCAL CONSOLE" floppy should be used in case you should deceide to use the "Remote Diagnostic Center" as a tool for problem diagnosis. The "DEFBOO.CMD" and "RESTAR.CMD" command files should be modified, on this floppy, so as to take a hardware register dump upon reboot. The "DUMP." and "HANG." files should also be installed on this floppy. 1-114 OTHER TYPES OTHER TYPES of CRASHES OTHER TYPES OTHER TYPES of CRASHES OTHER TYPES OTHER TYPES of CRASHES OTHER TYPES OTHER TYPES of CRASHES OTHER TYPES OTHER TYPES of CRASHES of of of of of 1-115 CRASHES CRASHES CRASHES CRASHES CRASHES There are many other types of Crashes that can occur. The basic trouble-shooting meth_od for them should be as follows: a. Obtain an Error log report of the Systems Events that happened prior to and at the time of the crash. This report will many times show the error. b. Examine the Console Terminal printout at the time of the crash. c. Examine the Hardware Register Dump, if taken. If it wasn't taken, try to recreate the problem and make sure the Hardware Register Dump is taken. d. If a Software Dump was taken, examine it to determine what was happening at the time of the failure. If you do not know how to analyze a Software Dump, get either D.E.C. Software or Remote Support to analyze it for you. e. After making a preliminary analysis of the problem from the above information, run all diagnostics on the device, and associated controllers, that you feel may be at fault. If none of these fail, run diagnostics on everything that may be remotely related to the problem. It doesn't hurt to spend the time to run all diagnostics for that particular system configuration. f. Using both a SCOPE and a DVM, check the VOLTAGES and the POWER MONITORING signals (ACLO & DCLO, etc.) for both the correct level and for the amount of NOISE riding on the voltage levels. Correct any that are out of specification. Power and Power Monitoring Signal problems cause many strange problems that can lead you around in circles for quite awhile. Never overlook these. Always check them no matter what type of problem you have. g. Margining, heating, cooling, and vibrating may be used to recreate and isolate some problems. 1-116 h. Many times problems are intermittent and diagnosis is not possible on the first crash. If this is the case, try to obtain as many of the following things as are possible and take them to your District Support Group so that they may aid you in diagnosing the problem: 1. Console Terminal output just prior to and at the time of the crash. 2. Hardware Register Dump printout. 3. Error Log report. If you are using "SYE", get a "STANDARD" printout. If you are using "SPEAR", get the "FULL" "RETREIVE" printout and also the "ANALYZE" output. 4. Get an "SDA" output from the examination of the Software Dump that contains at least the following: a. b. c. d. e. f. g. i. SHOW CRASH SHOW PROCESS/ALL SHOW STACK/ALL SHOW DEVICE SHOW PFN DATA/ALL SHOW SUMMARY EXAMINE/PO 5. Get a copy of the Software Dump on Magtape at 1600 B.P.I. if possible. 6. If a copying machine is available, copy your LOG Book entry that tells the problem symptoms that you gathered. If the problem is not a solid problem and if the SYSGEN parameters are set up so that the Operating System reboots, ask the customer to change them so that the system does not reboot automatically and educate the customer on the procedure for taking a hardware registe dump. The "REMOTE LOCAL CONSOLE" floppy should be used in case you should deceide to use the "Remote Diagnostic Center" as a tool for problem diagnosis. The "DEFBOO.CMD" and "RESTAR.CMD" command files should be modified, on this floppy, to take a hardware register dump upon reboot. The "DUMP." and "HANG." command files should also be installed on this floppy. 1-117 VMS OPERATING VMS OPERATING VMS OPERATING VMS OPERATING VMS OPERATING VMS OPERATING VMS OPERATING VMS OPERATING VMS OPERATING VMS OPERATING SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM SYSTEM 1-119 Hangs Hangs Hangs Hangs Hangs Hangs Hangs Hangs Hangs Hangs Hangs are perhaps the hardest problems to diagnose. A HANG due to: can occur 1. Software is stuck in a loop waiting for a certain event event, or interrupt, to happen. 2. Hardware has failed in such a way that an asynchrounous event didn't occur so that normal execution can proceed. Diagnostic Hangs can also be trouble-shot in much the same way as for an Operating System Hangs, except that Software Dumps cannot be taken when running diagnostics in stand-alone mode. Proceed to trouble-shoot a Hang as follows: 1. If you are trouble-shooting an Operating System Hang, determine if the whole system is hung. Record your findings in the Log. a. Does the Console Terminal respond? b. Does any other terminal respond? c. Are any of the Peripherals doing anything? 1. 2. 3. 4. 2. Are the disks seeking occassionally? Are the tapes moving? Is the printer printing? Etc. Take a Hardware Register Dump by typing a ""P" on the Console terminal and then examining the registers by using the "HANG." command file. Console Terminal commands to do this would be: "P >>> @HANG If typing a ""P" does not put you back into "CONSOL" mode, check the following: a. Is the KEY Switch on the VAX-11/780 Front panel in one of the "DISABLE" positions? If so, turn the KEY to "LOCAL". and retry the ""P". b. Check the "DC ON" LED and the "RUN" LED on the Console Subsystem LSI-11 Front Panel. If they are not lit, your problem is in the Console Subsystem or is a Power/ACLO/DCLO problem. If both LED's are lit, proceed to next check. 1-120 c. If neither of the above are the problem, then the problem is either the Console Terminal or the LSI-11/DLVll subsystem. Be sure that the console terminal is not in "LOCAL" or out of paper. If you are unable to get a response when typing "AP", trouble-shoot this problem. 3 .. After the Hardware Register Dump has been taken, the "HANG." command file will single step the VAX several times (so that it may be determined where the software is hung), and then it will crash the software as done by the "CRASH." command file. This will insure that a Software Dump is taken. If the SYSGEN parameter "BUGREBOOT" is set (=l), the system will reboot automatically. You will then have to bring the system back down in order to run diagnostics. The single stepping portion of the "HANG." output may indicate a reason for the hang. Check for one of the following: a. A PC = 80002EBO (Version 3.x of VMS) indicates that the DW780 is getting a UNIBUS vector of "000000". b. A PC = 80007B06 (a NULL job address in Version 3.x of VMS) indicates that a Software resource is exhausted. c. A PC= 80016400 (Version 3.x of VMS), with an IPL of 14-17 or 8-B, usually means the software is executing a driver. d. An IPL of "lF" indicates a SYSTEM DISK ERROR or MEMORY Power problem. e. A PC without bit 31 or 30 set usually indicates a process that is compute bound and running at a high priority. f. A Loop that goes through about 10 addresses close together, then jumps to a new range of address for about 10 instructions, then back to the first range. This condition usually indicates a terminal, DZll, DMF32, etc., type of problem. 4. Using a DVM, check all System Voltage levels and the levels of all ACLO and DCLO signals. Are any out of spec.? 5. Using a Scope, check all voltages, ACLO signals, and DCLO signals for excessive noise. Be sure to use a good Ground on your scope lead. 1-121 6. Run at least the following diagnostics: a. b. c. d. e. f. VAX-11/780 micro diagnostics (#1, #2, and #3 if applicable) EVKAA (if the "DS>" prompt appears when this program is started, deposit zero into physical location "FEOO" and restart) EVKAB,C,D,E ESCAA ESCBA Disk, Tape, and Unibus peripheral Reliability dignostics. If you get a diagnosic failure, trouble-shoot that problem. After the diagnostics all run O.K., continue on to the next step. It is important not to assume the HANG problem to be fixed at this time. You may have fixed another problem other than the one you were initially trouble-shooting. 7. If you are trouble-shooting an Operating System Hang, attempt to reboot the system at this point and, if you are successful, take an Error Log report of the time prior to and at the time of the Hang. 8. Attempt to diagnose the problem. Use whatever D.E.C. resources you need to analyze the information that you have gathered. If you have found a problem before you got to this step, you may have fixed the Hang problem. Do not assume this yet. Keep all the information that you have gathered so far with the SYSTEM LOG Book, just in case the HANG problem reoccurs. The Software Dump can be analyzed by RDC, Remote Support, Software Support, or District/Regional Support. On the Hardware Dump examination, look for such things as: 1. 2. 3. 4. 5. Attentions on Massbus Devices. Adapter Power "UP" or "DOWN" status. Interrupt enables having been cleared, which may indicate power glitches or problems with the power monitoring logic. Who was interrupting at the time the Hardware Register Dump was taken? Any error bits set? If the problem is not a solid problem and if the SYSGEN parameters are set up so that the Operating System does reboot, ask the customer to change them so that the system does not reboot automatically and educate the customer on the procedure for taking a hardware register dump. 1-122 OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM Functional Problems Functional Problems Functional Problems Functional Problems functional Problems Functional Problems Functional Problems Functional Problems Functional Problems Functional Problems 1-123 "Operating System Functional problemsn are those problems that do not crash the Operating System but either do not complete properly or do the wrong thing even though they appear to be working properly. In order to diagnose the problem, you will first need to know a few things about the problem. Such as: 1. Is the problem a result of running D.E.C. supported software or Customer software? This will indicate to you how far you need to persue the problem. We are not responsible for fixing Customer Software or even defining where in the Customer's software the problem lies. We, D.E.C., are only responsible in verifying that the D.E.C. hardware and D.E.C. Supported Software are not at fault. 2. Can the problem be recreated at will. It will.probably be necessary to recreate the problem in order to trouble-shoot it. 3. If the problem cannot be recreated at will, what is the Time Between Failures. 4. You will need to know at what time the last failure occured. If the customer doesn't know, then the problem will have to be recreated so that you will know at what time to look for errors in the error log file. These problems may or may not be caused by Hardware. In order to determine if the problem is Hardware related, check the following: 1. Take an Error log report that covers the time immediately prior to, at time of, and immediately after the "Failing Function" was attempted. Does the report show any errors or strange events? 2. If the "Failing Function" uses a particular device, run the appropriate diagnostics on that device. 3. If the "Failing Function" uses a particular device, check the Voltages and AC/DCLO signals (if appropriate) on that device. 1-124 4. Check with Remote/District/Regional Support to see if this is a known or common problem. There might be a Hardware or Software fix for this problem. D.E.C. RDC is also a good place to check to see if the problem is similiar to any known or common problems. If the problem is not found to be a hardware problem, (after doing the above checks), it may be necessary to get the help of D.E.C. Software in order to find out how to diagnose the problem. Note: If all else fails to fix your problem, the VAX-11/780 Data Paths may be at fa ult. The VAX-11/780 Data Paths, as with most processors, do not check parity within themselves as the data moves around within the data path elements. This is not done since "parity checkers" are extremely slow when compared to the speed needed within the data paths. Parity is checked on the "MD Bus" data coming into the Data Paths by the Cache logic. The Data Paths generates parity for the data that it is sending out of the "D Register". Data going into and out of the other Data Path buses, the ID Bus and the VA Bus, does not have parity checking or generation done by the Data Paths. 1-125 OPERATING SYSTEM OPERA TING SYSTEM OPERATING SYSTEM OPERA TING SYSTEM OPERATING SYSTEM OPERA TING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERATING SYSTEM OPERA TING SYSTEM BACKUP or REBUILD BACKUP or REBUILD Problems BACKUP or REBUILD BACKUP or REBUILD 1-127 Problems Problems BACKUP or REBUILD BACKUP or REBUILD Problems Problems BACKUP or REBUILD BACKUP or REBUILD Problems Problems BACKUP or REBUILD BACKUP or REBUILD Problems Problems Problems Backup or System Rebuild problems are often considered to be a seperate type of problem. There are really only a few areas that may be at fault. Check the following: a. Check to see if the problem can fit into one of the other "Types of Problems" listed at the beginning of this Trouble-shooting Outline. If it does fit under another type, use that types' outline to trouble-shoot the problem. An example would be, while attempting to do a stand-alone backup or restore, the system crashed with "?INT-STK INVLD". If this was the case, you should go to the "Interrupt Stack Not VAlid" flow which is under the "Operating System Crashes or Bugchecks" section. b. For "Stand-Alone" Backup or Restore, the following devices are used : 1. LSI-11 Subsystem 2. VAX-11/780 CPU and MEMORY 3. Disk Drive that contains media being used. 4. Magtape that contains media being written to or read from. 5. Associated SBi Nexus for Disk Drive and Tape Drive. 6. SBI Terminator These devices should be checked for correct operation by testing with the appropriate diagnostics. Don't forget to check the voltages and Power Monitoring signals (AC/DCLO) for these devices. Other System units may affect the operation of these devices even though they are not being used. It may become necessary to remove them, temporarily, from the System in order to verify that they are not at fault. c. The MEDIA may be at fault. Try other media on both the disk and magtape if at all possible to verify that the media is not at fault. l-128 If the VMS Operating System was running immediately prior to the attempted BACKUP or REBUILD, it would be a good idea to verify that it still runs O.K .. This step will tell you that most of the hardware is in good shape. If a VMS/DIAGNOSTIC Field Service Pack is available attempt to back it up, as a test to help isolate whether there is a media or hardware problem. A Restore could also be done, to a SCRATCH pack, with the tape just generated in order to get a better idea of how much hardware is in reasonably good working order. If BACKUP or REBUILD is being done in stand-alone mode, it is somewhat harder to trouble-shoot since you have lost two valuable sources of information. There isn't any "ERROR LOG" facility under stand-alone operation and there aren't any facilities that will provide Software Dumps. Therefore, the only sources of information available to you are the Console Terminal output and any Hardware register dumps that may have been taken. If a NON-D.E.C. Disk or Tape drive is being used for the BACKUP or REBUILD operation, it may be the source of the problem. We, D.E.C., do not support our Device Drivers being used on foreign equipment. 1-129 BOOTING Problems BOOTING Problems BOOTING Problems BOOTING Problems BOOTING Problems BOOTING Problems BOOTING Problems BOOTING Problems BOOTING Problems BOOTING Problems 1-131 Power-up booting outline I. On a system POWER-UP, "CONSOL.SYS" is booted as follows: A. BPOK & BDCOK, on LSI subsystem H780 Power Supply, goes high. B. KDll-F jumpers, W5 & W6, specify what to do on power up. 1. Trap to 24 2. Halt go into ODT and print "@" prompt 3. Jump to 173000 The VAX-ll/780's KDll-F is setup to "jump to 173000". c. Execute PDP-11 MACROCODE routine that starts at Q-Bus address 173000. 173000 I 000137 173002 I 140200 D. The CIB ROM starts at 140000, is 4Kwords long, and goes to 157776. This ROM's main purpose is to load in the bootblack off the RXVll media, and transfer control to it. The entry point at 140200 causes the following to be done: 1. 2. 3. 4. Run some Q-Bus Memory tests. Assign Q-Bus Terminal addresses. Run LSI CPU tests. Read Boot block from RXVll. The remaining steps happen if the LOCAL or REMOTE CONSOLE FLOPPY is in the RXVll disk drive: 5. Read Directory on RXVll media. 6. Load CONSOL.SYS into Q-Bus memory. 7. Start CONSOL.SYS program. E. Upon initialization, CONSOL.SYS does the following: 1. 2. 3. 4. F. Does a "SHOW" command. Inits VAX CPU. Load WCS microcode. Does a "SHOW VERSIONS" command. CONSOL.SYS checks "AUTO RESTART SWITCH" to see what to do next. l. if "AUTO-RESTART SWITCH" = "off" a. use "DEFBOO.CMD", on RXOl floppy, to boot the system. This command file contains CONSOL.SYS commands that will perform the following functions: 1.) setup VAX R<0:5> to indicate following: a.) Boot NEXUS b.) Primary Bootstrap c.) Operator intervention (stop in SYSBOOT) d.) Media device type where Secondary bootstrap is stored. e.) Boot device unit number 1-132 b. 2. 2.) start the VAX macrocode program that is resident in the ISP ROM. This programs main job is to find a good 64KB of VAX memory where the primary VAX bootstrap can be loaded. The ISP ROM program will exit, upon successful completion, with the starting address of the good 64KB chunk of memory +200 in the STACK POINTER (Rl4). 3.) load VMS.EXE (primary bootstrap), from RXOl floppy, into VAX memory starting at the address specified in the SP. 4.) start VMB.EXE (a VAX macro-code program). VMB.EXE loads secondary bootstrap, per flags that are setup in VAX R<0:5>, which loads program~ 1.) [SYSMAINT]DIAGBOOT.EXE if R5<4>=1 a.) loads [SYSMAINT]ESSAA.EXE 2e) [SYSEXE]SYSBOOT.EXE if R5<4>=0 a.) loads [SYSEXE]SYS.EXE if "AUTO- REST ART SWITCH" = "on" a. b. use "RESTAR.CMD", on RXOl floppy, to reboot the system. 1.) setup VAX R<0:5> to indicate what mapping registers to use. 2.) start ISP ROM at WARM RESTART location "20003004". 3.) WARM RESTART code attempts to find RPB (restart parameter block). 4.) if RPB found, restart power interrupted routine via contents of the RPB. If unable to reboot via Warm restart, VAX ISP ROM program (VAX Macrocode) sends code to CONSOL.SYS indicating a WARM RESTART FAILURE. 1.) CONSOL.SYS then attempts a reboot by using the DEFBOO.CMD file. 1-133 Booting Problems occur in many different types of ways but the method of trouble-shooting is fairly simple. Proceed as follows: 1. Determine WHERE in the VMS Boot outline that the System is experiencing problems. How far the Boot Procedure got will tell you how much hardware you have to diagnose. If it is failing before the VMB.EXE program is started, the following hardware may be at fault: a. b. c. d. e. Any part of the LSI-11 Subsystem. The LOCAL CONSOLE Floppy. VAX Memory. VAX-11/780 CPU. Power Supplies and Power Monitoring circuits. From this point on, any hardware on the System could cause failures. However, the most likely problem areas will be listed here. Just beware that any hardware could be at fault from this point on. If it is failing after the VMB.EXE program is started, but before the VMS identification message is typed on the Console Terminal, the following hardware is most likely to be at fault: a. b. c. d. VAX-11/780 CPU. VAX Memory. VAX Power Supplies and Power Monitoring circuits. System Disk and SBI controller. If it is failing after the VMS identification message, then the most likely hardware to be at fault is: a. b. c. d. e. VAX-11/780 CPU. VAX Memory. Power Supplies and Power Monitoring circuits. System Disk and SBI controller. DW780 Unibus Devices 1-134 2. Check to see if the problem can fit into one of the other "Types of Problems" listed at the beginning of this Trouble-shooting Outline. If it does fit under another type, use that types' outline to trouble-shoot the problem. An example would be, while attempting to boot the Operating System, it crashes with "?INT-STK INVLD". If this was the case, you should go to the "Interrupt Stack Not VAlid" flow which is under the "Operating System Crashes or Bugchecks" section. 3. Hardware Register Dumps can be taken to see if there are any hardware errors set at failure time. 4. The problem could also be a software problem. Try another SYSTEM Pack if available. Here is where a Field Service VMS/DIAGNOSTIC Pack would be very useful. 1-135 Overview of LSI-11 Subsystem Bootstrapping 1. With the power-on sequence, the Console ROM bootstrap program is started (this requires the operator action of applying power). The Console ROM is located on the CIB (M8236) board and is initiated by the LSI CPU executing macro instructions starting at ROM location 173000. The LSI CPU board contains jumpers that enable it to jump to 173000 on power up. 2. A series of LSI-11 tests are executed by the CIB ROM macro instructions. These are PDP-11 macro instructions that are executed by the LSI-11 processor. 3. The Console program, CONSOL.SYS, is then loaded from the Floppy disk drive (the LOCAL CONSOLE or REMOTE CONSOLE floppy must be installed in the Floppy Disk Drive) into LSI-11 memory. This is accomplished by execution of macro instrucions in the CIB ROM. 4. The Console program, CONSOL.SYS, is then started. The initiation of the CONSOL.SYS program prints the same information that you would get with a Console "SHOW" command followed by a line indicating that an INIT VAX-11/780 CPU has finished, and that is followed by a statement specif ing where the VAX CPU is halted The following is an example of the type of printout that should occur on the LSI-11 Console Terminal: CPU HALTED,SOMM CLEAR,STEP=NONE,CLOCK=NORM RAD=HEX,ADD=PHYS,DAT=LONG,FILL=OO,REL=OOOOOOOO INIT SEQ DONE HALTED AT 00000000 5. The Console program, CONSOL.SYS, then loads the WCSxxx.PAT file from the Console Floppy into the WCS portion of the VAX-11/780 CPU, (xxx =current version of WCS code on Floppy). The following is an example of the type of printout that should now be printed on the LSI Console Terminal: (RELOADING WCS) LOAD DONE, 0800 MICROWORDS LOADED VER: PCS=Ol WCS=OE-10 FPLA=OE CON=V07-00-L 6. If the AUTO RESTART switch is ON, the CPU bootstrap is now initiated. 7. If the AUTO RESTART switch is OFF, the console is held in the Console I/0 mode of operation awaiting operator input. The LSI Console Terminal will print the CONSOL.SYS prompt and remain in input mode. Prompt is as follows: >>> 1-136 Overview of VAX CPU bootstrapping 1. With the power-on sequence, the VAX CPU goes to the initialization routines of the VAX CPU microcode. 2. The CPU then waits for the start of Q console boot sequence. The console boot can be initiated by one of the following ways: a. Console BOOT command entered to the CONSOL.SYS program by the operator. The CONSOL.SYS program executes the appropriate command file from the CONSOLE Floppy. b. VAX BOOT switch is pressed by the operator. The CONSOL.SYS program executes the DEFBOO.CMD command file from the CONSOLE Floppy. c. An Auto-restart sequence is initiated, by the AUTO RESTART switch being ON, and a Warm Restart is attempted. The CONSOL.SYS program executes the RESTAR.CMD command file from the CONSOLE Floppy. If a warm restart fails,go to step 3. If a warm restart succeeds, go to step 5. 3. When any one of the preceding conditions occur, the console (CONSOL.SYS) loads a bootstrap into the VAX CPU's memory from the CONSOLE FLOPPY. The bootstrap is VMB.EXE. 4. The Console program, CONSOL.SYS, starts the VAX CPU in the VMB.EXE (that was just loaded). VMB.EXE loads and starts the secondary bootstrap (SYSBOOT.EXE or DIAGBOOT.EXE). 5. The Console Program, CONSOL.SYS, enters its PROGRAM I/0 mode of operation. 6. Any output to the Console Terminal now comes from the running VAX-11/780 macro program via the CONSOL.SYS program. The CONSOL.SYS program passes data to the terminal from the VAX CPU. 7. Any input is passed from the Console terminal to the running VAX macro program via the CONSOL.SYS program. EXCEPT, if a "CTRL""P" ("'P) is typed on the Console terminal, the CONSOL.SYS program will then go back to "CONSOLE I/0" mode and you will then be talking to CONSOL.SYS directly again. 1-137 FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM FRONT-END SUBSYSTEM 1-139 Problems Problems Problems Problems Problems Problems Problems Problems Problems Problems The Front-end Subsystem (LSI-11 and Associated Peripherals) can have many types of problems, also. The subsystem is a very simple and easy to fix system. There are a few things that should be kept in mind while trouble-shooting subsystem problems. 1. Be sure to check that the jumpers of the modules that you are placing into the system matches those on the module that you have taken out. 2. Be sure to mark all original modules so that you will not get then mixed up later on. 3. Remember that the CIB (M8236) module is part of the CONSOLE SUBSYSTEM. 4. Remember that AC/DCLO signals from the VAX-11/780 are turned into FAIL/DEAD on the Q-Bus. 5. Don't forget about checking Voltages and Power Monitoring Signals. 6. Have you run all the LSI-11 Subsystem Diagnostics? LSI Subsystem TRAPS Whenever the LSI processor hardware detects errors, it will execute a trap sequence. This trap sequence does the following steps: 1. Pushes the "PSW" onto the STACK. 2. Pushes the "PC", at the time of the error, onto the STACK. 3. Places the contents of the "TRAP VECTOR" into the "PC". 4. Places the contents of the "TRAP VECTOR+2" into the "PSW". 5. Resumes executing macro instructions from the "NEW" PC. 1-140 Trap Vector Assignments 000000 Reserved. (an Error Trap) Also indicates a Trap within a Trap. Got here due to an error occuring while servicing another error, or by some instruction modifying the PC to 000000. If the TRAP-CATCHER is installed, the LSI will halt with the PC pointing to 000004 if this error occurs. 000004 CPU Errors. (an Error Trap) Non-existent Memory Errors Sack Timeouts Odd Addressing Errors If the TRAP-CATCHER is installed, the LSI will halt with the PC pointing to 000010 if this error occurs. 000010 Illegal and Reserved Instruction. (an Error Trap) An attempt was made to execute an illegal or reserved instruction opcode. If the TRAP-CATCHER is installed, the LSI will halt with the PC pointing to 000014 if this error occurs. 000014 BPT (Breakpoint Trap} executed. Got here due to the BPT instruction executed. 000020 JOT (Input/Output Trap) executed. Got here due to the IOT instruction executed. 000024 Power-Fail detected. (an Error Trap) Got here due to detection of a Power Failure. If the TRAP-CATCHER is installed, the LSI will halt with the PC pointing to 000030 if this error occurs. 000030 EMT (Emulator Trap} executed. Got here due to the EMT instruction being executed. 000034 TRAP instruction executed. Got here due to the TRAP instruction being executed. Traps are usually easy to trouble-shoot as long as the proper information is gathered at the time of the failure. A software dump of certain locations is very helpful in isola~ing the source of the error in all of Error traps listed above except for a Power Fail trap. In order to gather this software information, you must first install an LSI/PDP-11 TRAP CATCHER in memory and then wait for the next error to occur. 1-141 LSl/PDP-11 TRAP CATCHER The later versions of CONSOL.SYS have software routines for the different LSI traps that can occur, i.e. "Trap-4". These routines, unfortunately, do not dump any of the information that you need to trouble-shoot them. In order to get a Software Dump of these traps, you must deposit a TRAP CATCHER into LSI memory prior to getting the error. To do this, use LSI ODT commands to deposit the TRAP CATCHER. $ "'P <--- Type "CTRL/P" to VMS prompt. >>> <--- Place LSI "HALT/ENABLE" switch to "HALT". yyyyyy <--- LSI PC at time halted. Remember for later. @01 xxxxxx 2<line feed> 000002/ xxxxxx O<line feed> 000004/ xxxxxx 6<line feed> 000006/ xxxxxx O<line feed> 000010/ xxxxxx 12<line feed> 000012/ xxxxxx O<return> <-- Place "HALT/ENABLE" to "ENABLE" @yyyyyyP <--- restarts CONSOL.SYS where left off. >>> SET TERMINAL PROGRAM<return><return> $ <--- Now back to VMS. Wait for error. POWER FAIL Traps The trap is caused by one of the following: 1. A true drop in power below the specifications of the power supplies that have their Power Monitoring signals connected to the LSI's "BPOK" and "BDCOK" circuits. 2. A false detection of a Drop in power by one of the "BPOK" and/or "BDCOK" circuits, or interconnected Power monitoring signals. 3. Noisy Power supply and/or Power Monitoring signals. a. AC/DCLO on H7420 type supplies should be at least a +3.5 volt level to insure proper noise immunity. b. H7100 AC/DCLO signals should be at least a -9.5 volt level to insure proper noise immunity. 4. LSI Subsystem failure causing the LSI Processor to enter the trap vector. Possible Problem areas are: 1. 2. 3. 4. The H780 LSI Power Supply. The H780 LSI Power· Supply Power Monitoring Circuits. The VAX-11/780 CPU/Nexus H7100 Power Supplies. The VAX-11/780 CPU/Nexus H7100 Power Monitoring Circuits. The Power Monitoring signals in the following supplies are or-ed together and then feed the LSI CPU's Power Fail Circuits: 1. 2. H780 .LSI Power Supply VAX-11/780 H7100 Power Supply #1, #2, and #3 1-142 Gathering LSI Software DUMP (should be halted in a TRAP CATCHER) If the LSI-11 is trapping, the following ODT commands can be used to gather information to determine what instruction or address is failing, (assuming that you have installed the TRAP CATCHER and the LSI halts). Type those things within double quotation marks. Things within a single quotation mark signifies what keyboard key to type. Take the following dump first thing after LSI-11 goes to ODT mode(@). Upper Case characters must be used when talking to ODT. Type "M" Type 'RETURN' 3. Type "RS/" 4. Type 'RETURN' 5. Type "RO/" 6. Type 'LINEFEED' 6 times 7. Type "@" 8. Type "@" 9. Type ""'" 15 times 10. Type 'RETURN' 11. Type "R6/" 12. Type "@" 13. Type "@" 14. Type ""'" 15. Type. " " 16. Type "@" 17. Type 'RETURN' Get LSI Maintenance Register. 1. 2. Get the Processor Status Word. Get Contents of RO. Get Contents of Rl thru R6. Get Failure PC off Stack. Get contents of Failure location. Get Instruction Stream. Prepare to get information in case the mode used in the failing instruction was either PC mode 6 or PC mode 7 addressing. Get PC mode 6 or 7 information. Get PC mode 7 operand. A dump of the LSI is now complete. Proceed to next step if you want to RESTART the LSI subsystem or REBOOT the Operating System. 18. If you want to attempt to reboot the Operating System do one of the following: a. If you want to do a complete Operating System reboot, type the following if at the ODT prompt (@): "173000G" b. If you only want to reboot the LSI subsystem without rebooting the Operating System, type the following: To "@" (ODT) prompt type 141330P To ">>>" (CONSOL.SYS) prompt type - SET TERMINAL PROGRAM The Dump just taken can be analyzed in order to determine what address or instruction caused the trap. 1-143 ANALYZING LSI Software Dumps taken after Halting in a Trap Ca~cher. LSI-11 Software Dumps for crashes that have been halted in a Trap Catcher are fairly easy to analyze if you have at least a general understanding of the PDP-11 Instruction set, the PDP-11 Addressing modes, and how a PDP-11 trap occurs. The following steps assume that you have at least this level of knowledge. 1. The LSI CPU will do the following steps whenever it detects a TRAP condition: a. Pushes the PSW onto the stack. The stack is AUTO-DECREMENTED prior to pushing this data onto it. b. Pushes the PC onto the stack. Again, the stack is AUTO-DECREMENTED prior to pushing this data onto it. c. A new PC is fetched from the TRAP VECTOR location in physical memory. The actual location will be one of the following: LSI Memory Location 000000 LSI Memory Location 000004 LSI Memory Location 000010 LSI Memory Location 000024 d. A new PSW is fetched from the TRAP VECTOR+2 location in physical memory. The actual location will be one of the following: LSI Memory Location 000002 LSI Memory Location 000006 LSI Memory Location 000012 LSI Memory Location 000026 e. if DOUBLE BUS ERROR Trap. if BUS ERROR Trap. if ILLEGAL/RESERVED INSTRUCTION Trap. if POWER FAIL/RECOVER Trap. if DOUBLE BUS ERROR Trap. if BUS ERROR Trap. if ILLEGAL/RESERVED INSTRUCTION Trap. if POWER FAIL/RECOVER Trap. The LSI will then continue MACRO-CODE execution starting at the new PC. If a TRAP-CATCHER has been deposited, like the one specified in this section, the LSI CPU will execute a HALT (code = 000000) instruction. 2. At this point in time, the LSI DUMP procedure should be executed. This wf 11 gather the needed information to allow you to analyze what was happening, or who was being accessed, at the time of the TRAP. In most cases, this analysis will point directly to the fa i 1 i ng unit. 3. To analyze the dump, proceed as fol.lows: a. Find out the contents of LSI "General Register #6" (R6, %6, or SP). This data is the address of the current bottom of the STACK. The STACK builds from high address towards lower address, therefore the contents of R6 will be pointing to the last entry pushed onto the STACK. This entry will be the saved PC of where the LSI instruction set processor was running at the time of the trap. b. Using the ncontents of R6" as an "address", examine this memory location. The data from this last examine is the PC at the time of the TRAP. 1-144 4. c. Subtract 2 from this PC to find the address of the last memory reference prior to the TRAP, or at the time of the TRAP. The "PC-2" contains INSTRUCTION, or OPERAND-SPECIFIER-DATA, that was being used at the time of the Trap. d. Now is when you need the general knowledge about the PDP-11 instruction set, how it works, and how the addressing modes work. With this knowledge you should be able to look back through the location prior to the "PC-2" location and determine what was happening prior to the trap. You must use your knowledge of the PDP-11 instruction set to find out where the instructions actually start. If you cannot make sense of the dump, either Remote Support or your local Support groups should be able to analyze the dump. LSI-Traps Software Dump Analysis Flow R6 I xxxxxx --> Points to bottom of Stack --1 I I I-> xxxxxx I SavedPC ->I xxxxxx+2/ SavedPSW I I SavedPC-12/ instruction stream data I SavedPC-10/ instruction stream data I SavedPC-6 I instruction stream data I SavedPC-4 I instruction stream data I SavedPC-2 I instruction stream data <-- Last reference I SavedPC I instruction stream data <----------------------------<--! 1-145 Q-Bus Address Register Name Vector RXVll 177170 177172 RXCS RXDB 264 DLVll 177560 177562 177564 177566 RCSR RBUF XCSR XBUF 60 - Reciever 175610 175612 175614 175616 RCSR RBUF XCSR XBUF Device DLVll-E 173000 173002 173004 173006 173010 173012 173014 173016 173020 173022 173024 173026 173030 173032 173034 173036 Note: CIB 15 I Halt Req 14 13 12 I CPU Reset 310 - Receiver 314 - Transmitter ROM 0 300 - RX Done ROM 1 304 - TX Ready spare ID Data LO ID Data HI spare RX DONE TX READY TO ID Lo TO ID Hi FM ID Lo FM ID Hi ID C/S MCR MCS V-BUS The above addresses are dependent on the CIB Wl jumper being INSTALLED. If Wl is OUT the addresses would be 1630xx instead. 140000 to 157777 MCR - Q-Bus address 64 - Transmitter CIB Bootstrap ROM = 173032 11 10 09 08 07 06 I I I I 05 04 03 Maint Ret Enab ---1 I UPC <12> ------------1 STAR Interrupt Disable --1 I ROM NOP --------------------1 I Stop On MICRO MATCH -----------1 I Clock Stopped ---------------------! 1-146 I I I I I I I I I 02 01 00 I I I I I I I 1-- Proceed I I I I I 1--- Single Step BUS I I I 1--- Single Step STATE I 1-- Freq <O> \ 1--- Freq <l> MCS - Q-Bus address 173034 15 14 13 12 11 10 09 08 07 06 Floppy on - I I BOOT (Switch) -I I Console Corrunand -----1 I RUN ---------------------1 I HALT STATE -~---------------1 V-BUS 05 04 03 02 01 00 I I I I I 1------- AUTO RESTART (Switch) 05 04 03 02 01 00 I 1---- DONE Interrupt Enable 1------ READY Interrupt Enable Q-Bus address 173036 15 14 13 12 11 10 09 08 07 06 I<- Serial Channel <7:0> ->I " I I CPT 0 ------1 I CPT 1 ---------1 I CPT 2 -------------1 ID C/S 15 1---- LOCK (Key) I----- REMOTE (Key) I 0 " I 1--- V-Bus CLOCK 1---- V-Bus LOAD 1---- V-Bus SELFTEST I I I 1-- CPT 3 Q-Bus address 173030 14 13 12 11 10 09 08 07 06 I I I Rcvd ID ADDR <5:0> I Inverted, Read Only I I I-- RCV Write 1------ ID Cycle RX DONE - 02 01 00 I I I ID Address <5:0> I I 1--- ID Write I 1------ ID Maint Q-Bus address 1 73014 Contains one bit. TX READY - 05 04 03 Bit <07> = RX DONE Q-Bus address l 73016 Contains one bit. Bit <07> = TX READY ID Data Lo, TO ID Lo, FM ID Lo all contain the low order bits, bits <15:00> of a 32 bit data word. ID Data Hi, TO ID Hi, FM ID Hi all contain the high order bits, bits <31:16> of a 32 bit data word. 1-147 PDP-11 Instruction Set 000000 HALT 000001 WAIT 000002 RTI 000003 BPT 000004 IOT 000005 RESET 000006 RTT 000007 reserved to 000077 OOOlDD JMP 00020R RTS 000210 reserved to 000227 000240 NOP 000241 CLC 000242 CLV 000244 CLZ 000250 CLN 000257 CLNZVC 000260 NOP 000261 SEC 000262 SEV 000264 .SEZ 000270 SEN 000277 SECVZN 0004xXX BR OOlOxXX BNE 0014xXX BEQ 0020xXX BGE 0024xXX BLT 0030xXX BGT 0034xXX BLE 004RDD JSR 0050DD CLR OOSlDD COM 0052DD INC 0053DD DEC 005400 NEG 0055DD ADC 0056DD SBC 0057DD TST 0060DD ROR 0061DD ROL 0062DD ASR 0063DD ASL 0064NN MARK 0065SS MFPI 0066DD MTPI 0067DD SXT 007000 reserved to 007777 OlSSDD MOV 02SSDD CMP 03SSDD BIT 04SSDD BIC 05SSDD BIS 06SSDD ADD 070RSS MUL 071RSS DIV 072RSS ASH 073RSS ASHC 074RDD XOR 07500R FADD 07501R FSUB 07502R FMUL 07503R FDIV 075040 reserved to 076777 077RNN SOB lOOOxXX BPL 1004xXX BMI 1010xXX BHI 1014xXX BLOS 1020xXX SVC 1024xXX BVS 1030xXX BCC,BHIS 1034xXX BCS,BLO xXX 104000 to 104377 104400 to 104777 1050DD 1051DD 1052DD 1053DD 1054DD 1055DD 1056DD 1057DD 1060DD 1061DD 106400 to 1064 77 1065SS 106600 106700 to 107777 llSSDD 12SSDD 13SSDD 14SSDD lSSSDD 16SSDD 170000 to 177777 EMT TRAP CLRB COMB INCB DEGB NEGB ADCB SBCB TSTB RORB ROLB reserved MFPD MTPD reserved MOVB CMPB BITB BICB BISB SUB Floating Point inst. = 8-bit offset that when sign extended and added to the PC results in the new PC. 1-148 PDP-11 Processor Status Word 15 14 13 12 11 10 09 08 07 06 A 05 04 03 02 01 00 N z v c A I I T Priority ----1 I I RO-R6 mode addressing Mode 0 1 2 Name Symbolic register register def erred auto-increment Description R ( R) ------- ( R) is operand (R)+ ------- ( R) is address of operand, a 1 or 2 is added to ( R) after use. ------- ( R) is address of the address of operand. A 1 or 2 is added to ( R) after use. ------- ( R) is decremented by 1 or 2 and the resulting ( R) is the address of the operand. ------- ( R) is decremented by 1 or 2 and the resulting ( R) is the address of the address of the operand. ------- ( R) is added to "x" and the result is the address of the operand. ------- ( R) is added to "x" and the result is the address of the 3 auto-increment def erred @(R)+ 4 auto-decrement -(R) 5 auto-decrement def erred @-(R) 6 index x(R) 7 index def erred @x(R) ------- ( R) is address of operand address of the operand. PC Mode addressing Name Symbolic Description 2 immediate #n 3 absolute @#A 6 relative A 7 relative deferred @A operand, "n", follows the instruction or source operand. address of the operand, "A", follows the instruction or source operand. Instruction Address + 4 + X is the address of the operand. "A" is the address of the operand. Instr. address + 4 + X is the address of the address of the operand. The·contents of "A" is the address of the operand. Mode 1-149 UNEXPLAINED UNEXPLAINED UNEXPLAINED UNEXPLAINED UNEXPLAINED UNEXPLAINED UNEXPLAINED UNEXPLAINED UNEXPLAINED UNEXPLAINED REBOOTS & & REBOOTS POWER REBOOTS & & REBOOTS & & REBOOTS REBOOTS REBOOTS & & POWER 1-151 RESTARTS RESTARTS POWER RESTARTS RESTARTS POWER POWER RESTARTS RESTARTS POWER & REBOOTS POWER POWER & RESTARTS RESTARTS POWER REBOOTS REBOOTS POWER RESTARTS RESTARTS Symptoms of spurious Reboots and Power Restarts This type of problem can be identified by finding the following type of output on the console terminal. 1. The system is running along printing out normal operating system type information. 2. Then, without any prior error printouts, a message appears that is like or resembles (depending on the actual version of the Console Floppy} the following: $ <-- This line may contain any type of VMS output CPU HALTED,SOMM CLEAR,STEP=NONE,CLOCK=NORM RAD=HEX,ADD=PHYS,DAT=LONG,FILL=OO,REL=OOOOOOOO INIT SEQ DONE HALTED AT 00000000 (RELOADING WCS) LOAD DONE, 0800 MICROWORDS LOADED VER: PCS=Ol WCS=OE-10 FPLA=OE CON=V07-00-L (AUTO-RESTART) <-- From here on depends on the position of CPU HALTED the "Auto-Restart Switch". INIT SEQ DONE $ 3. The Operating System may or may not reboot depending on the position of the "Auto-Restart Switch" on the VAX control panel. 1-152 This type of problem is usually power related. Check the following things: 1. Are the VAX-11/780 CPU, MEMORY, and SBI NEXUS power supply voltages O.K.? Check them with a Scope (for Noise) and with a DVM (for correct level). 2. Are the LSI-11 Subsystem Voltages O.K.? Check the H780 power supply with a Scope and a DVM for correct levels and the absence of noise. 3. Check all Power Monitoring signals (AC/DCLO) on both the VAX supplies and the LSI-11 supply for both the correct level and absence of noise. Use a Scope and a DVM. The actual H7100 AC/DCLO signals that can cause this problem are H7100 Supplies #1,#2,#3, and #4. 4. Verify that the 869 Power Controller is not dropping power to the system. 5. Check the input AC power to the 869 Power Controller. Is it low? It may be necessary install a DRANETZ to monitor input power to the system. The above mentioned Supplies and Power Controller may need to be replaced one at a time in order to isolate the problem. Always put back the original whenever it is determined that it was not at fault. There are four modules that may be causing the Power Restarts. everything else checks O.K., try replacing them. They are: If 1. M8232 - Clock board. Monitors "Supplies and generates its own ACLO/DCLO signals. 2. M8236 - CIB board. Sends the VAX system ACLO/DCLO signal onto the Q-Bus BPOK/BDCOK lines so that the LSI knows that the VAX detected a power problem. 3. M8224 - IRC board. Monitors the T.O.D. Battery DCLO signal and passes it on to the Clock board. 4. KDll-F LSI CPU Board. This board receives the power fail indication and causes the reboot. 1-153 #1,#2,#3, & #4" Isolating the problem via disconnecting AC I DCLO signals Sometimes it is necessary to be able to eliminate some of the hardware by disconnecting sources of the Power Monitoring signals. Here is how this can be done: 1. The H780 Power Supply can be isolated by disconnecting the BPOK and BDCOK signals that it generates so that they never reach the LSI CPU. In order to do this, you can bend the two pins that receive BDCOK and BPOK so that they are not connected when you reinstall the H780 to LSI Backplane Gray ribbon cable. Use the following diagram to locate the BPOK and BDCOK signal pins on the LSI backplane. BE VERY CAREFUL not to bend these two backplane pins any more than is absolutely necessary. These pins are easily broken if you bend them too far. "ONLY" bend them far enough to allow the cable to be put back on "ONLY" far enough to allow the other signal pins to be connected. \ \ ----! ( ) ! <-- LSI Backplane ************* Ground \ CS3 \ \ \ SRUN BHALT \ \ \ \ \ \ + Csparel + + + \ \ + + \ \ + + \ + SRUN(A) BPOK \ + + BEVNT CL3 Csparel BDCOK 1-154 ( ) <-- Ground () <-- Ground ( ) <-- +5B volts ( ) ! <-!----! ! ( ) ! <-- +5 volts !----! I I -12 volts +12 volts 2. The H7100 Power Supplies can be eliminated by diconnecting the "BPOK & BDCOK" signals that are generated on the "CIB" board and are transimitted on the Q-Bus lines. To do this, you can bend "Pins K & M" on "P7" sightly so th~t you can reinsert the "J7" connector with the two pins disconnected. This will prevent any spurious ACLO/DCLO signals, from the H7100A Power Supplies (Supplies #1,#2,#3, or #4), from the CIB (M8236) board, or from the CLOCK (M8232) board, causing the system to be rebooted ·or restarted. The actual H7100's that are connected to the "Supply #1 thru #4" connectors are Power Supplies #1,#2, and #3. All the other H7100 Power Supplies feed logic in there associated NEXUS' that uses the SBI FAIL/DEAD lines to signal the VAX CPU of power problems. KA780 Backplane AC/DCLO Supply connector assignments: Supply #1 Supply #3 Jl7 = Jl5 Supply #2 Supply #4 Jl6 = Jl4 T.O.D. Clock's Battery DCLO: J20 - A08Fl No FP780 installed: Jl4 Jl5 Jl6 Jl7 Jl4 - Jl6 - SFT - PS #2 - PS #3 - (Jl4 - DW780 #1 - Jl7) - SFT - PS #2 - DW780 #1 - Jl4 - Jl6 - SFT - PS #2 and Jl6 are connected via the KA780 backplane. With FP780 installed: Jl4 Jl5 Jl6 Jl7 Jl4 - Jl6 - SFT - PS #2 - PS #3 - (Jl4 - DW780 #1) - SFT - PS #2 - PS #1 and Jl6 are connected via the KA780 backplane. BE VERY CAREFUL not to bend the two pins any more than absolutely necessary or they may break when you attempt to restraighten them after the problem has been isolated. It is better if you don't actually bend the pins at all but simply hold them out of the way while reinstalling the "P7" cable no more that a third of the way onto the other "J7" pins. 1-155 "Q-Bus BPOK/BDCOK" are generated on the CIB board as a result of any H7100 Supply generating an ACLO/DCLO signal or by the T.O.D. clock Battery backup generating a "BAT DCLO". Top right of KA780 Backplane (view from pin-side) A BPOK BDCOK KA780 backplane wiring BDCOK BPOK B29Al to J0007M B29Bl to J0007K Pin Pin 0 0 0 0 K ---> 0 M ---> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 uu B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 P7 Connector <-- vv After disconnecting "BPOK" and "BDCOK" from "J0007", as described above, the type of failure symptom that occurs next will indicate in which half the problem lies. 1. If the LSI still reloads CONSOL.SYS and the VAX WCS, then the problem is in the LSI Subsystem. 2. If an error occurs that indicates that the VAX is hung or halted, then the problem is in the VAX CPU or VAX Power Supplies. 1-156 The backplane connectors, Jl4 thru J20, are located on the pin side of the VAX-11/780 CPU backplane, at the bottom, and are as follows: Wl W2 W3 W4 W5 W6 W7 1 1 1 1 1 1 1 2 2 2 2 1 2 2 2 2 Jl4 JlS Jl6 Jl7 Jl8 TIT ITT ITT ITT TIT 121 13 I 121 13 I 121 I 31 12.1 I 31 I I I +5 volt & Ground connections here. I 121 131 141 I I I I I I I I I I I I I I I I I I I I I I I I I Jl9 TIT 121 I 31 141 J20 11 41 12 51 13 61 l~~~~~~- Bottom_p1n_s1de of KA780 Backplane B a r 1 Bl Bl Bl Bl Bl al al al al al rl rl rl rl rl I I I I I 21 31 41 51 61 Feeds slots 4-16 --------------------1 I Feeds slots 1-3,20,22,23,29 ---------------1 I Feeds slots 18,24-28 ----------------------------1 Jl5 connections *************** J14 connections *************** Wl-1 Wl-2 1 - Supply 4 ACLO 2 - Supply 4 DCLO 3 - Ground W2-l W2-2 W3-l W3-2 1 - Supply 3 ACLO 2 - Supply 3 DCLO 3 - Ground Jl7 connections *************** Jl6 connections *************** 1 - Supply 2 ACLO 2 - Supply 2 DCLO 3 - Ground W4-l W4-2 1-157 W8 1 - Supply 1 ACLO 2 - Supply 1 DCLO 3 - Ground Jl8 connections *************** W5-l W5-2 Jl9 connections *************** - -5v (to BL2 pins) 2 - -5v (to EKl pins) 3 - Ground 4 - Ground 1 W6-l W6-2 1 +5v to Front Panel 2 - CIBP FLOPPY ON H 3 - Ground 4 - Ground J20 connections *************** W7-l 1 - Time of Day Clock's "+5v" WS-1 2 3 4 5 6 - unused Ground Time of Day Clock's "Battery DCLO" unused Ground Bar 1 Bar 2 +5v from Power Supply #3 Return from Power Supply #3 Bar 3 Bar 4 +5v from Power Supply #2 (also supplies the first DW780) Return from Power Supply #2 If FP780 is not installed: Bar 5 Bar 6 +5v from Power Supply #2 Return from Power Supply #2 If FP780 is installed: Bar 5 Bar 6 +5v from Power Supply #1 Return from Power Supply #1 Voltage Pins on the KA780 Backplane +5 volts is present on all slots and rows at pins A2 and Vl. -5 volts is present on all slots at pins BL2 and EKl. 1-158 Top_right_hand portion of KA780 backplane (Pin_side view) JlO Jl2 Jll Jl3 !--! Q-Bus Signal Runlist J07C J07E J07K J07M J07S J07W J07Y J07CC J07EE J07HH J07KK J07MM J07PP J07SS JOSC JOSE JOSH J08K J08M J08P JOBS J08U JOSW JOBY J08AA JOSCC JOSEE JOSHH JOSKK JOSMM J08PP J08SS - B29Rl B29Nl B29Bl B29Al A29Rl A29Sl B29Sl B29B2 A29M2 A29L2 A29J2 A2902 B2902 A29E2 B29Pl A29K2 B29V2 B29U2 B29T2 B29S2 B29R2 B29P2 B29Ml B29M2 B29Ll B29Fl B29El B2901 B29Cl B29E2 A29V2 A29U2 - J07 BEVENT L BSACK L BPOK L BDCOK L BREF L BHALT L BINIT L BDMR L BIAKI L BIRQ L BYSNC L BOIN L BRPLY L BDOUT L BBS7 L BWTBT L BOAL 15 L BOAL 14 L BOAL 13 L BOAL 12 L BOAL 11 L BOAL 10 L BOAL 09 L BOAL OS L BOAL 07 L BOAL 06 L BOAL 05 L BOAL 04 L BOAL 03 L BOAL 02 L BOAL 01 L BOAL 00 L !--! !--! ! ! J08 ~--! J09 !--! VAX Control Panel Runlist J09B J09D J09F J09K J09L J09J - A29Al A29B2 A29Fl A29Dl A29El A29Kl - !--! ! !. SCPA BOOT SW H SCPA AUTO RESTART H SCPA LOCK H CIBN RUN H CIBN ATTN H SCPA REMOTE H 1-159 Problems on CERTAIN Problems on CERTAIN DEVICE(s) DEVICE(s) Problems on CERTAIN Problems on CERTAIN DEVICE(s) DEVICE(s) Problems on CERTAIN Problems on CERTAIN DEVICE(s) DEVICE(s) Problems on CERTAIN Problems on CERTAIN DEVICE(s) DEVICE(s) Problems on CERTAIN Problems on CERTAIN DEVICE(s) DEVICE(s) 1-161 This area is extremely variable in the types of problem symptoms that can occur. Therefore, this discussion will only point out a few of the questions that you should ask yourself while troubleshooting peripheral device problems. On such peripheral devices as Magtapes and Disks try to eliminate the media as being a possible problem as soon as possible. Media problems are most often seen on Magtapes versus Disks. It is best to use D.E.C. Certified Magtapes to isolate Magtape Problems. Not only is the media suspect on Read/Write problems but also should be suspected on AUTO-LOAD problems. The Error Log (System Event File) report is a valuable source of information for problem diagnosis. If the problem is of the type that points to one particular device, the following questions should be answered if appropriate: 1. For a failing device that is on a common controller bus with other devices, answer the following questions for yourself. a. Do all the other devices run O.K.? If they don't, then goto the next step that covers multiple failing devices on the same common controller interface bus. If this is the only device that fails on its associated interface bus, then the problem could either be in that device or could still be a controller or bus problem. In order to make sure it is not a controller or bus problem, check to see if there is anything about the failing device, as related to how it interfaces to the controller, that is different than the running devices. b. If all other devices on the controller run O.K., and you have exhausted all other ideas, the problem still could be with one of the other devices on the same bus somehow interferring with the failing device. Make sure this is not the case by removing all other devices from the bus. 1-162 2. For failing devices that are on a common controller bus with other devices, answer the following question for yourself. a. Does any other Device on the same common controller bus run O.K.? If there isn't, then the problem may be one of the following: 1. 2. 3. 4. 5. A Bus problem. A Controller problem. Another Device may be causing failures on other devices on the bus. A Bus Loading problem. A Bus Termination Problem. If there is, then you know that the Bus is in "Fairly" good shape. Do not, however, totally eliminate the bus as being a source of the problem at this time. If there is, then you also know that the Controller is in "Fairly" good shape also. Again, do not totally eliminate the Controller as being a source of the problem yet. b. If any other Device on the same common controller bus runs O.K., then answer this question. Are all the failing devices of the same "DEVICE TYPE" ? If they aren't, what are the differences as related to how the Controller treats them? For example, are the failing devices Interrupt Driven and the non-failing devices of Direct Memory Access type, or vice-versa? Look for differences that may give you a clue as to what may be causing the problem. 1-163 3. For a Failing Device or Devices that are not on a common bus but are on a Controller that is of the multi-port varity, then answer the following question. a. Do all the devices fail on the controller? If all do then the problem is probably in the controller or a Software problem. If some run O.K., then try a running device on the port that fails. If that port runs O.K. now, do not immediately blame the other device, but first evaluate the answer to the following question: Are both Devices of the same "DEVICE TYPE" and if they aren't, are there any differences in the way that the controller uses the failing and the running devices? Never totally eliminate the possibility that the problem may be caused by Software. However before you start looking into software problems, it is most often best to eliminate the "hardware" possibilities first. 1-164 Won't POWER-UP Won't POWER-UP Won't POWER-UP Won't POWER-UP Won't POWER-UP Won't POWER-UP Won't POWER-UP Won't POWER-UP Won't POWER-UP Won't POWER-UP 1-165 This type of problem does not warrant much of a discussion, but a few things to look for will be mentioned. Check the following: 1. Is the Input Power O.K.? a. All voltages present? b. All voltages within specification? 2. Are any Circuit Breakers tripped? a. If the problem is in the LSI, don't forget to check the position of the LSI Power Supply's ON/OFF switch. This switch is in the back panel of the H780 Power Supply. b. Are all the H7100 Breakers set? c. Are all the 869 Power Controller breakers set? d. Are the breakers for all BAll Boxes set? e. Are all breakers set in any expander cabinets. 3. Are any Fuses blown? a. Check with a meter and tap to make sure that the connection is solid within the fuse. 4. Are all Interlocks O.K.? a. These can be checked by scoping the circuit or by simply defeating the interlocks. 5. Are the AC Power Controllers' outputs O.K.? a. All voltages present? b. All voltages within specification? c. Does it work O.K. in the "LOCAL" position? (D.E.C. Remote Power Bus may be at fault) 6. Are there any THERMAL Switches that may be tripped? a. These can be checked by scoping the circuit or by simply defeating the switches. 7. Are there any AIR FLOW Sense switches that may be failing? a. These can be checked by scoping the circuit or by simply defeating the switches. 1-166 SOMETHING'S BURNING SOMETHING'S BURNING SOMETHING'S BURNING SOMETHING 'S BURNING SOMETHING'S BURNING SOMETHING'S BURNING SOMETHING'S BURNING SOMETHING 'S BURNING SOMETHING'S BURNING SOMETHING ·s BURNING 1-167 This one is completely up to you. There isn't much that can be said about how to isolate these problems except to use your body's senses and possibly diagnostics. Here are a couple of things to keep in mind: 1. The part that burnt may have been caused to burn due to failure of another part or possibly due to a short. Look for shorts between: a. b. c. d. e. a VOLTAGE and GROUND. two or more VOLTAGE runs. a SIGNAL and GROUND. a SIGNAL and a VOLTAGE. two or more SIGNAL runs. 2. Heat and excessive currents weaken components. Their failure may not occur immediately but may show up several weeks or months later. Be sure to mention the fact that this particular part burnt in the System log book. If later on this device starts failing intermittently, you may want to change some parts which were in the same circuit as the burnt part. 3. If a Burning Smell occurs and disappears with you unable to locate the problem, run diagnostics on the device to see if you can locate the problem that way. When looking for shorts, remember that signal runs should never be at ground (0.00 volts). There is a voltage drop, no matter how minute, across all solid state junctions. 1-168 Problems BUILDING Problems BUILDING Problems BUILDING Problems BUILDING Problems BUILDING Problems BUILDING Problems BUILDING Problems BUILDING Problems BUILDING Problems BUILDING 1-169 VMS VMS VMS VMS VMS VMS VMS VMS VMS VMS If the problem cannot be classified under any of the other problem types, then there isn't very much that can be at fault. The problem should be one of the following types. a. If the problem is in the booting of the VMS Backup utility, do the following: 1. 2. 3. b. Check out the hardware via diagnostics. Try another set of floppies for Stand-alone Backup. Check Power. If the problem is one such that the VMS pack cannot be built from the Distrubition tape, then the problem is probably one of the following: 1. 2. 3. 4. 5. 6. 7. The Distrubition Tape The Magtape Drive The Disk Media The Disk Drive Memory Processor Foreign Disk drives or Magtape drives may be at fault. The hardware can be checked out by diagnostics. c. If the problem exhibits itself in the booting of VMS from a newly built Disk Pack, check the following: 1. 2. 3. 4. Are the Startup files correct? Are the Unibus devices configured correctly? Foreign devices will probably have to be Connected via the SYSGEN utility. Foreign equipment will probably need special Device drivers installed. 1-170 H E L P H E L P H E L P H E L P NON-DUPLICATABLE, INTERMITTENT & WHAT t 0 d 0 Problems H E L P H E L P H E L P H E L P 1-171 NOW Ocassionally the Customer will come up with a problem that we cannot duplicate, is of a very intermittent nature, and you have simply just done everything you could think of to try. Here is a list of things that can be done to verify the functionality of the D.E.C. equipment for non-duplicatable problems and that may pull out the cause of intermittent problems or at least show up a means of more rapidly duplicating the problem. This list can also be used as a What's Left checklist. 1. Check voltages on the system (Complete system) with a DVM. Make appropriate adjustments and/or supply replacement. a. b. 2. Verify that the Power connections are good. Tap wires to verify good contact at connectors. Vibrate Power supply if possible. Check AC/DCLO's on the system (complete system) with a DVM. Repair any that are out of spec .. a. b. c. d. Verify that the AC/DCLO connections are good. Tap wires to verify good contact at connectors. Vibrate Power monitoring section of Supply if possible. H7420 type AC/DCLO signals should be at least at a +3.5 volt level. H7100 type AC/DCLO signals should be at least at a -9.5 volt level. 3. Check voltages on the system (Complete system) with a scope for excessive noise. Locate the source of the noise, (Power Supply, Wiring, etc.) and repair. 4. Check AC/DCLO's on the system (complete system) with a scope. Repair any that have excessive noise on them. 5. Run all diagnostics. a. b. c. d. e. f. g. i. Run LSI Front-end Subsystem diagnostics. Run VAX-11/780 Micro-diagnostics #1 and #2. Run VAX-11/780 Functional diagnostics. ( Don't forget to run EVKAA) Run appropriate VAX-11/780 Nexus diagnostics. Run appropriate Unibus Peripheral diagnosics. Run appropriate Massbus Peripheral diagnostics. Run all other appropriate peripheral diagnostics. Run UETP if VMS Operating System Pack is available. Don't use the Customer's only Pack. 1-172 6. While running the appropriate diagnostics, vibrate each device's modules, backplane, and Power Supplies. 7. Margin all devices that have any of the following types of margining facilities: a. Voltage margins. This is possible with any device that has an adjustable power supply. b. Clock margins. For example, the VAX-11/780 CPU can run at a SLOW and FAST system clock rate. The CONSOL.SYS program has a command that specifies the desired VAX-11/780 CPU clock rate. These margins should be performed while running the appropriate device diagnostics. 8. Heat testing can be done, by blocking or disconnecting the appropriate fans, if the problem is suspected to be heat related. This should not be overdone since heat will damage components. This damage may not be seen immediately but may show up as an intermittent problem later on. I would suggest using Heat testing ONLY as a last resort. 9. You can COOL specific components/boards with Freon if you suspect the problem to be of this nature. Again, do not overdo. 10. Beware that any Foreign Equipment, that may be on the system, could be at fault. If all of the above checks O.K., request that the Customer remove the Foreign Equipment in order to eliminate it as a possible cause of failure. 11. Be sure to show the Customer any diagnostic failures that are due to the Foreign Equipment. If the problem is found to be the Foreign Equipment, the Customer may be billed "Per Call" rates (a Local Management decision). 12. If the system has MS/MA780 memory on it, replace or remove all arrays that are getting Single Bit Errors. The reason for this is due to the possibility of the following occuring: The ECC logic of the MS/MA780 memory controllers cannot correctly report the conditions in which an array has a MULTIPLE ODD NUMBER of BAD BITS (ex. 3,5,7, or etc. bad bits per 72 bit array word). The memory controller will correct a bit (not necessarily one of the bad bits) and will send out the data as "Corrected Read Data"., 1-173 13. If the system has an FP780 Floating Point Accelerator on it, remove it and see if the problem still occurs. The VAX-11/780 microcode will execute all of the Floating Point instructions if the FP780 isn't present. 14. Parity is checked as it is received by the VAX-11/780 CPU Data Paths and is generated for the data going out of the Data Paths as just prior to it being transmitted. Therefore, data manipulations and transfers within the Data Paths don't have any type of parity checking done on them as they move between Data Path Registers, ALU's, SHIFTERs, etc .. If all else fails to fix your problem, the VAX-11/780 Data Paths may be at fault. l-174 VIBRATION VIBRATION VIBRATION VIBRATION VIBRATION VIBRATION VIBRATION VIBRATION VIBRATION VIBRATION 1-175 T e s t i n g Testing T e s t i n g Testing T e s t i n g Testing T e s t i n g Testing T e s t i n g Testing Vibration testing is a valid way of verifying connections and internal component damage if done properly. It is not a valid test if you vibrate so hard that you either bend or damage the components under test. In fact, vibration testing that is done to hard may cause more problems. Here are a few common sense rules that you should keep in mind when trouble-shooting via vibration testing. 1. Always run an appropriate diagnostic that will test the device that you are vibrating. You must know how to determine quickly that a failure has occured so that you will be able to determine what you vibrated at the time of the failure. 2. Always vibrate in sections. Do not make a big sweep of all the modules/components/backplane pins and expect to know what components caused the failure when vibrated. 3. Vibrate with enough force to jar the components under test, but do not use so much force that you damage components or backplanes. 4. Do not OVERDO vibration testing. To much vibrating will eventually loosen components, loosen connections, or fracture etches and wires. Vibrate enough to verify, to yourself, that the device is not vibrational and then don't vibrate any more. 5. Be very careful when vibration testing cables. as the SBI cables are easily damaged. 6. When vibrating backplane pins, use a non-conducting flat piece of material and drag it along the pins. Use common sense in applying pressure. Do not vibrate with so much pressure that you bend the pins together or with so much pressure that you cut the insulation on the wires that are against the pins. The object of backplane vibration testing is to determine if the following exists: a. b. c. d. Such cables Broken insulation on wires surrounding the pins that intermittently short against the pin. Poor pin to etch run connections. Poor pin to module connections. Free floating pieces of conducting material may be lodged within the backplane causing intermittent shorts. 1-176 OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE OPERATING TEMPERATURE 1-177 CHANGE CHANGE CHANGE CHANGE CHANGE CHANGE CHANGE CHANGE CHANGE CHANGE Testing Testing Testing Testing Testing Testing Testing Testing Testing Testing Some problems occur more rapidly or only when the circuit components are warmed up or only when they are cool. In order to increase the failure rate or aid in isolating problems, the circuits can either be either heated above normal operating temperature or cooled below normal operating temperature. This can be accomplished in several ways. It is important to realize the this type of testing may show up additional problems other than the one you are trouble-shooting. Use this type of testing on only one device at a time. Heat Testing Heat is an enemy to electronic and most mechanical components. Therefore, moderation is the key to successful, non-damaging heat testing. Whenever you heat test a device or component, be sure that you don't overheat. It is best to only heat up a circuit a few degrees warmer than it is normally operating at. This can usually be accomplished by simply disconnecting or blocking fans temporarily. Constantly monitor the rise in temperature and reconnect or unblock the fans when the temperature rises extremely. Make sure that you run the appropriate diagnostic that will exercise the device/component, under test, while heat testing. If you are able to isolate a heat problem down to a few components, a Heat Gun, or a Hair Dryer, may make it easier for you to isolate the bad component. 1-178 Testing by Cooling Extreme cold can also be an enemy to Electronic components and most Mechanical components. Moderation in cooling is also the key to successful testing by cooling. Excessive cooling can cause component damage, fractured etches and wires, etc. Cooling a circuit is not as easy to do as heating a circuit. A couple of ways that cooling can be accomplished are as follows: 1. Sometimes, simply opening a cabinet or removing of the device's skins can cool the system enough to cause failures. 2. The skins can be removed and an additional, free-standing, fan can be directed into the circuit. Beware, sometimes this actually increases the device's operating temperature since air flow is blocked or funneled in such a way that the proper air flow is not obtained. 3. If you are able to isolate the problem down to several boards/components/etc. you can then use canned Freon in order to isolate the problem further. 4. A "Carbon Dioxide Fire Extinguisher" can also be used if the unit under test is large. Make sure that you run the appropriate diagnostic that will exercise the device/component, under test, while cooling. 1-179 MARGIN T e s t i n g MARGIN T e s t i n g MARGIN T e s t i n g MARGIN Testin g MARGIN T e s t i n g MARGIN T e s t i n g MARGIN T e s t i n g MARGIN T e s t i n g MARGIN T e s t i n g MARGIN T e s t i n g 1-181 Margin testing is another means of sometimes increasing failure rate or isolating the problem area. There are two basic types of margins you can use on the VAX-11/780 system and its' devices. These are, Clock Margins and Voltage Margins. When you are doing any type of margining, be sure ~o run diagnostics that will exercise the device that you are margining. It is important to realize that whenever any type of margining is done, you may find other problems other than the one you initially started trouble-shooting. CLOCK Margins On the VAX-11/780 system, the System Clock rate can be varied above and below the normal clock rate. This is set by a command to the CONSOL.SYS program. Simply set the desired Margin Clock Rate and then run functional diagnostics on the VAX-11/780 CPU, Memory, and SBI Nexus Controllers. Other devices may contain clock margining facilities also. Clock Margin only one device at a time. VOLTAGE Margins Any device that has Power Supplies that can be adjusted is capable of being Voltage Margined. When voltage margining, do not take the voltage above or below the specified component operating levels that that voltage supplies. Again, moderation is the key. Excessive voltage margining effects the life of electronic components. The reason for this is that a change in voltage causes a change in circuit current, which causes a change in heat dissapated by the circuit. Be sure to run the appropriate diagnostics that will exercise the device being margined. When voltage margining, be sure to adjust the voltages with a DVM and then return the voltage to the appropriate level upon completion of testing. Voltage Margin only one voltage at a time. l-182 D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS D W 7 8 0 ERRORS 1-183 Parity Fault UBA CONFIG<31 > "PAR FLT" If "Parity Fault - CONFIG<31>" only in this DW780. M8270 Flakey Power for any NEXUS If "Parity Fault - CONFIG<31>" in multiple NEXUS. M8270, SBI Cables, Other NEXUS SBI Interface SBI Terminator, Flakey Power for any NEXUS. Write Sequence Fault - UBA CONFIG < 30 > M8270, Other NEXUS SBI Cables Flakey Power for this NEXUS "WSQ FLT" "URD FLT" Unexpected Read Data Fault - UBA CONFIG<29> Other NEXUS, M8270 SBI Cables Flakey Power for this NEXUS Interlock Sequence Fault UBA CONFIG<28> Software M8270, Other NEXUS SBI Cables Flakey Power for this NEXUS or CPU "!SQ FLT" UBA CONFIG<27> Multiple Transmitter Fault If "Transmitter During Fault - UBA CONFIG<26>" "MXT FLT" 0 Another NEXUS M8270, M8271, SBI cables Flakey Power for any NEXUS If "Transmitter During Fault - UBA CONFIG<26>" M8270, M8271, Another NEXUS SBI Cables Flakey Power for any NEXUS 1-184 1 UBA CONFIG < 23 > Adapter Power Down II AD PDN" H7100 Power Supply for this NEXUS M8273 Input AC power. Adapter Power Up UBA CONFIG<22> "AD PUP" Normally asserted. UBA CONFIG< 17> UNIBUS Power Down "UB PDN" Could be a legal entry ff the UNIBUS box was powered off. UNIBUS Power supply ACLO logic. Any UNIBUS device that can assert ACLO. Input AC power. M9044 UNIBUS Power Up - UBA CONFIG< 16> "UBIC" Normally asserted: Read Data Timeout UBA STATUS<lO> "RDTO" SBI Memory, M8270, M8272, M8273 M8271, M9044, UNIBUS device that is requesting SBI Memory data. Flakey Power for this NEXUS or f6r the UNIBUS de~ite. The FMER register is locked on the occurrence of this error. The FMER contains the Map Register number associated with the failure. The FMER contents determine the number of the data path that failed. Read Data Substitute UBA STATUS<9> II RDS" SBI Memory Array. SBI Memory NEXUS control. M8270, SBI Cables, Flakey SBI Memory NEXUS power. The UNIBUS device that was requesting the SBI Memory data will not receive the requested data, therefore, its' non-existent memory bit should be set. The FMER register is locked on the occurrence of this error. The FMER contains the Map Register number associated with the failure. The FMER contents determine the number of the data path that failed. Corrected Read Data UBA STATUS<8> "CRD" SBI Memory Array. SBI Memory NEXUS control. M8270, SBI Cables, Flakey SBI Memory NEXUS power. 1-185 UBA STATUS< 7> "CXTER" M8270 M8271, M8272, M8273, M9044 NEXUS to which this UBA initiates a data transfer. SBI Cables, Flakey Power for NEXUS or assoc. UNIBUS. UNIBUS device issuing data transfer command. Command Transmit Error The FMER register is locked on the occurrence of this error. The FMER contains the Map Register number associated with the failure. The FMER contents determine the number of the data path that failed. UBA STATUS<6> "CXTMO" NEXUS to which this UBA initiates a data transfer. M8270 M8271, M8272, M8273, M9044 UNIBUS device issuing data transfer command. SBI Cables, Flakey Power Command Transmit Timeout The FMER register is locked on the occurrence of this error. The FMER contains the Map Register number associated with the failure. The FMER contents determine the number of the data path that failed. UBA STA TUS < 5 > M8272 M8270, M8271, M8273 Flakey power for this NEXUS Data Path Parity Error "DPPE" The FMER register is locked on the occurrence of this error. The FMER contains the Map Register number associated with the failure. The FMER contents determine the number of the data path that failed. UBA STATUS<4> "IVMR" M8272 M8273, M9044, M8270, UNIBUS device requesting data transfer. Software Flakey power for this NEXUS. Invalid Map Register The FMER register is locked on the occurrence of this error. The FMER contains the Map Register number associated with the failure. The FMER contents determine the number of the data path that failed. UBA STATUS<3> M8272 M8270 Flakey power for this NEXUS. Map Register Parity Fail "MRPF" The FMER register is locked on the occurrence of this error. The FMER contains the Map Register number associated with the failure. The FMER contents determine the number of the data path that failed. 1-186 Lost Error Bit UBA STA TUS < 2 > "LEB" This bit indicates that-another error has occurred after the locking field has already been locked. The RDTO, RDS, CXTER, CXTMO, DPPE, IVMR, and MRPF bits form the locking field that locks the FMER. UNIBUS Select Timeout UBA STATUS< 1 > "UBSTO" Some UNIBUS device. M9044, M8273, M8271 Flakey power for this NEXUS or the associated UNIBUS devices. M8272 The FUBAR register is latched when this error occurs. It contains the upper 16 bits of the UNIBUS address translated from an SBI address. UNIBUS SSYN Timeout UBA STATUS<O> "UBSSYNTO" The UNIBUS device to which data transfer is taking place. M8273, M9044, M8271 M8272 Flakey power for this NEXUS or the associated UNIBUS devices. The FUBAR register is latched when this error occurs. It contains the upper 16 bits of the UNIBUS address translated from an SBI address. Buffer Transfer Error - UBA DPR 0-15 Bit M8272, M8271 M8273 Flakey power for this NEXUS 1-187 < 30 > "BTE" S . 13 . I . FAULTS S . B . I. FAULTS S.13.1. FAULTS S . B . I. FAULTS S . 13 . I . FAULTS S . B . I . FAULTS S.13.1. FAULTS S . B . I. FAULTS S . 13 . I . FAULTS S . B . I. FAULTS 1-189 An S.B.I. FAULT condition can be caused by any one of the following conditions having been detected on the S.B.I. Bus: Parity Fault An S.B.I. parity error can be detected on ANY cycle by ANY NEXUS. The S.B.I. P<l:O> lines provide even parity for their associated groups of S.B.I. lines. "S.B.I. P<O>" provides EVEN Parity for the group of S.B.I. lines consisting of the TAG<2:0>, ID<4:0>, and the M<3:0> lines. "S.B.I. P<l>" provides EVEN Parity for the group of S.B.I. lines consisting of the B<31:00> lines. Whenever a NEXUS detects a parity error, on any given S.B.I. cycle, ALL OTHER NEXUS should also detect the same parity error. Write Sequence Fault Is the result when a NEXUS which has received a COMMAND/ADDRESS Cycle specifying any type of WRITE COMMAND, does not receive the anticipated WRITE DATA in the next sequential S.B.I. cycle(s). This type of FAULT is only detected by the NEXUS to which the write command was sent. Unexpected Read Data Fault Is the result when a NEXUS whose is not waiting for READ DATA receives READ DATA. The destination of the READ DATA is specified by the S.B.I. ID<4:0> lines. Each device checks the ID field on all Read Data cycles to see if the B<31:00> lines contain data that is being sent to them. Only the NEXUS receiving the Unexpected Read Data detects the FAULT. Interlock Sequence Fault Is the result when a NEXUS receives an INTERLOCK WRITE COMMAND and the INTERLOCK has not been set by an INTERLOCK READ Command. Only the NEXUS recieving the INTERLOCK WRITE Command will detect this fault. 1-190 Multiple Transmitter Fault Is the result when a TRANSMITTING NEXUS detects multiple transmitters in the same cycle that it is transmitting. This is detected by comparing the ID<4:0> field sent, at S.B.Ie TO time, with the ID<4:0> field recieved, at S.B.I. T3 time. If they do not match, this fault is detected. Detected by only the NEXUS that are transmitting in the faulting cycle. TIMING FAULT I I I T3 'I Detecting NEXUS asserts FAULT Cycle that causes Fault TO Tl T2 TO Tl T3 T2 TO Tl T2 T3 TO Tl I CPU Latches FAULT I A NEXUS detects a FAULT on the S.B.I. T2 T3 I All NEXUS latch FAULT STATUS Bits Trouble-Shooting S.8.1. FAULTS: Whenever an S.B.I. FAULT occurs, each NEXUS will latch it~ FAULT STATUS bits which are contained in its CONFIGURATION/STATUS REGISTER (the 1st I/0 register for each NEXUS) Bits <31:26>. These bits indicate the type of FAULT that the respective NEXUS has detected. It is very important to gather the contents of these registers immediately after the FAULT occurs. If the FAULT occured while running VMS, the needed register information may be saved in ERRLOG.SYS. It is still a good idea to modify the DEFBOO.CMD and the RESTAR.CMD command files, located on the LOCAL/REMOTE CONSOLE Floppy, so that a complete register dump will be done prior to rebooting. If the FAULT occured while running diagnostics, you must do the register dump yourself. The register dump can be taken by using the following commands that are appropriate for the system. >>> E/L/H/P 20002000 >>> E/L/H/P 20004000 >>> E/L/H/P 20006000 >>> E/L/H/P 20008000 >>> E/L/H/P 2000AOOO >>> E/L/H/P 2000COOO >>> E/L/H/P 2000EOOO >>> E/L/H/P 20010000 >>> E/L/H/P 20012000 >>> E/L/H/P 20014000 >>> E/L/H/P 20018000 >>> E/L/H/P 2001AOOO >>> E/L/H/P 2001COOO >>> E/L/H/P 2001EOOO >>> E/L/H/ID lB I Examine TR#l Configuration Register Examine TR#2 Configuration Register Examine TR#3 Configuration Register Examine TR#4 Configuration Register Examine TR#S Configuration Register Examine TR#6 Configuration Register Examine TR#7 Configuration Register Examine TR#8 Configuration Register Examine TR#9 Configuration Register Examine TR#lO Configuration Register Examine TR#l2 Configuration Register Examine TR#l3 Configuration Register Examine TR#l4 Configuration Register Examine TR#lS Configuration Register Examine CPU's cdnf iguration Register Of course you do not need to attempt to examine the registers of the TR's in which there are no devices for your specific system configuration. 1-191 In addition each NEXUS latching up its FAULT STATUS bits in its CONFIGURATION/STATUS register, the KA780 CPU will latch the "S.B.I. SILO". The "S.B.I. SILO" is a 16 location RAM that contains the states of certain S.B.I. signals for the last 16 S.B.I. cycles. The "SILO" is located in the KA780's S.B.I. control logic. This SILO can be examined by reading "ID register #18" 16 times. The first word stored in the SILO will be the first word read out, the second word stored will be the second word read out, etc .. You can use the following CONSOL.SYS commands to gather the contents of the "S.B.I. SILO": Method #l >>> R E/L/ID 18 >>> "'C Repeat examine ID#l8. Type "CTRL C" after 16 examines. Method :r2 >>> E/L/ID 18 Repeat this command 16 times. Now that you have all the needed information, all that remains is to breakdown the registers to determine the type of S.B.I. FAULT. Start off by breaking down the CONFIGURATION/STATUS Registers, (only need bits <31:26>), to determine the type of FAULT and to find out which NEXUS(es) detected it. Once you have found the type of FAULT and who all detected it, you should be able to determine which one or two NEXUS are most likely at fault. Now you can break down the SILO information to see if it will help determine who is the most likely device at fault. When looking at the S.B.I. SILO dump, break down each entry completely, and then check to see what went wrong. You must know how the S.B.I. works in order to do this. Beware: Any NEXUS can intermittently polute the S.B.I. and can cause the problem to appear to be someone else's fault. 1-192 ID #18 SILO Interpretation 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 11019 8 7 6 514 3 211 0 9 817 61 5 4 3 2 I II I I I I After I Tl ID I TAG I MASK ICNFI or Fault I LI I I I I IFUNCTIONI IKI I I 1 1 0 0 1 0 9 8 0 0 0 0 7 6 5 4 TR 0 0 0 0 3 2 1 OI I I I I ******************************************************************************* Bit <31> is the "After Fault" bit which will be set only on the first SILO entry after the S.B.I. FAULT condition has been cleared. ******************************************************************************* Bit <30> is the "S.B.I. Interlock" bit. The S.B.I. Interlock line is asserted by the commanding nexus when issuing an interlock read and then by the recieving nexus upon assertion of the ACK confirmation. ******************************************************************************* Bits <29:25> reflect the "S.B.I. ID<4:0> lines" which indicate the logical source or intended destination of the information on the B<31:0> lines. These lines reflect the hex representation of the TR level. TAG not = 0 then, ID<4:0> reflect the source. TAG = 0 then, ID<4:0> reflect the destination. ******************************************************************************* Bits <24:22> reflect the state of the "S.B.I. TAG<2:0>" lines. The TAG lines indicate the type of cycle being transmitted on the S.B.I. bus ... 0 Read Data Cycle TAG 3 Command/Address Cycle TAG = 5 Write Data Cycle TAG = 6 Interrupt Summary Read Cycle ******************************************************************************* Bits <21:18> reflect the state of the MASK <3:0> lines if the TAG isn't equal to 3 (indicating a Command/Address Cycle), in which case it will reflect the state of the B<31:28> lines (which indicate the FUNCTION). ~AG TAG = 3 then, Bits <21:18> reflect the type of FUNCTION. FUNCTION FUNCTION FUNCTION FUNCTION FUNCTION FUNCTION TAG = 0,6 1 2 4 7 8 B Read Masked Function Write Masked Function Interlock Read Masked Function Interlock Write Masked Function Extended Read Function Extended Write Masked Function then, Bits <21:18> reflect the M<3:0> lines. MASK 0 Read Data in 8<31:00> is good data. MASK 1 A single bit error was detected and corrected by the transmitting NEXUS, therefore, the data in B<31:00> is now good. MASK 2 Multiple bits were detected as being bad and the transmitting NEXUS could not repair them. Therefore the data in 8<31:00> is BAD. 1-193 TAG = 5 then, Bits <21:18> reflect the M<3:0> lines. The MASK <3:0> lines reflect the respective BYTE(s) that are being written. ******************************************************************************* Bits <17:16> reflect the state of the "S.B.I. CNF<l:O> lines". These lines are the confirmation lines. Each and every transmitted cycle must have a corresponding confirmation code returned two cycles later. CNF = 0 NO RESPONSE from destination NEXUS CNF = 1 Indicates an ACKNOWLEDGE from the destination NEXUS. If this confirmation is received two cycles after a C/A cycle, it indicates that the device knows the command is to him and also indicates that he can perform the specified command encoded in the B<31:28> lines. CNF Indicates that the destination NEXUS knows you want him to do something, but he is currently BUSY. The transmitting NEXUS should try the command again later. 2 CNF = 3 Indicates that the destination NEXUS recognizes that the transmitting NEXUS is talking to him but the command encoded in the B<31:00> lines specifies a function that the destination NEXUS cannot perform. ******************************************************************************* Bits <15:00> reflect the state of the "S.B.I. TR<l5:00> lines". If a bit is set, it indicates that the respective TR arbitration line is asserted on the S.B.I., for that cycle. ******************************************************************************* BEWARE: In some cases, the S.B.I. SILO may not contain valid information because of improper setup prior to the FAULT occuring. In order to verify that the SILO contains valid information, check ID #lB and make sure that Bit 16=1. If it isn't, don't bother checking the SILO information since it will not indicate what happened just prior to the fault. 1-194 CONFIGURATION/STATUS Register Interpretation 31 30 29 27 28 26 25 24 23 22 21 20 TRANSMITTER DURING FAULT 19 18 17 16 (indicates status) MULTIPLE TRANSMITTER FAULT detected by this NEXUS INTERLOCK SEQUENCE FAULT detected by this NEXUS UNEXPECTED READ DATA FAULT detected by this NEXUS ~WRITE SEQUENCE FAULT detected by this NEXUS PARITY FAULT detected by this NEXUS The CONFIGURATION/STATUS Register is the first I/0 Address assigned to each NEXUS. The CPU's equivalent register is ID #lB. All NEXUS, and the CPU, have the above assignments for these bits within their CONFIGURATION/STATUS registers. If a device cannot detect any particular type of FAULT, it will not have anything assigned to that particular bit and that bit will always be read as ZERO. Device at Configuration/Status Register 20002000 20004000 20006000 20008000 2000AOOO 2000COOO 2000EOOO 20010000 20012000 20014000 20016000 20018000 2001AOOO 2001COOO 2001EOOO TR #1 TR #2 TR #3 TR #4 TR #5 TR #6 TR #7 TR #8 TR #9 TR #10 TR #11 TR #12 TR #13 TR #14 TR #15 CPU ID #18 1-195 EVKAA - V5.l done EVKAA - V5.l done HALTED AT 1805 >>> Trouble-shooting using the SYSTEM CONTROL BLOCK $ ?ILL I/E VEC HALTED AT 100 >>> 1-197 Unexpected EXCEPTIONs or INTERRUPTS can result in a variety of symptoms. Typically, programmers will setup a trap-catcher, in the SYSTEM CONTROL BLOCK, in order -to prevent these unexpected events from destroying ~heir program or data. The trap-catcher will either flag the error and continue on, or will cause the CPU to halt. Depending upon how the software is setup the symptom may be a "HALTED AT xxxxxxxx" message printed on the console terminal, a "FATAL BUGCHECK" or "NON-FATAL" bugcheck message on the console or users terminal, an "?ILL I/E VEC" message is printed on the console terminal followed by the CONSOL.SYS prompt, or the system software may do unexpected things due to re-vectoring. Even though the symptoms are many, determing if you have a problem in this area is easily done by examination of the SYSTEM CONTROL BLOCK, examination of a listing of the failing software, using the data typed out with the "?ILL I/E VEC" messager, or by installing a trap-catcher and then reproducing the problem. HALTED AT xxxxxxxx If the symptom results in a "HALTED AT xxxxxxxx" being printed on the console terminal, followed by the CONSOL.SYS prompt (>>>), either a listing of the software or examination of the SYSTEM CONTROL BLOCK is necessary. A listing of the software being run is probably the easiest method of determing what went wrong. Simply look up the "xxxxxxxx" PC that was printed out in the "HALTED AT xxxxxxxx" message. If you d?n't have a listing of ~he failing so~tware, e~amination of the SCB is necessary. To do th1s, you must f 1rst examine the SCCB register in order to find the start of the SCB. The SCCB (ID #38) contains a longword aligned PHYSICAL ADDRESS that points to the beginning of the SYSTEM CONTROL BLOCK (SCB). In order to dump the SCB use the following CONSOL.SYS commands: >>> >>> E/L/ID 38 E/L/P/N:7F @ Now check to see if the "xxxxxxxx" PC, in the "HALTED AT xxxxxxxx" message, is somewhere in the address range of the SCB. If it is, the offset from the SCBB can be used to determine what type of EXCEPTION or INTERRUPT caused the problem by using the SCB vector assignment chart on the following pages. If the "xxxxxxxx" PC isn't in the address range of the SCB table, check to see if any of the longword vectors can re-vector the software to a location near this address. If there is, examine memory starting at the vector address up to the "xxxxxxxx" address. Does the macrocode indicate that re-vectoring could cause a halt at the specified PC? If so, use the SCB vector assignment chart to determine what type of EXCEPTION or INTERRUPT caused the problem. 1-198 1 Building and using a VAX Trap Catcher In some cases, it may be necessary to modify the SCB so as to form a TRAP CATCHER. The idea is to deposit vectors into the SCB that will cause a halt whenever an EXCEPTION or ITERRUPT occurs. Furthermore, this must result in causing the system to halt at an address unique to EXCEPTION or INTERRUPT. The easiest way to do this is create a SCB with each vector pointing to its respective SCB location, with both bits <l> and <O> set to a 1 (if bits <1:0>=3, the VAX-11/780 will halt with a PC one byte past the specified vector address). After such a Trap Catcher is installed, the symptom must be reproduced. Any EXCEPTIONS or INTERRUPTS that occur should then cause the CPU to halt followed by a "HALTED AT xxxxxxxx" message printed on the console terminal. The "xxxxxxxx" PC will indicate what type of EXCEPTION or INTERRUPT occured by determining what vector was used. This can be determined by subtracting the address of the vector used from the contents of the SCBB, and then using the SCB vector assignment charts to determine the type of EXCEPTION or INTERRUPT. Note about installing Trap Catchers The only problem with this method of trouble-shooting is that care must be taken not to modify the vectors for EXCEPTIONS and INTERRUPTS that the software program uses. Only those that software doesn't expect to happen should be modified. VMB V4.02 Trap Catcher generation Unexpected EXCEPTIONS or INTERRUPTS can cause system software booting failures. If the booting failures are in VMB, a unique way of modif ing the SCB is required due to VMB's use of the SCB. In order to use this procedure, you will have to manually perform the CONSOL.SYS commands of the command file used to boot the system, with the following modifications: · Use the same commands as the appropriate boot file used to boot the system, but don't use the "WAIT DONE" command, and DON'T START VMB YET. After VMB has been loaded, patch VMB by first finding the contents of the SP (this was examined just prior to loading of VMB if you followed the normal boot process). >>> SET RELOCATION:@ >» E/L/P 2400 >>> D/L/P 2400 2038F3C >>> E/W/P 240A >>> D/W/P 240A 76DE >>> SET RELOCATION:O >>> E/L SP >>> START @ 1-199 Should contain an xxxxCF9E. Replace with a MOVZWL #203,R6. Should contain a 5600. Replace with a MOVAL -(R6),-(R7). If an unexpected EXCEPTION or INTERRRUPT occurs while VMB is running, with the above patch, a "HALTED AT xxxxxxxx" fuessage will be typed on the console terminal. Now save the "xxxxxxxx" in this message and do the following procedure: Examine the SCBB with the following command: >>> E/L/ID 3B Subtract the saved "xxxxxxxx" from the contents of ID #3B. The result is the offset into the SCB for the EXCEPTION or INTERRUPT that occured. Use the SCB vector assignment chart to determine the type of unexpected EXCEPTION or INTERRUPT. Note about VMS None of these procedures should need to be used with VMS. VMS will report unexpected EXCEPTIONS and INTERRUPTS by way of its BUGCHECK routine. ?ILL l/E VEC This is the easiest to trouble-shoot. The data printed out with this error message is the offset into the SCB. Use the SCB vector assignment chart to determine what type of EXCEPTION or INTERRUPT caused the failure. Now what? If one of these procedures have isolated the problem to a certain type, then go to the section of this chapter that deals with that type of problem. i.e. If the vector was at SCBB+04, the failure was due to a MACHINE CHECK, therefore use the MACHINE CHECK portion of this guide to find out how to trouble-shoot this problem. If the vector was at SCBB+5C, the failure was due to an SBI FAULT, therefore use the SBI FAULT portion of this guide to find out how to trouble-shoot this problem. If the vector was at one of the SBI REQUEST level locations, the device at fault can be isolated by determining what REQUEST LEVEL, and what TR Level the interrupt occ~red on. Knowledge of the system configuration, plus these two levels, should narrow down the suspects. 1-200 VAX-11/780 System Control Block vector assignments 000 004 008 ooc 010 014 018 Ole 020 024 028 02C 030 034 038 03C 040 044 048 04C 050 054 058 05C 060 064 068 06C 070 074 078 07C 080 084 088 08C 090 094 098 09C OAO OM OA8 OAC OBO OB4 OBS OBC oco OC4 OC8 ace ODO 004 008 Unused, reserved Machine Check Kernel Stack Not Valid Power Fail Reserved/Privileged Instr. Customer Reserved Instr. Reserved Operand Reserved Addressing Mode Access Control Violation Translation Not Valid Trace Breakpoint Compatibility Arithmetic Unused, reserved Unused, reserved CHMK CHMB CHMS CHMU SBI Silo Compare CRD/RDS SBI ALERT SBI FAULT Asynchronous Write Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Software Level 1 Software Level 2 Software Level 3 Software Level 4 Software Level 5 Software Level 6 Software Level 7 Software Level 8 Software Level 9 Software Level A Software Level B Software Level c Software Level D Software Level E Software Level F Unused, reserved Unused, reserved Unused, reserved Unused, reserved ooc OEO OE4 OE8 OEC OFO OF4 OF8 OFC 100 104 108 lOC llO 114 118 llC 120 124 128 12C 130 134 138 13C 140 144 148 14C 150 154 158 15C 160 164 168 16C 170 174 148 17C 180 184 188 18C 190 194 198 19C 1-201 Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved Unused, reserved CNSL Receive Interrupt CNSL Transmit Interrupt SBI REQ 4 - TR #0 SBI REQ 4 - TR #1 SBI REQ 4 - TR #2 SBI REQ 4 - TR #3 SBI REQ 4 - TR #4 SBI REQ 4 - TR #5 SBI REQ 4 - TR #6 SBI REQ 4 - TR #7 SBI REQ 4 - TR #8 SBI REQ 4 - TR #9 SBI REQ 4 - TR #10 SBI REQ 4 - TR #11 SBI REQ 4 TR #12 SBI REQ 4 - TR #13 SBI REQ 4 - TR #14 SBI REQ 4 - TR #15 SBI REQ 5 - TR #0 SBI REQ 5 - TR #1 E?BI REQ 5 - TR #2 SBI REQ 5 - TR #3 SBI REQ 5 - TR #4 SBI REQ 5 - TR #5 SBI REQ 5 - TR #6 SBI REQ 5 - TR #7 SBI REQ 5 - TR #8 SBI REQ 5 - TR #9 SBI REQ 5 - TR #10 SBI REQ 5 - TR #11 SBI REQ 5 - TR #12 SBI REQ 5 - TR #13 SBI REQ 5 - TR #14 SBI REQ 5 - TR #15 SBI REQ 6 - TR #0 SBI REQ 6 - TR #1 SBI REQ 6 - TR #2 SBI REQ 6 - TR #3 SBI REQ 6 - TR #4 ss'I REQ 6 - TR #5 SBI REQ 6 TR #6 SBI REQ 6 - TR #7 lAO 1A4 1A8 lAC 180 184 188 l8C lCO 1C4 1C8 lCC lDO 1D4 1D8 lDC lEO 1E4 1E8 lEC lFO 1F4 1F8 lFC S8I S8I S8I S8I S8I S8I S8I S8I S8I S8I SBI S8I S8I S8I SBI S8I S8I S8I S8I S8I S8I S8I S8I S8I REQ 6 REQ 6 REQ 6 REQ 6 REQ 6 REQ 6 REQ 6 REQ 6 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 REQ 7 - TR #8 TR #9 TR #10 TR #11 TR #12 TR #13 TR #14 TR #15 TR #0 TR #1 TR #2 TR #3 TR #4 TR #5 TR #6 TR #7 TR #8 TR #9 TR #10 TR #11 TR #12 TR #13 TR #14 TR #15 The SC88 register contains a longword aligned address that points to the first vector in the System Control Bleck. If bits <l:O> are both set to a one in the vector, and the CPU traps to that vector, the VAX-11/780 will HALT. This is an easy way of developing a VAX-11/780 Trap Catcher. 1-202 SECTION VMS II lnformat on VMS SYSGEN Error Control Parameters On certain types of errors, the VMS Operating System will attempt to reboot itself. There are a couple of "SYSGEN" parameters that can disable this function. It is very important to have these parameters set correctly when trouble-shooting a problem so that the appropriate Hardware and Software information can be gathered. BUGCHECKFATAL is a parameter that enables, when set to a 1, the conversion of NONFATAL Bugchecks to FATAL Bugchecks. This causes the Operating system to crash and reboot. Setting this parameter to a 1 is useful whenever ERRLOG.SYS does not give you enough information in order to diagnose the problem. When set to a 1, and BUGREBOOT is set to a 0, the Operating System will not reboot. Therefore, you will then be able to take a Hardware Register Dump or do some scoping. It has no effect on bugchecks from USER or SUPERVISOR mode. BUG REBOOT is a parameter that enables, when set to a 1, the automatic rebooting of the Operating System if a FATAL BUGCHECK occurs-. It may become necessary to clear, set to a 0, this parameter after the first FATAL Bugcheck occurs so that Hardware Register Dumps can be taken, and so that scoping may be done whenever the FATAL Bugcheck occurs. BUGREBOOT=l causes the LSI to reboot the VAX via DEFBOO.CMD or RESTAR.CMD. DUMP BUG is a parameter that enables, when set to a 1, the writing of error log buffers and memory contents to SYS$SYSTEM:SYSDUMP.DMP when a FATAL Bugcheck occurs. The Software Dump is written to the "SYS$SYSTEM:SYSDUMP.DMP" file immediately after the Operating System detects the Error and before the "BUGREBOOT" bit is checked to see if a reboot is to be attempted. In other words, the Software Dump is taken on the way down. The state of these "SYSGEN" parameters should be checked if you are not getting all the dump information that you require. The customer should have the system set up so that the Software Dump, a function of the "DUMPBUG" parameter, is always taken. The State of the other two parameters depends on the Customer's operating enviroment. However, once a problem occurs, it will probably be necessary to change the setting of these parameters until the problem is _fixed. No matter how the SYSGEN parameters are set up, certain types of failures will crash the system in such a way that the Software DUMP will not be taken. 2-2 VMS CRASH HANDLING The following is an overview of what happens when VMS detects a NON-FATAL BUGCHECK. 1. A message describing the error is passed to the Error Logger. 2. System operation continues. following is an overview of what happens when VMS detects a FATAL BUGCHECK from USER or SUPERVISOR . Th~ 1. A message describing the error is passed to the Error Logger. 2. Execution continues as follows: a. If the process is executing a single image, the process is deleted. b. If the process is executing in interactive or batch mode, the current image exits and control is passed to the CLI to receive the next command •. 2-3 The following is an overview of what happens when VMS detects a FATAL BUGCHECK from KERNEL or EXECUTIVE modes. 1. 2. 3. A small amount of information describing the Bugcheck is typed on the Console Terminal. This information may include the following: a. The contents of the VAX General Registers. b. The Kernel and Executive stack contents. c. The contents of certain VAX Internal registers. d. A summary of the reason for the Bugcheck. If the "DUMPBUG" SYSGEN parameter is set to a 1, a software dump file will be written to SYS$SYSTEM:SYSDUMP.DMP. This file contains the following information: a. The Dump Header. This header contains such information as the contents of certain VAX registers, the Time of the crash,bugcheck crash code, and other information. b. The contents of the two errlog buffers. c. The contents of physical memory. If the "BUGREBOOT" SYSGEN parameter is set to a 1, a VMS system reboot will be attempted as follows: a. VMS sends a special code to CONSOL.SYS (AXF02) via the console transmit buffer register (TXDB). b. VMS executes a HALT instruction so as to transfer control back to the CONSOL.SYS program. c. CONSOL.SYS attempts to reboot the VAX via the "DEFBOO.CMD" command file if "AUTO RESTART switch = 0" or via the "RESTAR.CMD" command file if "AUTO RESTART switch= l". If the appropriate command file is not found, CONSOL.SYS prints its' prompt (>>>) and awaits operator input. If the "BUGREBOOT" SYSGEN parameter is set to a 0, the VMS operating system will simply loop (with IPL=31) and await input on the console terminal. The "CONSOL.SYS" program prints its' prompt (>>>) on the console terminal and awaits operator input. 2-4 Assigning Addresses and Vectors to Unibus Devices In order to make the proper assignments to those Unibus devices that have Floating Addresses and/or Floating Vectors, you must first understand the SYSGEN rules for configuration. SYSGEN uses the following rules for configuration: o Devices with fixed CSR addresses and fixed vector addresses must be attached according to the SYSGEN device table settings. o Devices with floating CSR or vector addresses must be attached in the order in which they are listed in the SYSGEN device table. o An 8-byte gap must be reserved between each different type of device that is located in floating CSR address space. o An 8-byte gap must be reserved in floating CSR address space for each device type that has no controller in its configuration. o An extra 8-byte gap must be reserved between the KWllC and the RXll in floating CSR address space. The SYSGEN Device table is found in the "VAX/VMS Guide to Writing a Device Driver" manual (Order no. AA-H499C-TE), in the chapter about "Loading a Device Driver". Unless the Unibus Devices, that have floating address and/or vectors, are properly assigned, the SYSGEN "AUTOCONFIGURE ALL" command will not be able to properly assign the devices. In these cases, the devices must be connected individually. By using the above rules and the tables on the following page, you should be able to properly configure Floating Unibus Devices on the VAX-11/780 system. The tables, on the following page,list the devices in the order that SYSGEN looks for them if they have floating address and/or vector assignments. NOTE: An alternate method of determining where to configure UNIBUS devices is to use the "CONFIG" command under "SYSGEN", (providing that you have a system, running VMS, that you can do this on). See the "SYSGEN" help file, in this chapter, for help on using this command. 2-5 Unibus Device Floating Vector Table Unibus Device Floating Address Table 760010 300 DJll DHll DQll DUll DUPll LKll DMCll/DMRll (DMCs before DMRs) DZ11/DZ32 (DZlls before DZ32s) KMCll LPPll VMV21 VMV31 DWR70 RLll LPAll (2nd) KWllC RSV RX211 DRllW DRllB (3rd) DMPll DPVll ISBll DMVll UNA UDA DMF32 (see TECH. Manual) KMSll DCll TU58 DNll DMllB DRllC PR611 PP611 DTll DXll DLllC DJll DHll GT40 LPSll DQll KWllW DUll DUPll DVll LKll DMCll/DMRll DZll DZ32 KMCll LPPll VMV21 VMV31 DWR70 RLll TSll LP All KWllC RSV RX211 DRllW DRllB (2nd & 3rd} DMPll DPVll ISBll DMVll UNA UDA DMF32 KMSll PLCll 2-6 SYSGEN Commands The following commands are those SYSGEN commands that manipulate drivers. 0 0 0 0 0 0 0 LOAD CONNECT RELOAD SHOW/ADAPTER SHOW/CONFIGURATION SHOW/DEVICE AUTOCONFIGURE ALL (requires CMKRNL privilege) (requires CMKRNL privilege) (requires CMKRNL privilege) (requires CMEXEC privilege) (requires CMEXEC privilege) (requires CMEXEC privilege) (requires CMKRNL privilege) LOAD command This command is used to load a DEVICE DRIVER. If the CONTROLLER has only a single unit attached to it, issue the CONNECT command. Format: LOAD driver_f ile_spec CONNECT Command This command creates I/0 base control blocks for devices. It can also load the driver if it has not been previously loaded into System memory. Format: CONNECT device_name required_quals optional_quals Required Qualifiers: /[NO]ADAPTER=nexus /CSR=csr address /VECTOR=vector address Optional Qualifiers: /NUMVEC=number interrupt vectors /DRIVERNAME=drTver name /ADPUNIT=unit number /MAXUNITS=maxTmum number of units - 2-7 - - RELOAD Corrunand This corrunand loads a driver and removes a previously loaded version of that driver. Performs the same function as the LOAD corrunand except it will load the driver regardless of whether it is already loaded. Format: RELOAD driver_f ile_spec SHOW/ADAPTER Command This corrunand displays nexus numbers and generic names of the Unibus and Massbus adapters, memory controllers, and device interconnects such as the DR32. Format: SHOW/ADAPTER SHOW/CONFIGURATION This command displays information about the system configuration. Format: [/ADAPTER=nexus] [/COMMAND FILE] [/OUTPUT=f ile_spec] SHOW/CONFIGURATION SHOW/DEVICE This command displays the location of a driver and the I/0 data base describing its devices in system virtual memory. Format: SHOW/DEVICE [=driver_name] AUTOCONFIGURE ALL Configures D.E.C. supported devices to the system automatically. Format: AUTOCONFIGURE ALL 2-8 CONFIGURE [/INPUT=file-spec] [/OUTPUT=file-spec][/(NO)RESET] This command request the UNIBUS device names and then outputs the set of CSR and VECTOR addresses that are required for AUTOCONFIGURE to use. When executing this command, SYSGEN prompts you with "DEVICE>". Enter the device names in the following format: device,n,p where "device" =device's name and "n" = how many of this device, and "p" = the optional number of devices on all previous UNIBUSes in a multiple UNIBUS system. This command can be used as follows to determine where UNIBUS devices should be addressed: SYSGEN> CONFIGURE <return> DEVICE> <device,n,p> <return> DEVICE> <device,n,p> <return> continue for all Unibus devices, and then: DEVICE> "Z SYSGEN will then print the desired configuration. CONNECT CONSOLE Connects the Console Floppy Drive and loads its driver. CREATE file-spec /SIZE=block-count [/(NO)CONTIGUOUS] Creates or extends a paging, swapping, or dump file. DISABLE CHECKS Disables range checks. 2-9 ENABLE CHECKS Enables range checks. EXIT Terminates SYSGEN. INSTALL file-spec Go back to the VMS DCL prompt. ./PAGEFILE /SWAPFILE Activates a secondary paging or swapping file. SET /OUTPUT [=] file-spec Defines an output file for the SYSGEN session. SET /STARTUP file-spec Names the current site-independent startup command procedure. SHARE MPMn mpm-name This corruuand connects multiport memory units and initializes them to the Operating System. /GLBSECTIONS=glb /MAXGLBSECTIONS=max-glb /POOLBCOUNT=block-cnt /PRQCOUNT=prq-cnt /MAXCEFCLUSTERS=max-cef /INITIALIZE /MAILBOXES=mail /MAXMAILBOXES=max-mail /POOLBSIZE=block-size /CEFCLUSTERS=cef SHOW parameter /xxx Where xxx can be any of the following: /ACP /ALL /DYNAMIC /GEN /JOB /MAJOR /NAMES /PQL /RMS /SCS /SPECIAL /SYS [/HEX] /TTY Displays the values of the system parameters in the SYSGEN work area, plus the default, minimum, and maximum values of the parameter and their units of measure. 2-10 SET parameter-name value Modifies the value of a system generation parameter in the SYSGEN work area. SHOW /UNIBUS Displays the addresses in UNIBUS I/0 space that can be addressed. USE file-spec CURRENT ACTIVE DEFAULT Initializes the SYSGEN work area with system parameter values from a parameter file, the current system image, the active system, or the default list. WRITE file-spec CURRENT ACTIVE Writes the system parameter values from the SYSGEN work area to a parameter file, the current system image, or the active system. 2-11 Using SYSGEN to determine UNIBUS device Address/Vector Assignments The SYSGEN "CONFIG" command can be used to determine the proper address and vector assignments for the VAX UNIBUS devices. The following steps can be used to do this. 1. Log into the VMS operating system. 2. Execute the following commands: $ MCR SYSGEN SYSGEN> CONFIG DEV> device name,number of devices DEV> next device name,number of devices DEV> next device-name,number-of-devices DEV> AZ - - 3. Enter all device names, one device type per "DEV>" prompt. <-- "AZ" to end input mode. <-- When you type the "AZ", SYSGEN will determine the correct addresses and vectors for the devices and will print them out on your terminal. The devices must be assigned these addresses in order for the SYSGEN utility to be able to auto-configure them. 2-12 LOCAL CONSOLE Boot Command Files The Local Console Floppy contains the command files necessary to boot either VMS or the Diagnostic Supervisor. These command files do four important things: 1. Initialize the VAX-11/780 CPU and the S.B.I. Nexus. 2. Setup the VAX-11/780 CPU's General Registers in such a way as to tell VMB.EXE who to boot from, what to boot, and how to start what was booted. 3. Initiate the ISP rom program to find a good 64K chunk of Memory. 4. Load and Start the VMB.EXE program. Following is an example of one of the Local Console Boot command files. This command file boots VMS from Massbus drive #0 on RH780 #0 (TR=8). DBO Boot command file - DBOBOO.CMD HALT UNJAM INIT DEPOSIT/I 11 20003800 DEPOSIT RO 0 DEPOSIT Rl 8 DEPOSIT R2 0 DEPOSIT R3 0 DEPOSIT R4 0 DEPOSIT R5 0 DEPOSIT FP 0 START 20003000 WAIT DONE EXAMINE SP LOAD VMB.EXE/START:@ START @ Halt the Processor. Unjam the SB I . Init the Processor. Set-up the SCBB. Disk Pack Device Type. MBA TR=8. Adapter Unit = 0. Controller Unit = 0. Boot Block LBN (unused) Software Boot Flags Set no Machine Check expected. Start ROM Program. Wait for Completion. Show address of working Memory+AX200. Load the Primary Bootstrap and start it. The parameters for VMB.EXE are described on pages 67 thru 70 of the VAX Systems Maintenance Handbook (EK-VAXVl-HB-001). 2-13 RESTAR.CMD This command file is invoked in the event of Power Recovery and other console detected restart conditions if the "AUTO RESTART" switch is set. It can also be invoked manually with the following command to CONSOL.SYS: >» @RESTAR.CMD The following RESTAR.CMD command file is an example of the type of restart file used for systems without interleaved memory: HALT the Processor. UNJAM the SBI. INITialize the Processor. Set address of SCBB. Clear unused Register. xxx=TR of Boot Disk NEXUS. Clear unused Register. Clear unused Register. Clear unused Register. Clear unused Register. No Machine Check expected. Start RESTART REFEREE. HALT UNJAM INIT DEPOSIT/I 11 20003800 DEPOSIT RO 0 DEPOSIT Rl xxx DEPOSIT R2 0 DEPOSIT R3 0 DEPOSIT R4 0 DEPOSIT RS 0 DEPOSIT FP 0 START 20003004 DSC or BACKUP Boot Command File This command file boots either STAND-ALONE DSC or STAND-ALONE BACKUP from Floppies. HALT UNJAM INIT DEPOSIT/I 11 20003800 DEPOSIT RO 40 DEPOSIT Rl 0 DEPOSIT R2 0 DEPOSIT R3 1 DEPOSIT R4 0 DEPOSIT RS 0 DEPOSIT FP 0 DEPOSIT SP 200 LOAD VMB.EXE/START:200 START 200 HALT the Processor. UNJAM the SBI. INITialize the Processor. Set address of SCBB. Console Floppy Device. Unit Number. Boot Block LBN (unused). Software Boot Flags. No Machine Check expected. Addr. of working Mem +AX200. Load Primary Bootstrap and Start it. 2-14 RESTAR.ILV This command file should replace the RESTAR.CMD command file for those systems that have two interleaved memory controllers. This command file assumes that the memory controllers are at TR levels 1 and 2. This command file is invoked in the event of Power Recovery and other Console detected restart conditions if the Auto Restart switch is set. It can also be invoked with the following command entered to the CONSOL.SYS pompt (">>>"): @RESTAR.CMD The RESTAR.ILV command file consists of the following CONSOL.SYS commands: HALT INIT DEPOSIT/I 11 20003800 DEPOSIT RO 0 DEPOSIT Rl xxx DEPOSIT R2 0 DEPOSIT R3 0 DEPOSIT R4 0 DEPOSIT R5 0 DEPOSIT FP 0 DEPOSIT 20002000 101 DEPOSIT 20002004 4000 DEPOSIT 20004000 101 DEPOSIT 20064004 4000 START 20003004 Halt VAX Processor. Initialize the VAX CPU. Set Address of SCBB in ISP ram. Clear unused Register. xxx = TR of Boot Disk NEXUS. Clear unused Register. Clear unused Register. Clear unused Register. Clear unused Register. No MACHINE CHECK expected. Enable TR#l Memory's interleaving. Force starting address to 00000000. Enable TR#2 ~emery's interleaving. Force starting address to 00000000. Start Restart Referee in ISP ram. 2-15 RMEM. This command file is used to reset the starting addresses of the memories, in a MS780 and MA780 system configuration, so that the MS780 will again be low memory. This is necessary in order to run diagnostics on a VAX-11/782 system. This command file is located on the LOCAL CONSOLE FLOPPY and is executed by typing "@RMEM" to the CONSOL.SYS prompt (">>>"). Command file to RESET Memory Controller Restart Addresses. DEPOSIT 20002004 00004000 DEPOSIT 2000400C 00200001 DEPOSIT 2000600C OOAOOOOl DEPOSIT 2000800C 01200001 DEPOSIT 2000AOOC OlAOOOOl SET TR=l MEMORY TO START AT O.OMB. SET TR=2 MEMORY OUT OF THE WAY. SET TR=3 MEMORY OUT OF THE WAY. SET TR=4 MEMORY OUT OF THE WAY. SET TR=5 MEMORY OUT OF THE WAY. 2-16 S E C T I 0 N Special COMMAND Ill files I Programs Hardware Dump File Maintenance/Generation Two files should be added and two files modified on the LOCAL CONSOLE floppy in order to take Hardware Register Dumps. "DUMP." and "HANG." should be generated and installed on the Local Console Floppy by you. You should also modify the existing DEFBOO.CMD & RESTAR.CMD command files so that a Hardware Dump i's taken before the system is rebooted (whenever BUGREBOOT=l). DEFBOO.CMD is used when BUGREBOOT=l and AUTO RESTART switch is "OFF". RESTAR.CMD is used when BUGREBOOT=l and AUTO RESTART switch is "ON". The "REMOTE LOCAL CONSOLE" floppy should also be modified to contain the files mentioned above. DUMP. This command file dumps all the Hardware Registers via the CONSOL.SYS program commands. It should be tailored to the system on which it will be used so that all the Hardware Registers will be dumped. This command file is generated and then placed on the Local Console Floppy. The customer should be educated, by you, as to WHEN and HOW this command file should be used. HANG. This command file should do three things. 1. 2. 3. They are as follows: Dumps all Hardware Registers as defined by DUMP. Single Steps the VAX CPU so as to find out where the software is hung. Initiates an @CRASH. so as to obtain a Software Dump. This command file is to be used for dumping system software hangs. It is your responsibility to educate the customer as to HOW and WHEN to use this command file. DEFBOO.CMD and RESTAR.CMD These command files are supplied on the distributed Local Console Floppy. Their purpose is to attempt a restart of the Operating System on certain failure conditions. UNFORTUNATELY, the DEFBOO.CMD command file is also used whenever a "B" or "BOOT" is entered to CONSOL.SYS in order to reboot the system. The information gathered by appending a set of hardware register dump commands to the beginning of these files is very useful when trouble shooting system crashes on a system that is set up to reboot automatically. It is best to get an O.K. from the customer before modifying these command files. If need be, a seperate LOCAL CONSOLE floppy (preferably a "REMOTE LOCAL CONSOLE" floppy) can be made to use when the system has problell\s. 3-2 Version 3.x VMS dump file generation The following commands can be used to create the HANG., DUMP., and modify the DEFBOO.CMD & RESTAR.CMD command f1iles on the LOCAL CONSOLE floppy of a VERSION 3.x VMS Operating System .. First of all, you must log into an account that has the "SETPRV" privilege or into an account that has enough privileges to access ncSAl:". Do the following steps on "VERSION 3.x VMS" systems: $ SET PROCESS/PRIV=ALL $ MCR SYSGEN CONNECT CONSOLE EXIT $ MOUNT/FOR CSAl: $ MCR FLX /RS=CSl:DEFBOO.CMD/RT/FA $ MCR FLX /RS=CSl:RESTAR.CMD/RT/FA $ RENAME RESTAR.CMD RESTAR.OLD $ RENAME DEFBOO.CMD DEFBOO.OLD $ EDIT DUMP. Create the DUMP. command file that you wish to place on the LOCAL CONSOLE floppy. Be sure to have examines for all registers on the system. An example of a DUMP. command file is given in this manual. $ COPY DUMP. HANG. $ EDIT HANG. Now create the HANG. command file by modifying the just made DUMP. command file to include the commands shown below. These commands should be appended to the end of the file. Set single step mode and gather some PC's in order to determine where software is hung. SET DEFAULT HEX,LONG,PHYSICAL D/ID OA 00008080 SET STEP INSTRUCTION NEXT 30 CLEAR STEP NEXT 1 D/ID OA 00000040 Turn off/Clear Interval Timer. Set single step mode. Find program loop. Disable single step mode. Continue clock. Re-enable Interval Timer. Now execute the equivalent of @CRASH in order to cause a Software Dump to be taken. HALT E PC E PSL E/I/N:4 0 D PC -1 D PSL lFOOOO CONTINUE Halt the system. Get current PC. Get contents of PSL. Get Stack pointers. Invalidate PC. Set Kernel mode, IPL 31. Continue macro program. 3-3 $ COPY DUMP. DEFBOO.CMD $ COPY DUMP. RESTAR.CMD $ APPEND DEFBOO.OLD DEFBOO.CMD $ APPEND RESTAR.OLD RESTAR.CMD $ COPY/CONTIG RESTAR.CMD RESTAR.CMD $ COPY/CONTIG DEFBOO.CMD DEFBOO.CMD $ COPY/CONTIG DUMP. DUMP. $ COPY/CONTIG HANG. HANG. $ PURGE DEFBOO.CMD $ PURGE RESTAR.CMD $ PURGE DUMP. $ PURGE HANG. $ MCR FLX CSl:/RT=DEFBOO.CMD/RS/FA $ MCR FLX CSl:/RT=RESTAR.CMD/RS/FA $ MCR FLX CSl:/RT=DUMP./RS/FA $ MCR FLX CSl:/RT=HANG./RS/FA $ MCR FLX CSl:/RT/LI $ DISMOUNT CSAl: Now you should bring down the system and test the files you have just created. To test the command files, proceed as follows from the CONSOL.SYS prompt: >>>@DUMP All registers should be examined. Several errors may occur on the Memory Stack examines. Ignore them. >>>@HANG All registers should be examined. Several errors may occur on the Memory Stack examines. Ignore them. >>>B A hardware register dump should occur as with the DUMP. command file and then the system should reboot. Now place the AUTO-RESTART switch to "ON" and turn the power "OFF" and back "ON". The Operating system should reboot via the modified RESTAR.CMD command file. 3-4 Version 4.x VMS dump file generation The following commands can be used to create the HANG.J DUMP., and modify the DEFBOO.CMD & RESTAR.CMD command files on the LOCAL CONSOLE floppy of a VERSION 4.x VMS Operating System. First of all, you must log into an account that has the "SETPRV" privilege or into an account that has enough privileges to access "CSAl:". Do the following steps on "VERSION 4.x VMS" systems: $ SET PROCESS/PRIV=ALL $ MCR SYSGEN CONNECT CONSOLE EXIT $ EXCHANGE COPY CSAl:RESTAR.CMD RESTAR.OLD COPY CSAl:DEFBOO.CMD DEFBOO.OLD EXIT $ EDIT DUMP. Create the DUMP. command file that you wish to place on the LOCAL CONSOLE floppy. Be sure to have examines for all registers on the system. An example of a DUMP. command file is given in this manual. $ COPY DUMP. HANG. $ EDIT HANG. Now create the HANG. command file by modifying the just made DUMP. command file to include the commands shown below. These comm-ands should be appended to the end of the file. Set single step mode and gather some PC's in order to determine where software is hung. SET DEFAULT HEX,LONG,PHYSICAL D/ID OA 00008080 Turn off/Clear Interval Timer. Set single step mode. Find program loop. Disable single step mode. ! Continue clock. .! Re-enable Interval Timer. SET STEP INSTRUCTION NEXT 30 CLEAR STEP NEXT 1 D/ID OA 00000040 Now execute the equivalent of @CRASH in order to cause a Software Dump to be taken. HALT E PC E PSL E/I/N:4 0 D PC -1 D PSL lFOOOO CONTINUE Halt the system. Get current PC. Get contents of PSL. Get Stack pointers. Invalidate PC. Set Kernel mode, IPL 31. Continue macro prograci. 3-5 COPY DUMP. DEFBOO.CMD COPY DUMP. RESTAR.CMD APPEND DEFBOO.OLD DEFBOO.CMD APPEND RESTAR.OLD RESTAR.CMD COPY/CONTIG RESTAR.CMD RESTAR.CMD COPY /CONT I G DEFBOO. CMD DEF BOO .. CMD $ COPY/CONTIG DUMP. DUMP. $ COPY/CONTIG HANG. HANG. $ PURGE DEFBOO.CMD $ PURGE RESTAR.CMD $ PURGE DUMP. $ PURGE HANG. $ EXCHANGE COPY DEFBOO.CMD CSAl:DEFBOO.CMD COPY RESTAR.CMD CSAl:RESTAR.CMD COPY DUMP. CSAl:DUMP. COPY HANG. CSAl:HANG. EXIT $ DISMOUNT CSAl: $ $ $ $ $ $ Now you should bring down the system and test the files you have just created. To test the command files, proceed as follows from the CONSOL.SYS prompt: >>>@DUMP All registers should be examined. Several errors may occur on the Memory Stack examines. Ignore them. >>>@HANG All registers should be examined. Several errors may occur on the Memory Stack examines. Ignore them. >>>B A hardware register dump should occur as with the DUMP. command file and then the system should reboot. Now place the AUTO-RESTART switch to "ON" and turn the power "OFF" and back "ON". The Operating system should reboot via the modified RESTAR.CMD command file. 3-6 DUMP. Command File This is an example of how a Hardware Register Dump command file should look. This command file should be tailored for the system it is to be used on. ----> Lines marked with an "*" are system configuration dependent. <---- * * * * * * * * * * * R E G I S T E R H A R D WA R E D U MP Date & Time : Customer Name: VAX Serial No.: Don't ""'C", even if there is "?MIC" and/or "?MEM-MAN" errors. SHOW Check to see if VAX is running. HALT ! Make sure that the VAX is halted. SET RELOCATION:O SET DEFAULT HEX,LONG,PHYSICAL E/ID/N:l7 0 ! VAX CPU ID Registers. E/ID 18 "15" cycles prior to "SBI FAULT". E/ID * "14" cycles prior to "SBI FAULT". E/ID * "13" cycles prior to "SBI FAULT". E/ID * "12" cycles prior to "SBI FAULT". E/ID * "11" cycles prior to "SBI FAULT". E/ID * "10" cycles prior to "SBI FAULT". E/ID * "09" cycles prior to "SBI FAULT". E/ID * "08" cycles prior to "SBI FAULT". E/ID * "07" cycles prior to "SBI FAULT". E/ID * "06" cycles prior to "SBI FAULT". E/ID * "05" cycles prior to "SBI FAULT". E/ID * "04" cycles prior to "SBI FAULT". E/ID * "03" cycles prior to "SBI FAULT". E/ID * "02" cycles prior to "SBI FAULT". E/ID * "01" cycle prior to "SBI FAULT". E/ID * Last cycle stored prior to latching SILO. E/ID/N:25 19 Remaining CPU ID Registers. E IR Examine the contents of the IR. E PC Get current PC. E/L/V Get some instruction stream data. E/L/V E/L/V E/I 0/N:4 Examine STACK "Internal Regs." E/N:2 20002000 MEMORY Registers (TR=l). E/N:7 20006000 DW780 Registers (TR=3). E/N:6 20010000 RH780 (TR=8) Registers. E/N:6 20012000 RH780 (TR=9) Registers. E/N:F 20010400 DBAO: - RP06 #0 on RH780 at TR#8. E/N:F 20010480 DRAl: - RM05 #1 on RH780 at TR#8. E/N:9 20012400 MTAO: - TE16 #0 on RH780 at TR#9. E/W/N:3 2013E038 XMA - (760070) - on Adapter #0. E/W/N:3 2013E040 XMB - (760100) - on Adapter #0. TTA - (760120) - on Adapter #0. E/W/N:3 2013E050 E/W/N:3 2013E058 TTB - (760130) - on Adapter #0. E/ ID 3B Get System Control Block Base address. E/L/P/N:7F @ Dump System Control Block contents. E/G/N:F 0 General Registers. E SP Get Stack Pointer. E/V/N:60 @ Contents of STACK. IGNORE examine errors. SHOW VERSION 3-7 HANG. Command File This command file should be tailored to the System it will be used on. The first part of this command file should almost identical to the DUMP. file. Some commands are added to the end of the DUMP. file so that some information can be gathered concerning the hang. ----> Lines marked with an "*" are system configuration dependent. <---- * * * * * * * * * * * SYSTEM HANG - Hardware & Software Dump file Date & Time : Customer Name: VAX Serial No.: Don't ""C", even if there is "?MIC" and/or "?MEM-MAN" errors. SHOW ! Check to see if VAX is running. HALT ! Make sure that the VAX is halted. SET RELOCATION: 0 SET DEFAULT HEX,LONG,PHYSICAL E/ID 0/N:3E VAX CPU ID Registers. E IR Get the contents of the IR. E/I 0/N:4 Stacks via Internal Registers. E/N:2 20002000 MEMORY Registers (TR=l) E/N:7 20006000 DW780 Registers (TR=3) E/N:6 20010000 RH780 (TR=8) Registers E/N:6 20012000 RH780 (TR=9) Registers E/N:F 20010400 DBAO: - RP06 #0 on RH780 at TR#8. E/N:F 20010480 DRAl: - RM05 #1 on RH780 at TR#8. E/N:9 20012400 MTAO: - TE16 #0 on RH780 at TR#9. E/W/N:3 2013E038 XMA - (760070) - on Adapter #0. E/W/N:3 2013E040 XMB - (760100) - on Adapter #0. E/W/N:3 2013E050 TTA - (760120) - on Adapter #0. E/W/N:3 2013E058 TTB - (760130) - on Adapter #0. E/G/N:F 0 General Registers E SP Get Stack Pointer. E/V/N:60 @ Contents of STACK. IGNORE examine errors. E PC Get some instruction stream data in case E/L/V hung in a very tight, one or two instruction E/L/V loop. E/L/V SHOW VERSION ! .... Single Step the system to gather some program loop PC's .... SET DEFAULT HEX,LONG,PHYSICAL D/ID OA 00008080 Turn off/Clear Interval Timer. SET STEP INSTRUCTION Set single step mode. NEXT 60 Show program loop. CLEAR STEP Disable single step mode. NEXT 1 Continue clock. D/ID OA 00000041 Re-enable Interval Timer. Simulate an "@CRASH" so as to get Software Dump .... HALT E PC E PSL Invalidate PC D PC -1 D PSL lFOOOO KERNEL mode I IPL=31 CONTINUE 3-8 SAVEDUMP COM A command file that saves SYS$SYSTEM:SYSDUMP.DMP in a specified area. This command file should be executed from the SYS$SYSROOT:[SYSMGR]SYSTARTUP.COM command file so that the Software Dump is saved. 3-9 $ $ SAVE_VERIFY = 'F$VERIFY("NO") $ $ Written by Roy D. Fulton, $ $ $ I D.E.C. Field Service This command file copies the Software System Dump File, SYS$SYSTEM:SYSDUMP.DMP, to a file located in 'AREA NAME' with a name that reflects the reboot DAY, MONTH, HOUR and MINUTE. $ This command file should be entered by specif ing the "AREA_NAME" $ as parameter "Pl", as follows: $ $ @yyySAVEDUMP xxx ;where xxx DDCU:DIRECTORY of area $ in which to save the dump file and, $ $ ;where yyy = DDCU:DIRECTORY of where $ the "SAVEDUMP.COM" file is located. $ $ $ If the "AREA NAME" is not specified as parameter "Pl", the dump $ file will be-copied to the area "SYS$LOGIN" (the default directory $ of the area that you logged into). $ $ This command file should be executed as part of the VMS System $ "SYS$SYSROOT:[SYSMGR]SYSTARTUP.COM" command file by placing the $ above command in that command file. $ $ $ IF Pl .NES. "" THEN AREA NAME := 'Pl' $ IF Pl .EQS. ""THEN AREA-NAME:= 'F$LOGICAL("SYS$LOGIN")' $ DTIM := 'F$TIME()' $ LT= 'F$LOCATE("-",DTIM)' $ DAY:= 'F$EXTRACT(O,LT,DTIM)' $ IF LT .EQ. 1 THEN DAY := O'DAY' $ LT= 'LT'+l $ MONTH:= 'F$EXTRACT(LT,3,DTIM)' $ LT= 'F$LOCATE(":",DTIM)'+l $ MIN:= 'F$EXTRACT(LT,2,DTIM)' $ LT = 'LT'-3 $ HOUR:= 'F$EXTRACT(LT,2,DTIM)' $ NEW NAME := 'DAY' 'MONTH' 'HOUR' 'MIN' .DMP $ NEW-LIST := 'DAY' 'MONTH' 'HOUR' 'MIN' .LIS $ SEXE := 'F$LOGICAL("SYS$SYSTEM")' $ WRITE SYS$0UTPUT II II $WRITE SYS$0UTPUT " .... Copying" 'SEXE'SYSDUMP.DMP" $ WRITE SYS$0UTPUT " from : ''AREA NAME' 'NEW NAME' $ WRITE SYS$0UTPUT " to : $ ANALYZE/CRASH DUMP SYS$SYSTEM: COPY 'AREA NAME' 'NEW NAME' SET OUTPUT-' AREA NAME' 'NEW LIST' SHOW CRASH SHOW STACK SHOW SUMMARY SHOW PROCESS/PCB/PHD/REG SHOW SYMBOL/ALL EXIT IF SAVE VERIFY THEN SET VERIFY $ $ EXIT I I 3-10 II SPEAR Batch 3-11 Command File SPEAR BATCH CONTROL This is an example of a VMS Indirect Command file that can be used to run SPEAR as a BATCH job. When this command file is executed, a BATCH job will be submitted that will run the "ANALYZE" portion of SPEAR and will queue the output to the printer. The command file is executed by typing "@DDCU:SPEAR" at the VMS prompt, where "DDCU" is equal to the directory designation of where the SPEAR.COM file resides. The actual command file would appear as follows for VMS: $ $ $ VMS COMMAND FILE TO RUN SPEAR FIRST RE-QUEUE THE JOB TO RUN TOMORROW $ SUBMIT SPEAR.COM/AFTER:TOMORROW/WSDEFAULT=400/WSQUOTA=O $ $ RUN SYS$SYSTEM:SPEAR SUMMARIZE !FILE NAME !FROM !TO SUMMAR.RPT !GO ANALYZE !FILE NAME !FROM !TO SPEAR.RPT NL: !GO EXIT $ $ $ $ $ $ ! PRINT THE RESULT PRINT SUMMAR.RPT PURGE SUMMAR.RPT/KEEP=l PRINT SPEAR.RPT PURGE SPEAR.RPT/KEEP=l 3-12 SDA.COM This command file is used to make a printable file containing some information from a specified system software dump file. 3-13 $ $ $ $ $ $ $ $ $ SAVE VERIFY= 'F$VERIFY("NO")' Written by Roy D. Fulton, D.E.C. Field Service VERSION := 2.0 SET NOON ON ERROR THEN CONTINUE ON CONTROL Y THEN EXIT TYPE SYS$INPUT This command file examines the desired SOFTWARE Dump file, and creates a file of basic information (about the crash) that can be used for most crash analysis. Answer all questions with a "Y" for YES or an "N" for NO, unless otherwise stated. A "<return>" is equal to a YES. If you require help, simply type a "?" or "H". $ START: $ INQUIRE DMP "What System Dump $ $ ( DDCU:[DIRECTORY]FILENAME.EXT )? " IF DMP . NES. "/H" . AND. DMP . NES . "H" . AND. DMP . NES . "/HELP" .AND. DMP .NES. "HELP" .AND. DMP .NES. "?" THEN GOTO CONTINO TYPE SYS$INPUT Enter the name of the file that you wish to examine and also state the device and directory of where the file is located, in the following format: DDCU:[DIRECTORY]FILENAME.EXT where, = device on which file is stored. DDCU DIRECTORY FILENAME EXT $ $ directory in which dump is located. filename of the dump file. three digit extension of dump file. GOTO START 3-14 $ C:ONTINO: $ IF DMP . EQS . " " THEN DMP :== SYS$SYSTEM:SYSDUMP.DMP INQUIRE TO " .•. You wish to examine ''DMP' ? " IF TO .NES. "Y" • AND. TO .NES. "" .AND. TO .NES. "YES" THEN GOTO START $ PRTOUT: Output to be printed on the SYS$PRINT device?" $ INQUIRE PRT " $ IF PRT .EQS. "Y" .OR. PRT .EQS. "" .OR. PRT .EQS. "YES" THEN PRT := Y $ IF PRT .EQS. "N" .OR. PRT .EQS. "NO" THEN PRT := N $ IF PRT .EQS. "N" .OR. PRT .EQS. "Y" THEN GOTO CONTINI $ TYPE SYS$INPUT $ $ The output will go to a file in your disk area that is equal to the Durnp's filename with an extension equal to "LST". This file can be queued to the SYS$PRINT queue, which is usually a Line Printer queue, if you so desire. Answer this question with one of the following responses: y <return> = N ? H Queue listing to SYS$PRINT device. File is deleted after printing. same as "Y". Do not print the file. File remains in disk area. Displays this help file. same as "?"-- $ WRITE SYS$0UTPUT " The SYS$PRINT device is ''F$LOGICAL("SYS$PRINT")' WRITE SYS$0UTPUT " " $ GOTO PRTOUT $ CONTINI: $ TMP := 'DMP' $ LT= 'F$LENGTH(DMP)' $ AA= 'F$LOCATE(":",DMP)' $ BB = 'LT'-'AA' $ IF AA .NE. LT THEN TMP := 'F$EXTRACT(AA+l,BB-l,DMP)' $ LT= 'F$LENGTH(TMP)' $ AA = F$LOCATE("]" ,TMP) $ BB = 'LT'-'AA' $ IF AA .NE. LT THEN TMP := 'F$EXTRACT(AA+l,BB-l,TMP)' $ LT= 'F$LENGTH(TMP)' $ I I 3-15 " $ AA= 'F$LOCATE(".",TMP) $ IF AA .NE. LT THEN TMP := 'F$EXTRACT(0,AA,TMP)' $ TMP := 'F$LOGICAL("SYS$LOGIN")' 'TMP' .LST $ WRITE SYS$0UTPUT " " $ WRITE SYS$0UTPUT " " $WRITE SYS$0UTPUT " .... Creating ''TMP' ... Please wait $ ANALYZ: $ ON ERROR THEN EXIT $ RUN SYS$SYSTEM:SDA 'DMP' SET OUTPUT 'TMP' SHOW CRASH SHOW PROCESS/ALL SHOW STACK/ALL SHOW DEVICE SHOW SUMMARY SHOW PFN DATA/ALL EXAMINE/PO EXIT I II $ $ ON ERROR THEN CONTINUE $ WRITE SYS$0UTPUT " " $ WRITE SYS$0UTPUT " " $ IF PRT .EQS. "Y" THEN WRITE SYS$0UTPUT TMP' is being queued to ' 'F$LOGICAL ( "SYS$PRINT") ' $ IF PRT .EQS. Y THEN PRINT/DELETE 'TMP' $ IF PRT .EQS. Y THEN GOTO EXITH $ WRITE SYS$0UTPUT Information about ''DMP' $ WRITE SYS$0UTPUT $ WRITE SYS$0UTPUT " is stored in ''TMP'" $ EXITH: $ WRITE SYS$0UTPUT $ WRITE SYS$0UTPUT $ IF SAVE VERIFY THEN SET VERIFY 11 ••••• ' ' 11 11 11 11 11 11 II II II II II II 3-16 11 FP780 Control Programs These programs are used to turn the Floating Point Accelerator noNn or "OFF". These two programs may be created with an editor and then assembled and linked. 3-17 FPAOFF.MAR .TITLE FPAOFF.MAR ;Written by Roy D. Fulton, D.E.C. Field Service , ;This routine "Turns OFF" the Floating Point Accelerator ,. ;This routine needs the "CMKRNL" privilege. START: .WORD $CMKRNL S FPAOFF RET - FPAOFF: .WORD ;get SID Register contents MFPR #"X3E, SID CMPZV #"D24,#"D4,SID,#"Xl BEQL VAX780 CMPZV #"D24,#"D4,SID,#"X2 BEQL VAX780 CMPZV #"D24,#"D4,SID,#"X3 BEQL VAX780 SID: ;is System a VAX-11/780 ;Branch if yes ;is System a VAX-11/750 ;Branch if yes ;is System a VAX-11/730 ;Branch if yes MOVL #"X901,RO RET ;Unsupported Processor Type ;exit routine due to no such processor .WORD .WORD ;holds contents of SID register MTPR #0,#"X28 MOVL #"Xl,RO RET ;Turn off FPA enable on 11/780 ;11/780 successful completion ;exit routine VAX780: .END START 3-18 FPAON.MAR .TITLE FPAON.MAR ;Written by Roy D. Fulton, D.E.C. Field Service , ;This routine "Turns ON" the Floating Point Accelerator . ' ;This routine needs the "CMKRNL" privilege. START: .WORD $CMKRNL S FPAOFF RET - FPAOFF: .WORD MFPR #"'X3E,SID ;get System Identification Register contents CMPZV #"'D24,#"'D4,SID,#"'Xl BEQL VAX780 CMPZV #"'D24,#"'D4,SID,#"'X2 BEQL VAX780 CMPZV #"'D24,#"'D4,SID,#"'X3 BEQL VAX780 SID: ;is System a VAX-11/780 ;Branch if yes ;is System a VAX-11/750 ;Branch if yes ;is System a VAX-11/730 ;Branch if yes MOVL #"'X901,RO RET ;Unsupported Processor Type ;exit routine due to no such processor .WORD .WORD ;holds contents of SID register MTPR #8000,#"'040 MOVL #"'Xl,RO RET ;Turn ON FPA enable on 11/780 ;setup RO. for successful completion flag ;exit routine with FPA off VAX780: .END START 3-19 S E C T I 0 N VAX-11/780 IV BASICS VAX Virtual & Physical Address Space ------------------------------------ VAX-11/780 Physical Addressing VAX Family Virtual Addressing 0 ---------- 0 ---------- ! 00000000 ! ! Avail. ! ! Physical! ! Memory ! ! ! 007FFFFF 00000000 !Program ! Region 8 Mb PO Space ! Physical! Memory ! Addrs. 3FFFFFFF 1 Gb --------- 40000000 ! Control' Region lFFFFFFF 512 Mb ---------- 20000000 I/0 Pl Space Addrs. NEXUS Regs. 7FFFFFFF ,...'--------'"' ==--======-== UJ..1 ---------- 20100000 Unibus ! Space ! (I/0) ---------- 201FFFFF so !Not Used! I/0 Space Space Addrs. BFFFFFFF cooooooo 1 Gb ---------- not used Sl Space 4 Gb ---------- 2001FFFF !Not Used! 80000000 System Region ---------- ---------- 00800000 FFFFFFFF 4-2 3FFFFFFF VAX-11/780 General Registers Assignments Register No. Hex Dec. 00 32 F 15 Program Counter PC E 14 Stack Pointer SP D 13 Frame Pointer FP c 12 Argument Pointer AP B 11 A 10 9 09 8 08 7 07 6 06 5 05 4 04 3 03 2 02 1 01 0 00 •.• Not assigned ... Used in Character and Decimal String instructions. ROO and ROl are also used in POLY & CRC intructions R3,R5 R2,R4 Rl RO - Address Counter in Character and Decimal instructions. - Length Counter in Character and Decimal instructions. - Result of POLYD. Address Counter in Character and Decimal instructions. - Result of POLY,CRC. Length counter in Character and Decimal instructions. 4-3 SUBROUTINE Usage & Operation Subroutines are portions of code that may be used many times within a program at different times. In order to save memory space, this common code can be written as a subroutine and can be called and exited with the instructions listed below. The processor saves the current PC on the STACK whenever a subroutine is called so that the return instruction will know where to return to. The Processor Status Longword is not saved on the STACK when calling a subroutine, nor is it modified by the Subroutine call and return instructions. Three instructions are used for calling a subroutine. as follows: BSBB BSBW They are Branch to subroutine with Byte Displacement. Displaces PC a maximum of +127 or -128 bytes. Branch to Subroutine with Word Displacement. Displaces PC a maximum of +32767 or -32768 bytes. The PC is pushed onto the STACK as a longword. The sign-extended (to 32 bits) branch displacement is added to the PC and the PC is replaced with the result. -(SP) <--- PC PC <--- PC + SEXT Displacement JSB Jump to subroutine. The destination address is calculated from the Operand Specifier byte. The PC is then pushed onto the STACK. Finally, the PC is replaced by the calculated destinati9n address. -(SP) <--- PC PC <--- Destination One instruction is used to return from a subroutine. RSB It is: Return from subroutine Is used to return from subroutines called by the BSBB, BSBW and JSB instructions. The PC is replaced by a longword popped from the STACK. PC <--- (SP)+ Note: RSB is equivalent to JMP @(SP)+, but is one byte shorter. 4-4 PROCEDURE Usage & Operation PROCEDURES are general purpose routines that use argument lists passed automatically by the processor and use only local variables for data storage. A PROCEDURE CALL INSTRUCTION provides several services to the programmer that occur automatically by the processor. A Procedure Call Instruction: Saves all the registers (ROO - Rll), that the procedure uses, before entering the called procedure. This is accomplished by the programmer specifying which registers are to be saved in an ENTRY MASK when the Procedure is written. The ENTRY MASK is the first WORD of a Procedure. Passes an argument list to a Procedure. This is done in two ways. The argument list can be stored anywhere in memory, in which case the CALLG instruction is used, or the list can be stored on the STACK, in which case the CALLS instruction is used. Maintains the STACK, FRAME and ARGUMENT Pointer registers. Initializes the Arithmetic Trap ENABLES to a given state. This is accomplished by the ENTRY MASK. When a PROCEDURE completes execution, it issues the RET (Return from Procedure) instruction. RET uses the Frame Pointer register to find the registers that were saved by the Procedure Call Instruction. It restores the original contents to these registers, cleans up data left on the Stack (including nested routine linkages), and can return values using the argument list or other registers. 4-5 PROCEDURE Usage & Operation (continued) ENTRY MASK Is one Word in length Bits 2 thru 11 select Registers to be Saved upon Procedure Call. A one in the respective bit position SAVES that register before Procedure is executed. Bits 0 & 1 are not normally used by software to save Registers 0 & 1, respectively, due to Procedure Calling standard. They will be saved if you set the respective bit. Bit 15 is used to enable/disable Decimal Overflow (DV). Bit 14 is used to enable/disable Integer Overflow (IV). Bits 12 & 13 must be zero. Is located in First WORD of Procedure. 15 14 13 12 11 10 ENTRY MASK---> !DV!IV! MBZ ! 9 8 7 6 5 4 3 2 1 Registers to Save ARGUMENT LIST An Argument List is simply Data that is needed for the Procedure to use. This list of data may be something like a group of numbers that must be added together by the Procedure. The Argument List may be stored anywhere in memory or it may be stored on the Stack. If the Argument List is stored on the Stack, the "CALLS" Procedure call instruction is used to enter the Procedure. If the Argument List is stored somewhere other than on the Stack, the "CALLG" Procedure call instruction is used to enter the Procedure. 4-6 0 "CALLG" Procedure Call Operation Format: opcode arglist.ab, dst.ab opcode arglist.ab dst.ab "FA" Specifies starting address of Argument List in memory. = Specifies starting address of the Procedure to be entered. = Description: 1. SP is saved in a temporary register and then bits 1:0 are replaced by 0 so that the stack is longword aligned. 2. The PROCEDURE ENTRY MASK is scanned from Bit 11 to 00 and the contents of those registers whose number corresponds to the set bits in the ENTRY MASK are pushed on the Stack as LONGWORDS. 3. The "PC","FP", and "AP" are then pushed on the Stack, also as LONGWORDS. 4. The CONDITION CODES are cleared in the Processor Status Longword (PSL). 5. A LONGWORD is pushed on the Stack containing: the two low bits of the saved SP in Bits 31:30 a 0 in Bits 29 & 28 the low 12 bits of the ENTRY MASK in Bits 27:16 the low word of the PSL in Bits 15:00 with the "T" bit cleared 6. A LONGWORD = 000000 is pushed on the Stack. 7. The "FP" is replaced by the "SP". 8. The "AP" is replaced by the "arglist operand~. 9. The Trap enables are set to a known state in the PSL. IV and DV are setup according to bits 14 & 15 of the ENTRY MASK, respectively Floating underflow bit is cleared T-bit is unaffected 10. The "PC" is replaced by the sum of the destination operand olus 2, which transfers control to the called procedure at the byte beyond the ENTRY MASK. 4-7 "CALLS" Procedure Call Operation Format: opcode numarg.rl, dst.ab opcode numarg.rl dst. ab "FB" number of arguments on stack specifies starting address of the procedure in memory Description: 1. The "numarg" operand is pushed on the Stack as a Longword. Byte 0 contains the number of arguments The High order 24 bits are· used by DEC software 2. The "SP" is saved in a temporary register and bits <1:0> of the "SP" are replaced by 0 so that the stack is Longword aligned. 3. The Procedure ENTRY MASK is scanned from bit 11 to bit 00 and the contents of the registers whose number corresponds to the set bits of the Entry Mask are pushed on the Stack. 4. The "PC","FP", and "AP" are pushed on the Stack as Longwords. 5. The Condition Codes are cleared in the Processor Status Longword (PSL). 6. A LONGWORD is pushed on the Stack containing: the two low bits of the saved SP in Bits 31:30 a 1 in Bit 29 a 0 in Bit 28 the low 12 bits of the ENTRY MASK in Bits 27:16 the low word of the PSL in Bits 15:00 with the "T" bit cleared 7. A LONGWORD= 000000 is pushed on the Stack. 8. The "FP" is replaced by the "SP". 9. The "AP" is set to the value of the Stack Pointer after the "numarg operand" was pushed on the Stack. 10. The Trap enables are set to a known state in the PSL. IV and DV are setup according to bits 14 & 15 of the ENTRY MASK, respectively Floating underflow bit is cleared T-bit is unaffected 11. The "PC" is replaced by the sum of the destination operand plus 2, which transfers control to the called procedure at the byte beyond the ENTRY MASK. 4-8 "RET" Procedure Return Operation Format: opcode opcode "04" Description: 1. The "SP" is replaced by the "FP" plus 4. 2. A Longword is popped from the Stack, and stored in a temporary register, containing: Stack Alignment bits in bits 31:30 CALLS/CALLG flag in bit 29 (1 = CALLS, 0 = CALLG) Low 12 bits of the Procedure ENTRY MASK in bits 27:16 A saved PSW (low order word of PSL) in bits 15:00 3. The "PC", "FP", and "AP" are replaced by Longwords popped from the Stack. 4. A register restore mask is formed from bits 27:16 of the temporary register. 5. Scanning from bit 00 to bit 11 of the restore mask, the contents of the registers whose number is indicated by set bits in the restore mask, are replaced by Longwords popped from the Stack. 6. The "SP" is incremented by 31:30 of the temporary register. 7. The PSW (low order word of PSL) is replaced by bits 15:00 of the temporary register. 8. If bit 29 in the temporary register is a 1 (indicating that the procedure was called by a CALLS instruction), a Longword containing the number of arguments is popped from the Stack. Four times the unsigned value of the low byte of this Longword is added to the "SP" and the "SP" is replaced by the result. 9. At this point, the Return has been executed. continues with at the current PC. 4-9 Program control Procedure Call (CALLS/CALLG) notes: 1. If bits 13:12 of the ENTRY MASK are not 0, a reserved operand fault occurs. 2. On a reserved operand fault, Condition Codes are UNPREDICTABLE ... 3. The procedure calling standard and the condition handling facility require the following register saving conventions: RO & Rl are always available for function return values and are therefore never saved in the Entry Mask. All registers, R2 thru Rll, which are modified in the called Procedure, must be preserved by setting the respective bits in the Entry Mask. 4. When using "CALLS" Procedure Call, normal use is to push the arglist onto the stack in reverse order prior to the CALLS instruction. On RETurn, the arglist is removed from the Stack automatically by the processor. Return from Procedure(RET) notes: 1. A reserved operand fault occurs if the Temporary Register bits 15:08 is not equal to 0. 2. On a reserved operand fault, the condition codes are UNPREDICTABLE. The value of the Temporary Register bit 28 is ignored. 3. The procedure calling standard and the condition handling facility assume that procedures which return a function value or a status code, do so in RO or RO & Rl. 4-10 PROCEDURE CALL Stack Layout *************************** Before execution of a "CALLS", the Procedure Arguments are stored on the Stack as follows. (SP) before arguments pushed. X number of Longwords of Argument List x (AP) & (SP) Typical stack layout as a result of a Call to a Procedure. ----------------------------~--------------------------- (SP) before CALLS/CALLG 0-3 bytes specified by the "SPA" ( S-t-ack- Pe-inter -Alignment) "saved Rll if selected by Mask" Saved General registers. Which registers are saved depends on the set bits in the Entry Mask. "saved ROO if selected by Mask" saved "PC" saved "FP" saved "AP" ! SPA !S!O! MASK<ll: 00> ! saved PSW<l5:05> ! 0 condition handler (initially 000000) 4-11 (FP) & new (SP) VAX-11/780 NATIVE ADDRESSING MODES Many of the modes are very similiar to PDP-11 addressing modes Indexing can be combined with many of the addressing modes Operand Specifier consists of 1 Byte that contains the MODE and the General Register to be used The VAX addressing modes are as follows: Byte --> 0 4 3 7 Operand Specifier Layout mode Rn n = 00 - 15 ! !--> Low Nibble !--> High Nibble Mode Notation Mode Name Description 0-3 S"'#num Literal - Mode and Operand are contained in the same BYTE. Operand is contained in low 6 bits of addressing mode, 5 Rn Register - Rn contains operand. 6 (Rn) Register Deferred - Rn contains Address of the operand. 7 -(Rn) Autodecrement - Rn is first decremented. The resulting Rn contains Address of the operand. 8 (Rn)+ Auto increment - Rn contains the Address of the operand. Rn is incremented after use. 8 #num Immediate (PC) - same as autoincrement mode with Rl5 (PC) used as the general register. 9 @(Rn)+ Auto increment Def erred 9 @#ADDR Absolute (PC) - Rn contains an Address that contains the Address of the operand. Rn is incremented after use. - same as autoincrement tleferred mode with Rl5 (PC) used as the General Reg. 4-12 Mode Notation Mode Name Description A C E - Byte - Word - Longword B"d(Rn) W"d(Rn) L"d(Rn) Displacement - Displacement (Rl5 contains address of Displacement) is first sign extended if Byte or Word displacement is used. Then the displacement value is added to Rn. The resulting value is the Address of the operand. A C E - Byte - Word - Longword B"ADDR W"ADDR L"ADDR Relative (PC) - same as displacement mode with Rl5 (PC) used as the general register. B - Byte D - Word F - Longword @B"(Rn) @W"(Rn) @L"(Rn) Displacement Def erred B - Byte D - Word F - Longword @B"ADDR @W"ADDR @L"ADDR Relative Deferred (PC) 4-13 - Displacement (Rl5 contains address of displacement) is first sign extended if Byte or Word displacement is used. Then the displacement value is added to Rn. The resulting value is the Address of the Address of the operand. - same as Displacement Deferred mode with Rl5 (PC) used as the general register. Indexing (Mode = 4) can be used with the following modes as long Rl5 is not used as the index register: 1. Register Deferred 2. Autodecrement 3. Autoincrement 4. Immediate 5. Autoincrement Deferred 6. Absolute 7. Displacement 8. Relative 9. Displacement Deferred 10. Relative Deferred 4 3 7 0 = 00 - Index Operand Specifier ---> 4 Rx x Base Operand Specifier ---> MODE Rn n = 00 - 15 Mode Notation Register Def erred Indexed Autodecrement Indexed Autoincrement Indexed Immediate Indexed Autoincrement Def erred Indexed Absolute Indexed Displacement Indexed Relative Indexed Displacement Def erred Indexed Relative Deferred Indexed (Rn) [Rx] - (Rn) [Rx] (Rn)+[Rx] #num[Rx] @(Rn)+[Rx] @#ADDR[Rx] disp(Rn)[Rx] ADDR[Rx] @disp(Rn)[Rx] @ADDR[RX] Index Specifiers are physically positioned, in memory, before the Operand Specifier (that is being indexed). 4-14 14 Indexing is accomplished as follows: 1. The contents of the index register is modified by multiplying the contents of the index register by the value that reflects the context of the data type specified. Multiply by 1 for byte 2 for word 4 for longword & F floating 8 for quadword, D & G floating 16 for octaword & H_floating 2. Calculate the Address of the Operand specified by the "Base" Operand Specifier. 3. Add the results of steps 1 & 2 together in order to obtain the "address of the Desired Operand" ... The following restrictions are placed on the Index register Rx: 1. The PC (Rl5) cannot be used as an index register. If it is, a reserved addressing mode fault occurs. 2. If the Base Operand Specifier is for an addressing mode which results in register modification (autoincrement ,autoincrement deferred, or autodecrement) the same register cannot be the index register. If it is, the primary operand address is "UNPREDICTABLE" .•• 4-15 PC (Rl5) Mode Operand Specifiers ******************************** 7 6 5 3 2 1 0 ! 1 1 1 1 ! 4 MODE Operand Specifier Byte Mode Notation Mode Name Description 8 #num Immediate The contents of the address following the Operand Specifier "contains the Operand" ..• START: instruction code operand specifier This address contains --------------> the desired operand .•. 9 @#address Absolute Desired Operand The contents of the address following the Operand Specifier "contains the Address of the Operand" ... START: instruction code operand specifier The contents of this ---------"> "Address of OPERAND" ! address is the address ------------------------of the desired operand ... Address of OPERAND 4-16 Desired Operand PC (Rl5) Mode Operand Specifiers (continued) ******************************** Mode Notation A B"address W"address L"address c E Description Mode Name Byte displacement Word displacement Longword displacement START: The contents of the address following the operand specifier "contains a displacement that, is first sign extended to 32 bits and is then added to the contents of Rl5 to f orrn the address of the Operand" ..• instruction code operand specifier This value is added --------> to the contents of the PC,(which now points to X: location "X"), to form the address of the desired Operand ... Displacement ("Displacement" + "X") Desired Operand 4-17 PC (Rl5) Mode Operand Specifiers (continued), ******************************** Mode Notation Mode Name Description B @B"'address D @W"'address F @L"'address Byte Relative Def erred Word Relative Def erred Longword Relative Def erred The contents of the location following the Operand Specifier when sign extended to 32 bits, is added to the PC to form the "Address of the Address of the Operand" ... START: instruction code Operand Specifier This value is added to the PC, -------> Displacement (which now points to location X), ------------------------and the resultant value is an X: ttAddress that contains the ------------------------Address of the desired Operand" ... ("Displacement" + "X") New Address 4-18 New Address Desired Operand SECTION V ... BUSes used on VAX-11/780 Systems ... SYNCHRONOUS BACKPLANE INTERCONNECT ... The VAX-111780 Bus ... 5-3 S.8.1. Signal Pin Layout Pin - Signal Name Pin - Signal Name Pin - Signal Name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -:- - - -:: -. }"""'." '7)- - - - - - - - - - - - - 1 ABl ACl ADl AEl AMl ANl APl AP2 AS2 AT2 AUl AU2 BF2 BH2 BJl BJ2 BS2 BT2 BUl BU2 CBl CCl CDl CD2 CMl CNl CPl CP2 CS2 CT2 CUl CU2 - BOO - BO 1 - B02 - B03 - B04 - BOS - B06 - B07 - BOB - B09 - BlO - Bll - Bl2 - Bl3 - Bl4 - Bl5 - Bl6 - Bl7 - Bl8 - Bl9 -. B20 - 821 - 822 - 823 - 824 - 825 - B26 - 827 - 828 - 829 - 830 - 831 DF2 DH2 - PO - Pl - UNJAM - ALERT - FAULT DBl DCl DDl DD2 - FAIL .A-C.. Lu -t"e 1EPl - DEAD IJL l <) (.1 ;.:) EP2 , EUl - MO - Ml ES2 - M2 ET2 - M3 DMl DNl DPl - TAGO - TAGl - TAG2 DP2 DS2 DT2 DUl DU2 - IDO - ID4 EBl ECl EDl ED2 - EFl EF2 - TP H - TP L FBl FCl FDl FEl FF2 FH2 FJl FJ2 FMl FNl FPl FP2 FS2 FT2 FUl FU2 - TROO TROl TR02 TR03 TR04 TROS TR06 TR07 TR08 TR09 TRIO TRll TR12 TR13 TR14 TR15 EH2 EJl EJ2 EK2 - *A2 *Vl - +5V +SV EMl ENl - MPl - MP2 FAl - INTLK *C2 *Hl *N2 *Tl - GND GND GND GND CV2 DAl - IDl ID2 ID3 REQ4 REQ5 REQ6 REQ7 PCLK H PCLK L PDCLK H PDCLK L - CNFO - CNFl All Signals are Low when True unless otherwise specified Signals are found on slot #1 of any NEXUS ... 5-4 SBI I CPU Time State Equivalents The VAX-11/780 CPU and SBI time states have different names. M8232 LED CPU Time State Dl (top) D2 D3 D4 (bottom) CPTO CPTl CPT2 CPT3 CPTP CPPCLK CPPDCLK SBI Time State SBI Tl SBI T2 SBI T3 SBI TO SBI TP SBI PCLK SBI PDCLK SB! TO clock time 1. Nexus that has control of the SBI enables the SBI Drivers at this time. 2. TR Lines are asserted by the NEXUS wishing use of the SBI Bus. SB! Tl clock time 1. NEXUS dependent. SB! T2 clock time 1. "ALL" NEXUS open their Receiver Latches at this time. SB! T3 clock time 1. "ALL" NEXUS clock their Receiver Latches at this time. 2. All NEXUS who have their TR Line asserted, determine if they are next in line to get control of the SBI Bus at the next "SBI TO" time. 5-5 S.8.1. WRITE Transfer example to show timing I 1st Cycle I 2nd Cycle I 3rd Cycle I 4th Cycle I 5th Cycle 6th TO Tl T2 T3 ITO Tl T2 T3 ITO Tl T2 T3 TO Tl 1------------1------------ ------------1------------1------------ -----ITO Tl T2 T3 ITO Tl T2 T3 1------------1------------ -----.------1------------1------------ ------ I R I Requester B I asserts I assigned T TR line R A T I O N A I I If Highest I Priority, !assigned TR lis dropped, land TR#O is !asserted to I hold next I cycle for I the WRITE I DATA. I I TR#O is I If function deasserted, I was an EXT. UNLESS func. WRITE, TR#O was an would be EXTENDED deasserted WRITE - in here. which case TR#O will remain asserted ------------!------------ ------------ ------------ ------------ ------ I N F 0 R N A M I 0 N If function TAG<2:0>=? ITAG = C/A TAG = Write was an EXT. I Data WRITE, the ID<4:0> =? IID =source ID = code of 2nd longword I B<31:00>=? IB =Func/Addr commander would be sent here. I M<3:0> = ? IM =Bytes to B = Data Format would be same as I be written M = Bytes to the previous I be written Write Data I cycle. I I 1------------1------------1------------ ------------ ------------ -----CNF c I I I o I I I I for I I I R ICNF<l:O> M I A I T I I I o I I I I ?ICNF<l:O> I I I I I I I I ?ICNF<l:O> I I I I I CNF=response CNF=responselsecond from the from the !Write destination! destinationlData ? to verify I to verify llongwd acceptance I acceptance lif of C/A I of the I func information! Write Data lwas an I IEXT. I IWrite N 1------------1------------1------------ ------------!------------!------ N F I 5-6 VAX-11/780 INTERNAL DATA BUS ID BUS 5-7 ID Bus chart showing what Modules are fed by what bits Name MODULE Number ID Bus Bits Slot 0-7 8-15 16-20 21-25 x x 26-31 -----!-----------!---------!------- --------!------- -------!-------! TRS M8237 1 X X ! -----!-----------!---------!------- --------!------- ------- _______ , SBL M8218 2 ! X X -----!-----------!---------!------- --------!------- ------- ------SBH M8219 3 ! X X X X -----!-----------!---------·------- --------!------- ------- ------M8220 4 CAM x --------!------- -----------!-----------!--------x x x ! TBM M8222 6 -----!-----------!--------- -------!--------!-------!------- -------! IDP M8223 7 X X ! X ! X X -----!-----------!--------- -------!--------!-------!------- -------! IRC M8224 8 X ! X ! X ! X X -----!-----------!~-------- -------!--------!-------!------- -------! x DEP M8226 10 x x -----!-----------!--------- -------!--------!-------!------- -------! DDP M8 2 2 7 11 ! X ! ! ! -----!-----------!--------- -------!--------!-------!------- -------! DCP M8228 12 X ! -----!-----------!--------- ------- --------!-------!------- -------! CEH x x M8230 14 x x -----!-----------!--------- ------- --------!-------!-------!-------! x x ICL M8231 15 ________ , _______ -------!-------! -----!-----------!--------ocs M8233/8 18 x x x x ! x ------- -------!-------! -----!-----------!--------t wcs M8233/8 20 -----!-----------!--------PCS M8234 22 x x x x ! x ------- -------!-------! x x ! x -----!-----------!---------!------- -------- ------- -------!-------! USC M8235 23 x x -----!-----------!---------!------- --------!------- -------!-------! FMH M8286 25 ! ! X X X -----!-----------!---------!------- --------!------- -------!-------! FML M8287 26 ! X X ! ! ! -----!-----------!---------!------- --------!------- -------!-------! CIB M8236 29 ! X X X X X -----!-----------!---------!-------!--------!------- -------!-------! I 5-8 ID Bus Parity bits chart showing who uses th·ese bits The ID Bus has 4 parity bits ("Bus ID PTY <3:0>"), however, only one board generates parity and only two others use these bits to check the parity. The following chart show who these modules are that generate (G) and use (U) these parity bits. Name Module Number Slot TBM M8222 6 ------!----------!------- ------!----------!------- CAM ! M8220 ! "Bus ID PTY" bits <O> I <l> ! <2> ! <3> u -----!-----!-----! u ! u ! ! -----!-----!-----! 4 ! u ------!----------!-----------!-----!-----! DBP M8225 9 G G G G ------!----------!-------!----- -----!-----!-----! Signal Pin and Row number ! CBl CMl ! ASl ! AU2 ! --------------------------!-----!-----!-----!-----! ID Bus bits <31:00> Backplane Pin list The ID Bus bits go to the same pin row and pin number on each of the modules that they feed. The following chart shows the row and pin number of each ID bus bit: Bus ID bit <00> Bus ID bit <01> Bus ID bit <02> Bus ID bit <03> Bus ID bit <04> Bus ID bit <OS> Bus ID bit <06> Bus ID bit <07> Bus ID bit <08> Bus ID bit <09> Bus ID bit <10> Bus ID bit <11> Bus ID bit <12> Bus ID bit <13> Bus ID bit <14> Bus ID bit <15> - CAl CB2 CEl CE2 CFl CF2 CH2 CJl Bus Bus Bus Bus Bus Bus Bus Bus Bus Bus Bus Bus Bus Bus Bus Bus CJ2 CKl CK2 CM2 DRl DR2 DSl DV2 5-9 ID Bit <16> ID Bit <17> ID Bit <18> ID Bit <19> ID Bit <20> ID Bit <21> ID Bit <22> ID Bit <23> ID Bit <24> ID Bit <25> ID Bit <26> ID Bit <27> ID Bit <28> ID Bit <29> ID Bit <30> ID Bit <31> - AF2 AH2 AJl AMl ANl APl AP2 AS2 AT2 AUl BF2 BH2 BJl BJ2 BKl BK2 S E C T I 0 N U N IX ERR 0 R VI REPORTING To be added in a later release. S E C T I 0 N Miscellaneous VII Information Using EVSBA.EXE , the Diagnostic Autosizer. *************************~***************** EVSBA is an autosizing program that runs under the Diagnostic Supervisor (ESSAA.EXE) in stand-alone mode. This program will determine the current configuration of the VAX System. It sizes the VAX system and builds a data base of Diagnostic Supervisor ATTACH commands based on the hardware it found during the sizing process. This ATTACH information can then be passed to the Diagnostic Supervisor. The operator can cause the system to be sized completely automatically or can perform the sizing operation in MANUAL or SELFTEST mode. In MANUAL or SELFTEST mode, the operator has the capability to change device names or other device parameters before the information is passed to the Diagnostic Supervisor. If the QUICK flag is set in the Diagnostic Supervisor, no check is made for terminals on the DZll's, so the program runs very quickly. The Autosizer program will probe the system buses to determine what devices are connected to the system. Each bus requires a different technique to determine which devices are present. On the SBI each adapter has a type code in the configuration register which clearly identifies the adapter type. Similiarly, each MASSBUS device contains a register which uniquely identifies the device type. The UNIBUS is the most complicated because of floating CSR and VECTOR assignments in addition to fixed CSR's and VECTOR's. Each device optionally requires extra information in order for a diagnostic to verify its operation. The Autosizer will attempt, on a device by device basis, to glean the required information from the device itself. This, of course, assumes that the hardware involved is operating properly. The information gathered by the sizing process can be edited by the operator to fix any errors in sizing. It can then be fed to the Diagnostic Supervisor. The information generated by the Autosizer can be written to an ASCII script file on the Console Floppy. The A~tosizer will size the system bus first to determine what adapters are present. Next, each adapter is considered. Every device on the adapter is probed and the information saved as to characteristics and addresses. If a device has units connected to it, each unit is sized and appropriate information is saved. If fields are required for the ATTACH command and the information cannot be determined from the device the Autosizer will use a predefined value for the field. When this occurs, the operator will be notified that the field may be incorrect for that device. 7-2 EVSBA Autosizer Default Mode Operation: DS> SET FLAG QUICK DS> RUN EVSBA This will cause the Autosizer to size the hardware, pass the information to the Diagnostic Supervisor, and exit back to the Diagnostic Supervisor. No modification of the ATTACH commands as generated by the Autosizer can be done. EVSBA Autosizer MANUAL or SELFTEST Mode Operation: In MANUAL or SELFTEST mode, the operator is immediately prompted with "COMMAND?". The operator is given the option of reading the current configuration file from the console floppy or of automatically sizing the system. In either case, the operator is then given an opportunity to change o~-list any device or paiameter. When sizing in the selftest mode, each line is printed as it is produced. Once satisfied with the configuration, the operator may have it passed directly to the Diagnostic Supervisor. The file may also be written to the Console Floppy. An example of using the Autosizer whenever you are making configuration changes, while isolating a problem, could be as follows: >>> LOAD ESSAA.EXE/ST:FEOO >>> START 10000 DS> SET QUICK DS> RUN EVSBA/SEC:SELFTEST COMMAND>SIZE COMMAND> ATTACH COMMAND> EX IT DS>SELECT ALL ;Load the Diagnostic Supervisor. ;Start the Diagnostic Supervisor. ;Elimate "Terminal" autosizing. ;Run Autosizer in "SELFTEST" mode. ;Autosize the system and list. ;Transfer configuration to Diag.Super .. ;Return to Diag. Super •• ;Select attached devices. 7-3 EVSBA Autosizer Commands for MANUAL or SELFTEST Mode: READ f ilespec - This command reads the specified file from the load device and stores the information. If the filename is not specified, "CONFIG.COM" is used. Any information previously known to the Autosizer is lost. SIZE - Performs the process that sizes the buses and records the configuration information. Any information previously known to the Autosizer is lost. LIST device - Type out all information about the devices, based on generic names. HELP - Type out the help test. WRITE filesp - Write the current file in memory to the Console floppy. If no f ilespec is given, "CONFIG.COM" will be used. CHANGE devi~e-f ield-value - The specified field(s) for the specified device are given the values specified. EXIT - Control is returned to the Diagnostic Super .. ATTACH - For each device in the device database, pass the information to the Diagnostic Supervisor. 7-4 S tandard P erformance E rror A nalysis R eporting ********************************************************** SPEAR is a library of five on-line Field Service maintenance functions. Four of the functions (Analyze, Summarize, Retrieve, and Compute) are designed to help you evaluate system performance and analyze the content of system event files. The fifth function, Instruct, is designed to help you learn to use the the Spear Library to calculate system availability and isolate intermittent system failures. RETRIEVE - extracts and translates (or saves) system event file entries. SUMMARIZE - summarizes the contents of system event files. ANALYZE - attempts to localize the cause of intermittent system failures. COMPUTE - calculates system availability and crash and uptime statistics. INSTRUCT - explains how to use the extended Spear Library functions. SPEAR was designed with ease of usage in mind. This is accomplished by making help information available to each question. At the SPEAR prompt, you can type: 1. "?" to list the supported Spear Library functions. 2. the "name" of the Spear Library function that you want to execute. 3. "/HELP" for an explanation of the universal Spear Library switches. 4. "@HELP" for information about response streams and indirect files. 5. "EXIT" to exit Spear and return to the operating system. 7-5 S P E A R ********* At any function prompt you can type: /BREAK to return to the Spear prompt. /REVERSE (or press the BACKSPACE key) to repeat the last prompt. /SHOW to display the current prompt/responses list. /GO to execute the current prompt/response list. /CLEAR to clear listed items, at or subordinate to, the current prompt Listed items are: sequence numbers, entry codes, device types, etc. /? to display this list without the explanations. Type @HELP for information about Response Streams and Indirect Files. Press the RETURN key to specify the default or terminate a response. Press the ESCAPE (or Altmode) key to: display the default, or complete a partially typed response. There is no default at the SPEAR> prompt. You can enter a response stream at the main Spear prompt. A response stream is a single line of consecutive responses, separated by spaces, and terminated with a carriage return (use the Escape or Altmode key to insert defaults). Note: The response stream capability is included only as a convenience for those S~ear users who do not wish to be prompted. 7-6 Possible Input files Possible Output files SPEAR program May be sent to your TTY: The S P E A R "Program SYSTEM EVENT FILE REPORT FILE !----------> --------->! !Main purpose !All SPEAR is to ! command Always ASCII translate a ! modes non-ASCII !output some! format Event file ! type of ! report. to a -----------! readable, ! !ASCII format,! !REPORT File. ERRLOG.SYS. or ERROR.SYS ! or renamed ! .event file! Can also be used to Possible perform an output HISTORY ! analysis of ! from file !an EVENT file! RETRIEVE. based upon its known Contains !--------->! theories. ----------> sorted Events. ! May be Can compute !used as an! OPERATING Is a !Event file! SYSTEM Binary input to !Availability. File. SPEAR. ! ! Can be Sorted and/or Merged. ----------!AVAIL.SYS ! (TOPS-10) Contains CONTRACT Coverage & & !NOTIFY.SYS ! ! Used to !calculate System Uptime via COMPUTE command. Reload info. !---------> Info. is ! updated ! by the !Customer and/or Field ------------ Service Possible Commands are: SUMMARIZE RETRIEVE INSTRUCT ANALYZE COMPUTE KLSTAT EXIT @HELP /HELP ? 7-7 HISTORY file Contains sorted Events. Is a Binary File One of the! PACKET OUTPUTS file from ANALYZE. Contains sequence ---------->! #'s of ! Events. ·! ASCII file ************************************************** Example of How to initiate the SPEAR program ! on a VAX/VMS System. ************************************************** Username: Password: FIELD Welcome to VAX/VMS version V3.0 on node NEDVAX $ RUN SYS$SYSTEM:SPEAR or $ MCR SPEAR Welcome to SPEAR for VMS, Version 1(35) Type "?" for help. SPEAR> At this Point you may enter the appropiate SPEAR command. If you don't know the commands, simply type "?" and a brief help file will be typed out showing the ava"ilable commands to this prompt. SPEAR> ? Enter one of the following modes Instruct in the usage of SPEAR Retrieve individual event file entries Analyze ? system event file Compute system availability ststistits Summarize various event counts EXIT to exit from SPEAR (if at SPEAR> prompt) For more info type /HELP For further information type: HELP SPEAR> The commands to the SPEAR prompt can be abbreviated to one character as follows: Analyze Retrieve Compute Summarize Instruct Exit = = = A R c s I E 7-8 Summary of QUESTIONS asked by SPEAR *********************************** SUMMARIZE question. Event File (SYS$SYSDISK:[SYSERR]ERRLOG.SYS) Time from (EARLIEST): Time to (LATEST): Report to (SUMMAR.RPT) Type [er] to confirm (/GO): RETRIEVE questions. Event File (SYS$SYSDISK:[SYSERR]ERRLOG.SYS) Selection to be (INCLUDED): Selection type (ALL): Error class (ALL): Sequence numbers: Event codes: Next error class (FINISHED): Time from (EARLIEST): Time to (LATEST): Output mode (ASCII): Report format (SHORT): Output to (RETRIE.RPT): Type [er] to confirm (/GO): ANALYZE questions. Event File (SYS$SYSDISK:[SYSERR]ERRLOG.SYS) Time. from (-1): Time to (LATEST): Report to (Amrndd.RPT): Packets to (Ammdd.PAK): Type [er] to confirm (/GO): COMPUTE questions. Event File (SYS$SYSDISK:[SYSERR]ERRLOG.SYS) Report period (LAST-WEEK): Availability report to (COMPUT.RPT): Reload report to (RELOAD.RPT): Type [er] to confirm (/GO): 7-9 Examining Unibus Registers ************************** It is sometimes a pain in the neck to recalculate the SBI physical address of Unibus Devices while trouble-shooting. Here is a method of examining/depositing Unibus Device Registers that eliminates the need to calculate the SBI physical address. Set up CONSOL.SYS as follows: >>> SET DEFAULT HEX >>> SET REL:20100000 >>> SET DEFAULT OCTAL,WORD,PHYSICAL Just in case not already set. Set offset for UBA at TR #3. Change defaults for exam/dep Now you can examine/deposit Unibus Device registers by specifing the Unibus Device Address. For example, to examine the LPll status reg., simply type the following to the CONSOL.SYS prompt: >>> E 777514 ( LPll) LPll Diagnostic check under VMS ******************************* The Line Printer diagnostic must be run under VMS. In order to do this, the Line Printer Queue must first be stopped,(if there is a Line Printer queue on your particular system). The following commands are used to stop the queue fer LPAO:. If you are testing another printer, use the appropriate designation. $ STOP/QUEUE/NEXT LPAO: $ DELETE/QUEUE LPAO: S RUN ESSAA OS> @CONFIG OS> RUN EVAAA To Restore LPll queue ********************* After the Line Printer diagnostic is run, you must now restart the Line Printer Queue. Use the following commands: $ INIT/QUEUE/FLAG LPAO: $ START/QUEUE LPAO: 7-10 Defining and Starting Print queues (LPll) ***************************************** The following commands can be used to initialize Print queues. If you want to initialize a queue for a device other than "LPAO:", simply replace "LPAO:" with the appropriate designation. $ SET PRINTER/PAGE=64/LP11 LPAO: $ SET DEVICE/SPOOL LPAO: $ INIT/QUEUE/FLAG/GENERIC SYS$PRINT $ INIT/QUEUE/FLAG LPAO: $ START/QUEUE SYS$PRINT $ START/QUEUE LPAO: Defining and Starting Terminal queues (LA36) ******************************************** The following commands can be used to initialize queues for terminals: $ INIT/QUEUE/TERM TTXY: (XY = Terminal name) $ SET TERM/PERM/LA36/PAGE=66/NOBROADCAST TTXY: $ SET DEVICE/SPOOLED=TTXY: TTXY: $ START/QUEUE TTXY: Bugcheck or Crash Restart with message: "UNEXPECTED UNIBUS ADAPT. INTERRUPT" **************************************************************** RO thru R5 contain the following information: RO = UBA CONFIGURATION REGISTER Rl = UBA CONTROL REGISTER R2 = UBA STATUS REGISTER R3 UBA DIAGNOSTIC CONTROL REGISTER R4 = UBA FAILED MAP REGISTER R5 = UBA FAILED UNIBUS ADDRESS REGISTER 7-11 Interleaving Memories ********************* The following commands can be entered to CONSOL.SYS in order to interleave two MS780 memories (memories must be at TR#l and TR#2). >>> >>> >>> >>> D 20002000 D 20002004 D 20004000 D 20004004 101 4000 101 4000 Booting with CACHE Disabled *************************** The following commands can be entered to CONSOL.SYS in order to boot the SYSTEM with CACHE Disabled: D/ID lD 18000 D RO 0/N:5 D Rl 8 D FP 0 D/I 11 20003800 D SP 200 L VMB.EXE/ST:200 >» D PC 200 >>> CONT >>> >>> >>> >>> >>> >>> >>> 7-12 H7100 Power Regulator LED's *************************** The following chart shows what the LED's on the front of the H7100 Power Regulators mean: LED indicator Description POWER NORMAL Power is O.K •• PLUG IN REGULATOR FAILURE Problem with one or more of the following regulators: +5 +5B or -5B +12 OVER CURRENT +5v at 120 amps or more. (120% over). OVER VOLTAGE +5v is +6.2v or greater. POWER INVERTER FAILURE Main +5v failure. OVER TEMP Internal Temperature at 150 degrees F or more. 7-13 M8232, Clock Board, Jumpers *************************** Wl thru Wl4 Installed when FP780 is installed. W23, W24 Installed when Optional WCS is installed. Optional WCS is in slot 18. Wl5, Wl6 Installed to ENABLE FAIL/DEAD onto SBI if there is a Power Failure. Wl7 thru W22 Installed to ENABLE SBI Clock signals onto SBI Bus. Wl5 thru W22 REMOVED only when the associated CPU receives its clock signals from another device on the SBI, such as a second CPU. 7-14 LSI-11 Controls and Indicators ****************************** DC ON Illuninates when the DC ON/OFF toggle switch is set to ON and proper DC output voltages are being produced by the LSI power supply. If either the +5v or +12v outputs from the LSI are faulty, the DC ON indicator does not go on. RUN Illuminates when the LSI-11 processor is in the run state (refer to ENABLE/HALT) DC ON/OFF When set to ON, enables the DC outputs. The DC ON indicator illuminates if the DC output voltages are of proper values. When set to OFF, the DC outputs are disabled and the DC ON indicator is extinguished. ENABLE/HALT When set to ENABLE, the B HALT L line is not asserted and the processor is in the run mode (RUN indicator illuminated). When set to HALT, the B HALT L line is asserted allowing the processor to execute the console ODT microcode (RUN indicator is extinguished). LTC ON/OFF When set to ON, enables the generation of the Line Time Clock "BEVNT L" signal. 7-15 VAX-11/780 Controls and Indicators ********************************** AUTO RESTART When in the ON (down) position, the VAX-11/780 CPU is restarted·automatically following a Power' Recovery or Error Halt. BOOT When pressed, the operation system is bootstrapped. When the bootstrap operation is completed, the console is set to the "Program I/O" mode of operation. ATTN When lit, indicates that the VAX-11/780 CPU is halted. RUN When lit, indicates that the VAX-11/780 CPU is strobing interrupts (microcode running properly). POWER When lit, indicates that the +5v power supply is on. REMOTE When lit, indicates that remote access is enabled. Key Switch OFF In this position, the power is turned OFF. LOCAL DISABLE In this position, Remote access is disabled and Console I/0 mode is inhibited. LOCAL In this position, Remote access is disabled, but Console I/0 mode is not inhibited. REMOTE DISABLE In this position, Remote access is enabled and Console I/O mode of operation is inhibited. REMOTE In this position, Remote access is enabled and the Console I/O mode is not inhibited. 7-16 MS780/MA780 Error Correction Logic ********************************** The ECC (Error Correction Logic) within the MS780 and the MA780 can give you false indications in a couple of special cases. 1. If the MOS Array outputs an "ODD MULTIPLE number of BAD Bits"' to the MOS DATA bus on a memory read, the Memory's Error Correction logic·will send the DATA to the SBI as "Corrected Read Data" (after making an attempt to correct a bit, which may be a bit that wasn't even bad in the first place). For example: 2. If the MOS Array outputs a quadword with 3, 5, 7, 9, or etc. bad bits, the Error Correction Logic will think that a Single Bit Error has occured, will correct a bit (possibly not even one that was really bad), and will then send the data to the SBI as "Corrected Read Data". If a "Single Bit Error" has occured and has not been serviced before a "Double Bit Error" occurs in the same memory controller's arrays, the registers will contain information about the "Single Bit Error" and the information about the "Double Bit Error" will be lost. EVKAA.EXE ********* This diagnostic is a valuable diagnostic that should be run after the running of the micro-diagnostics and before attempting to run the "Diagnostic Supervisor". This diagnostic is a VAX macro functional diagnostic and does not use the "Diagnostic Supervisor". Run this program as follows: >>> LOAD EVKAA.EXE/ST:O >>> START 200 Sometimes, when restarting EVKAA, the "DS>" prompt will appear on the Console Terminal. This is caused by the APT control flag, bit 31 of physical location FEOO, being set. Clear this control flag and restart EVKAA as follows: DS> "P >>> HALT >>> D/L/P/H FEOO 0 >>> START 200 7-17 S E C T I 0 N NEXUS Register Bit VIII Definitions This chapter contains the definitions of the NEXUS registers as defined by the individual NEXUS manuals. The purpose of this chapter is to provide all the bit definitions in one place since the VAX Maintenance guides do not include the definitions of the NEXUS register bits. This information was copied from the various VAX-11/780 NEXUS Hardware manuals and microfiche. DW780 Configuration Register CNFGR Offset 8-3 = 000(16) Bit 31, Parity Fault (PAR FLT) Is set shen the UBA detects an SBI parity error. Bit 30, (WSQ FLT) Write Sequence Fault Is set when the UBA receives a write masked or interlock write masked command and does not receive the expected write data in the following cycle. Bit 29, Unexpected Read Data Fault (URD FLT) Is set when the UBA receives data for which a read masked, extended read, or interlock read masked command has not been issued. Bit 28, (ISQ FLT) Interlock Sequence Fault Is set when an interlock write masked command to UNIBUS address space is received by the UBA without a previous interlock read masked command. Bit 27, Multiple Transmitter Fault (MXT FLT) Is set when the UBA is transmitting on the SB! and the ID bits transmitted by the UBA do not match those latched from the SBI. The lack of correspondence indicates a multiple transmitter condition. Bit 26, Transmit Fault (XMT FLT) Is set if the USA was the transmitter dur~ng a detected fault condition. When the software subsequently reads the configuration and status registers of each of the nexus on the SBI in order to identify the source of the fault, the USA will be identified as that source if bit 26 is set. Bit 25,24 Reserved Should be cleared (zero). Bit 23 (AD PDN) Adaptor Power Down Is set when the USA power supply asserts ACLO. It is cleared by writing a one to the bit location or when the Adaptor Power Up bit is set. 8-4 Bit 22 Adaptor Power Up (AD PUP) Is set by the negation of power supply ACLO. It is cleared by writing a one to the bit location or by the setting of the Adaptor Power Down bit. Bits <21:19> Reserved Should be cleared (zero). Bit 18 (UB INIT) Unibus Init Asserted The assertion of UNIBUS INIT will set this bit. It is cleared by the setting of the Unibus Initialization Complete bit or by the writing of a one to this bit location. Bit 17 (UB PDN) Unibus Power Down Is set when UNIBUS ACLO is asserted. It indicates that the Unibus has initiated a power down sequence. The setting of the UBIC bit or writing a one to this location will clear UB PDN. Bit 16 Unibus Initialization Complete (UBIC) Is set by a successful completion of a power up sequence on the UNIBUS. It is the last of the status bits to be set during a UBA initialization sequence, and it can be interpreted to mean that the UBA and the UNIBUS are ready. The assertion of Unibus INIT, or the writing of a one to this bit location will clear UBIC. Bits <7:0> Adaptor Code Bits 5 & 3 = 1 Bits 7,6,4 & 2 = 0 Bits <1:0> are determined by backplane jumpers and reflect the UBA number. The adaptor codes indicate the starting address of the Unibus address space associated with the UBA. 8-5 DW780 Control Register UACR Offset 8-7 = 004(16) Bit 31 Reserved -------------------~-- Should be cleared (zero). Bits <30:26> Map Register Disable (4:0) (MOR) This field of five read/write bits disables map registers in groups of sixteen, according to the binary value contained in the field. The MRD bits prevent the UBA from responding to a UNIBUS address that points to a disabled map register. The software will load this field with a binary value equal to the number of 4k word units of memory attached to the UNIBUS. DMA transfers to addresses pointing to disabled map registers are not recognized by the UBA. No error bits are set and no SBI transfers are initiated. However, SBI access to disabled map registers is permitted. The MRD field is initialized as zero, with all map registers enabled. Note, however, that in the initialized state the map registers are all invalid. False UNIBUS transfers are prevented in this way. Bits <25:07> Reserved Should be cleared (zero). Bit 5 Bus Request Interrupt Enable (BRIE) When this bit is set it allows the UBA to pass interrupts from the UNIBUS to the VAX CPU, providing that the IFS is set~ The power up state of the BRIE bit is 0. The bit is also cleared by the Adaptor !NIT, SBI UNJAM, and SBI DEAD signals. Bit 4 UNIBUS to SBI Error Field Interrupt Enable (USEFIE) This bit enables an interrupt request to the VAX CPU whenever any of the following status register bits are set on a OMA transfer: RDTO RDS CXTER CXTMO DPPE IVMR MRPF Read Data Timeout Read Data Substitute Command Transmit Error Command Transmit Timeout Data Path Parity Error Invalid Map Register Map Register Parity Failure The power up state of this bit (USEFIE) is 0. INIT will clear USEFIE. 8-8 SBI UNJAM and Adaptor Bit 3 SBI to UNIBUS Error Field Interrupt Enable (SUEFIE) If this bit is set, the UBA will generate interrupt requests to the VAX CPU when one of the two bits in the SBI to UNIBUS data transfer error field of the status register is set: Unibus Select Timeout Unibus Slave Sync Timeout UBS TO UBSSYNTO - The power up state of the SUEFIE bit is 0. Adaptor INIT will also clear this bit. Bit 2 Configuration Interrupt Enable SBI UNJAM, SBI DEAD, and (CNFIE) If this bit is set, the UBA will initiate an interrupt request to the VAX CPU whenever any of the environmental status bits of the Config. register is set. These bits are: AD PDN AD PUP UB INIT UB PDN UBIC Adaptor Power Down Adaptor Power Up Unibus Init Asserted Unibus Power Down Unibus Initialization Complete The power up state of the CNFIE bit is a 1. Adaptor INIT, SBI UNJAM, and SBI DEAD. Bit 1 UNIBUS Power Fail CNFIE is cleared by (UPF) When set, it initiates a power fail sequence on the UNIBUS, asserting ACLO, DCLO, and INIT in their proper sequence. The software uses this bit to initialize the UNIBUS. The UNIBUS will remain powered down as long as UPF is set. The clearing of the UPF bit will initiate a UNIBUS power up sequence if or when the UNIBUS power down sequence has finished and UNIBUS power is OK. Thus, the software can initialize the UNIBUS by setting and the clearing the UPF bit. Bit 0 Adaptor INIT (ADI NIT) When this bit is set it will completely initialize the UBA and the UNIBUS. The map registers, the data path registers, the status reg., and the control register will be cleared. The UBA will start the initialization routine in the microsequencer, and it will generate a power fail sequence on the UNIBUS. The UBA initialization sequence takes only 500 microseconds to complete, while the UNIBUS power fail sequence requires approximately 25 milleseconds. 8-9 Only the configuration register and the diagnostic control register can be read during the adaptor initialization sequence. Only the configuration register, the diagnostic control register, the control register, and the status register can be written during the adapter initialization sequence. Once the sequence has been completed, all UBA registers can be accessed. However, the UNIBUS cannot be accessed until the UNIBUS initialization has been completed as well. The software can test for this condition by reading the UBIC bit of the configuration register, or by setting the CNFIE bit of the control register and looking for the interrupt generated by the setting of the UBIC bit. Note, however, that the assertion of either UNIBUS !NIT or UNIBUS power down will also initiate an interrupt (UBINIT). The Adaptor INIT bit can be set by writing a one to the bit location; it is self clearing. 8-10 DW780 STATUS Register USAR Offset 8-11 = 008(16) Bits <31:28> Reserved and zero. Bits <27:24> BR Receve Vector Register Full Bit 27 BRRVR 7 Full Bit 26 = BRRVR 6 Full Bit 25 = BRRVR 5 Full Bit 24 = BRRVR 4 Full These bits indicate the state of the SBI addressable BRRVR's. Each bit is loaded into the corresponding BRRVR during a UNIBUS interrupt transaction, providing that the SBI processor is fielding UNIBUS device interrupts. Each bit is cleared by the successful completion of a read data transmission following a read BRRVR command. The software will see these bits set only after a read data failure has occurred during the execution of a read BRRVR command and the UNIBUS interrupt vector has been saved by the UBA. These bits are cleared only by a subsequent read to the corresponding BRRVR or by an adaptor initialization sequence. Bits <23:11> Reserved and zero. Bit 10 Read Data Time Out (RDTO) The UBA sets the RDTO bit when the following contitions are true: A UNIBUS device has initiated a DMA transfer. The UBA has successfully transmitted a read command on the SBI. The SBI memory has not returned the requested data within 100 microseconds, and the UNIBUS device has not timed out. Note that the normal UNIBUS timeout is 10 microseconds and after the 10 microseconds, the UNIBUS device will set its non-existent memory bit. 8-12 Thus, the RDTO bit will be set in the UBA status register only if the UNIBUS device timeout function is inoperative, or takes more than 100 microseconds to timeout. This bit is not set for a BDP to SBI pref etch. Bit 9 Read Data Substitute (RDS) This bit is set if a read data substitute is received in response to a UNIBUS to SBI read command (DMA read transfer). No data will be sent to the UNIBUS device, and when the device timeout occurs it will set the non-existent memory bit in the device's register. Bit 8 Corrected Read Data (CRD) The UBA sets this bit when it receives corrected read data in response to an SBI read command during a DMA read transfero Bit 7 Command Transmit Error (CXTER) The UBA sets this bit when it receives an error confirmation in response to an SBI command transmission during a UNIBUS to SBI access, a BDP to SBI read, a BDP to SBI write, or a PURGE operation. This bit is not set for a BDP to SBI prefetch. Bit 6 Command Transmit Timeout (CXTMO) The UBA sets this bit when it fails to complete an SBI command transfer within 100 microseconds for any of the following operation: a BDP to SBI write a BDP purge operation a BDP to SBI read operation for which the UNIBUS device has not timed out This bit is not set for a timeout for a EDP to SBI prefetch. 8-13 Bit 5 Data Path Parity Error (DPPE) This bit is set when a parity error in a buffered data path occurs during either a UNIBUS to BOP read, BOP to SBI write, or a BOP purge operation. Bit 4 (IVMR) Invalid Map Register The UBA sets this bit during a UNIBUS OMA transfer or purge operation when the UNIBUS address points to a map register that has not been validated by the software and has not been disabled by the MRD bitse Bit 3 Map Register Parity Failure (MRPF) This bit is set with the occurrence of a map register parity error during one of the following operations: A UNIBUS access in which the UNIBUS address points to a map register that has a parity error in the upper 16 bits, providing that the map register has not been disabled by the MRD bits. Mapping a UNIBUS address to an SBI address during a direct data path to SBI operation or a BDP to SBI read operation (but not during a prefetch). Mapping an address from a buffered data path to an SBI address during a purge operation or a BOP to SBI write. Seven of the previously defined bits (RDTO, RDS, CXTER, CXTMO, DPPE, IVMR, and MRPF) form an error locking field. If any of these bits is set, the field is locked, thereby preventing the setting of other bits within this field, until the bit indicating the error is cleared. The failed map entry register (FMER) is also locked and unlocked with this field. The setting of any of these bits will cause the UBA to initiate an interrupt request if the interrupt enable bit for the UNIBUS to SBI data transfer error field (USEFIE) in the control register is set. Bit 2 Lost Error Bit (LEB) The UBA sets this bit if the locking error field is locked and another error within the field occurs. The lost error bit does not initiate an interrupt request. 8-14 Bit 1 Unibus Select Time Out (UBSTO) The UBA sets this bit if it cannot gain access to the UNIBUS within 50 microseconds in the execution of a software initiated transfer (SBI to UNIBUS transfer). When UBSTO is set it indicates that the UBA has issued NPR on the UNIBUS but has not become bus master. This condition indicates the presence of a hardware problem on the UNIBUS. The UNIBUS may be inoperative, or one device may be holding it for extended periods of time. Note that if the UNIBUS does become inoperative, it may be possible to clear the problem with the assertion of UNJAM on the SBI, the setting and clearing of the UNIBUS POWER FAIL bit (Control register bit 1) or the setting of ADAPTOR INIT (Control register bit 0). / Bit 0 UNIBUS Slave Sync Time Out (UBSSYNTO) This bit is set when an SBI to UNIBUS transfer (software initiated transfer) times out during the data transfer cycle on the UNIBUS. The timeout occurs after 12.8 microseconds. "UBSSYNTO" indicates a transfer failure resulting when a non-existent memory or device on the UNIBUS is addressed. NOTE: "UBSTO" and "UBSSYNTO" form an SBI to UNIBUS transfer error locking field. They are set by the occurrence of the conditions mentioned and cleared by writing a one to the bit location. The setting of either bit will cause the UBA to make an interrupt request on the SBI if the SBI to UNIBUS error interrupt enable bit (SUEFIE) is set. The setting of either UBSTO or UBSSYNTO will lock the failed UNIBUS address register (FUBAR), thus storing the high 16 bits of the UNIBUS address identified with the failure. The FUBAR will remain locked until the UBSTO and UBSSYNTO bits are cleared. 8-15 DW780 Diagnostic Control Register DCR Offset 8-17 = OOC(16) Bit 31 SPARE This read/write bit has no effect on any UBA operation. It can be set by writing a zero to the bit location. SBI DEAD, Adaptor INIT, and a power up sequence on the UBA will clear this bit. Bit 30 Disable Interrupt (DINTR) When it is set, this bit will prevent the UBA from recognizing interrupts on the UNIBUS. It is useful in testing the response of the UBA to the passive release condition during a UNIBUS interrupt transaction. This bit is set by writing a one and cleared by writing a zero to the bit location. SBI DEAD, Adaptor INIT, and the power up sequence on the UBA will also clear DINTR. Bit 29 Defeat Map Parity (DMP) When it is set, this read/write bit will inhibit the parity bits of the map registers from entering the map register parity checkers. The map register parity generator/checkers generate and check parity on eight bit quantities. Each parity field (eight data bits and one parity bit} is implemented so that the total number of ones in the field is odd. For example, if blts <7:0> of the map register equals zero or contain an even number of ones then the parity bit equals one. However, if the DMP bit is set, then the parity bit is disabled and the parity checkers will see all zeros. This results in a map register parity failure. Then if the DMP bit is cleared, the parity checkers will see correct parity. Note, however, that if bits <7:0> of the map register contains an odd number of ones, the generated parity bit will be zero. The state of the DMP bit, therefore, will have no effect on the parity result in this case. When the integrity of the parity generator/checkers is to be tested, the map register must contain data such that at least one of the bytes contains and even number of ones. The DMP bit, when set, will disable the parity bit, and the map register parity failure can be detected during a OMA transfer. SBI DEAD, Adaptor INIT, and the power up sequence on the adaptor will clear the DMP bit. 8-18 Bit 28 Defeat Data Path Parity (DDPP) The DDPP bit functions in the same manner as the DMP bit. When it is set, the DOPP bit will inhibit the parity bits of the data path RAM from entering the parity checkers. The data path parity generator/ checkers generate and check parity on eight bit data units. Each parity field (8 data bits and 1 parity bit) is implemented so that the total number of ones in the field is odd. When the integrity of the parity generator/checkers is to be tested through use of the DDPP bit, a data path parity failure will result during a UNIBUS to BOP read, a BOP to SBI write, or a purge operation. SBI DEAD, Adaptor INIT, and the power up sequence on the UBA will clear the DOPP bit. Bit 27 Microsequencer OK (MIC OK) The MIC OK bit is a read only bit which indicates that the UBA microsequencer is in the idle state. The microsequencer will enter the idle state after it has completed the initialization sequence or once it has completed a UBA function. The MIC OK bit can be used by the diagnostic to determine whether or not the microsequencer has completed a successful power up sequence and whether or not it is caught up in any loops. Note that SBI DEAD, UBA power supply DCLO, and Adaptor INIT force the microsequencer into the intitialization routine. Once the routine has been completed and the microsequencer has entered the idle state, MIC OK will be true (1). Bits <26:24> Reserved and zero. Bits <23:00> These bits are the same as bits <23:00> of the Configuration Register. 8-19 DW780 Failed Map Entry Register FMER Offset = 010. 018(16) 8-21 The FMER contains the map register number used for either DMA transfer or a purge operation that has resulted in the setting of one of the following error bits of the status register: IVMR, MRPF, DPPE, CXTMO, CXTER, RDS, RDTO. This register is locked and unlocked with the UNIBUS to SBI data transfer error field of the status register. The FMER is a read only register. Attempts to write to the FMER will result in an SBI error confirmation. When the FMER is not locked, its contents are invalid. The software can read the FMER to obtain the map register number associated with the failure. It can then read the contents of the failing map register to determine the number of the data path that failed. Bits <31:09> Reserved and zero. Bits <08:00> Map Register Number (MRN) These bits contain the binary value of the number of the map register that was in use at the time of a failure. Bits <08:00> correspond to bits <17:09> of the UNIBUS address. 8-22 DW780 Failed Unibus Address Register FUBAR Offset = 014.0lC (16) 8-23 The FUBAR contains the upper 16 bits of the UNIBUS address translated from an SBI address during a previous software intiated data transfer. The occurrence of either "Unibus Select Time Out (UBSTO)" or "UNIBUS Slave Sync Time Out (UBSSYNTO)" will lock the FUBAR. When the error bit is cleared, the register will be unlocked. The FUBAR is a read only register. Attempting to write to the register will result in an error confirmation. No signals or conditions will clear the register. Bits <31:16> Reserved and zero. Bits <15:00> Failed Unibus Address Bits <17:00> Bits <15:00> are the UNIBUS address bits <17:00>, respectively, of the of the failing UNIBUS memory or device address. 8-24 DW780 Buffer Selection Verification Registers 0-3 BRVSR 0-3 Offsets 020-02C(16) 8-25 These four read/write do-nothing registers are provided to give the diagnostic software a means of accessing and testing the integrity of the data path RAM. Four locations in the data path RAM have been assigned to these registers. Writing and reading the BRSVR's has no effect on the behavior of the UBA. The BRVSR bit configuration is as follows: Bits <31:16> Bits <15:00> Not used. Test Data bits. 8-26 DW780 BR Receive Vector Registers 4-7 Offsets = 030-03C(16) BRRVR4-7 8-27 The UBA contains four BRRVRs: BRRVR7, BRRVR6, BRRVR5, and BRRVR4. Each BRRVR corresponds to a UNIBUS interrupt bus request level: 7, 6, 5,& 4. Each BRRVR is a read only register and will contain the interrupt vector of the UNIBUS device interrupting at the corresponding BR level. Each BRRVR is read by the software as part of the UBA interrupt service routine. Note that the UBA interrupt service routine is the routine to which the VAX CPU will transfer control once it has determined that the UBA or the UNIBUS has issued an interrupt request to the SBI. If the IFS and BRIE bits on the control register are set so that UNIBUS interrupt requests are passed to the SBI, then the CPU responds with an interrupt summary read command. The UBA sends its request sublevel as an interrupt summary response. The software then invokes the UBA interrupt service routine, initiating a read transfer to the appropriate BRRVR. The UBA will assert the contents of the BRRVR on the SBI as read data if the corresponding BRRVR full bit in the status register is set. If the BRRVR full bit is not set, the read BRRVR command causes the UBA to fetch the interrupt vector from the interrupting UNIBUS device. The interrupt vector is loaded into the BRRVR only at the successful completion of the UNIBUS transaction. The UBA will then send the contents of the BRRVR to the SBI as read data. Following this exchange, the UBA interrupt service routine will use the contents of the BRRVR to branch to the appropriate UNIBUS device service routine. There are 5 types of adnormal completion conditions that may occur during a UNIBUS to SBI interrupt sequence. 1. If the software attempts to read a BRRVR for which a BR interrupt line is not asserted, and the BRRVR is not full, the zero vector (all zeros data) will be sent as read data. 2. If the BR line causes an interrupt sequence to begin on the SBI but is released before the interrupt summary read transfer (passive release), then the interrupt summary response from the UBA will be zero. 3. If the BR line asserted by the interrupting UNIBUS device is released after the interrupt summary read transfer but before the read BRRVR (passive release), then zero will be sent as read data for the read BRRVR command. 4. If the vector has been received from the interrupting device, but an ACT confirmation is not received following the interrupt summary response (read data transmission), then the BRRVR will not be cleared, and the BRRVR full bit will remain set. Subsequent read commands to the full BRRVR will cause the UBA to send the stored vector, but the BRRVR will remain full until the UBA receives an ACK confirmation for the read data. Note that the BRRVR full bits always reflect the state of the BRRVRs. 5. If the IFS bit in the control register is cleared and the software reads a BRRVR, then the zero vector will be sent as read data to the SBI. 8-28 The contents of the BRRVRs are also used by the software to determine whether or not the UBA itself has an interrupt pending. Bit 31 of the BRRVR is the adaptor interrupt request indicator. Although the bit is present in all four BRRVRs, it will be active only in the BRRVR corresponding to the interrupt request level that has been assigned to the UBA. If bit 31 is set when the software reads the BRRVR, then an adaptor interrupt request is pending. Bit 31 Adaptor Interrupt Request Indicator 0 = No UBA interrupt pending. 1 = UBA interrupt pending. Bits <30:16> Reserved and zero. Bits <15:00> Device Interrupt Vector Field These bits contain the device interrupt vector loaded by the UBA from the UNIBUS during the UNIBUS interrupt transaction. 8-29 DW780 Data Path Register 0-15 Offsets DPR0-15 8-31 = 40- 7C( I 6) The UBA contains 16 data path regist~rs (OPRO thru-OPR15), each of which corresponds to one of the 16 data paths. The OPRs contain status info relative to the buffered data paths and provide the means for purging and initializing the BOPs at the completion of a UNIBUS block transfer for OPl:OP15. OPRO corresponds to the OOP and is, therefore, always zero. Bit 31 Buffer Not Empty (BNE) Each ORP contains a data path status bit called Buffer Not Empty. 1 = Buffer Not Empty 0 = Buff er Empty The BNE bit reflects the state of the associated BOP. If this bit is set (1), the BOP contains valid data. If clear (0), then the BOP does not contain valid data. The UBA uses the bit to determine the proper action for OMA transfers via the BOP. If bit 31 is set as a OATI transfer begins, the data in the BOP will be asserted to the UNIBUS. If bit 31=0 on a OATI, the UBA will initiate a read transfer to the SBI memory, gate the addressed data to the UNIBUS, and then load the read data into the BOP, thereby setting bit 31. For OMA write transfer via the associated BOP, the BNE bit is set each time UNIBUS data is loaded into the BOP. The bit is then cleared when the contents of the BOP are transferred to SBI memory. The software will write a one to the BNE bit to initiate a purge operation at the completion of a OMA transfer using the corresponding buffered data path (BDP). The UBA executes purge operations as follows: 1. Write Transfers To Memory - If any bytes of data remain in the corresponding BOP (BNE is set), the UBA will transfer this data to the SBI location addressed. The UBA will then initialize the BOP and clear the BNE bit. If no data remains to be transferred (BNE=O), the purge operation will be treated as a no-op. 2. Read Transfers To Memory - If any bytes of data remain in the BOP, the UBA will initialize the BOP by clearing the BNE bit. In addition, the following considerations apply to the purge operation: For purge operations in which data is transferred to memory, the SBI transfer takes about 2 microseconds. The UBA will not respond to data path register read transfers during this period (a BUSY confirmation is returned on attempted accesses) thereby preventing a race condition when testing for the ENE bit. A purge operation to data path register 0 (Direct Data Path) is treated by the UBA as a no-op. 8-32 Bit 30 Buffer Transfer Error (BTE) This is a read-write-one-to-clear bit. The UBA sets the BTE bit if a failure occurs during a BOP to SBI write or purge, or for a buffer parity failure during a UNIBUS to BOP read access. If bit 30=1, any additional OMA transfers via the BOP will be aborted until the bit is cleared by the software. Note that if a parity error on the UNIBUS occurs during a OMA read, the UNIBUS PB signal will be asserted, giving the UNIBUS device the opportunity to abort its own OMA transfer. If the device does not abort its own transfer, the UBA will abort the transfer on the next access. The purge operation does not clear the BTE bit. The software clears this bit by writing a one to the bit. Bit 29 Data Path Function (DPF) The DPF is a read only bit. This bit indicates the function of the OMA transfer using this data path. 0 1 OMA Read OMA Write Bits <28:24> Not used. Bits <23:16> Buffer State (BS) These eight read only bits indicate the state of each of the eight byte buffers of the associated BOP during a OMA write transfer. They are included in the data path register for diagnostic purposes only. The UBA generates the SBI mask bits from the BS bits during a BOP to SBI write transfer or purge ~peration. The bits are set as each byte is written from the UNIBUS. The bits are cleared during the SBI write operation. 0 Empty 1 Full 8-33 Bits <15:00> Buffered Unibus Address (BUBA) This portion of each DPR contains the upper 16 bits of the UNIBUS address, UA<l7:02>, asserted during a UNIBUS to BDP write transfer using the associated BDP. If the transfer through the associated BDPs is in the byte offset mode, and the last UNIBUS transfer has spilled over into the next quadword, then these bits contain UA<l7:02>. BUBA<l5:00> = Upper 16 bits of Unibus Address<l7:00> + Byte Offset This is the UNIBUS address from which the SBI address will be mapped during the purge operation. 8-34 DW780 Map Registers 0-495 MR0-495 ( 10) Offsets 8-35 = 800-FBC(16) The UBA contains 496(10) map registers, one for each UNIBUS memory page address (a page of UNIBUS addresses= 512(10) bytes). When a DMA transfer begins, the upper nine address bits asserted by the UNIBUS device selects a MAP register. The UBA tests whether the MAP reg. has been validated by the software, steers the transfer throught one of the 16 data paths, determines whether or not the transfer will take place in byte offset mode if a BDP has been selected, and maps the UNIBUS page address to an SBI page address. The map registers are numbered sequentially from 0 thru 495(10). There is a 1-1 correspondence between each map register and the UNIBUS memory page address. Each map register contains the information required to effect the data transfer of the UNIBUS device addressing that page: 1. The fact that the software has loaded or not loaded the MAP register (MAP registe Valid). 2. The number of the data path to be used by the transfer and, if a BDP is used, whether it is in byte offset mode or not. 3. The SBI page to which the transfer will be mapped. NOTE: 0 ~ .... UJ,, I... For the rest of this description, "this UNIBUS page" refers to "the UNIBUS memory page corresponding to this MAP register". ".), .J..I. Map Register Valid 0 1 I',....,..,. .. \ \ Mrt VJ Not Valid - initialized state Valid The MRV is set by the software to indicate that the contents of this map register are valid. The MRV is tested each time that "this UNIBUS page" is accessed. If the bit = 1, the transfer continues. If the bit = 0, the UNIBUS transfer is aborted (non-existent memory error in the UNIBUS device) and the invalid map register bit is set in the UBA status register, providing that the map register has not been disabled by the MRD bits of the control register. The MRV bit can be set and cleared by software. Bits <30:26> Unused Reserved read/write bits. 8-36 Bit 25 Byte Offset Bit (BO) This is a read/write bit. If set, and "this UNIBUS page" is using one of the BDPs, and the transfer is to an SBI memory address, then the UBA will perform a byte offset operation on the current UNIBUS data transfer. The software can interpret this operation as increasing the physical SBI memory address, mapped from the UNIBUS address, by 1 byte. This allows word-aligned UNIBUS devices to transfer to odd byte memory addresses. UNIBUS transfers via the DDP or to SBI I/0 addresses will ignore the byte offset bit. This bit is cleared on initiaiization. Bits <24:21> 0 1-F Data Path Designator Bits (DPDB) Direct Data Path (DDP) Buffered Data Path 1 thru F respectively. The DPDBs are read/write bits that are set and cleared by the software to designate the data path that "this UNIBUS page" will be using. The software can assign more than one UNIBUS transfer to the DDP. The software must ensure that no more than one active UNIBUS transfer is assigned to any BDP. The DPDBs are cleared on initialization. Bits <20:00> SBI Page Address [SPA<27:07>] (Page Frame Number) The SPA bits contain the SBI page address to which "this UNIBUS page" will be mapped. These bits perform the UNIBUS to SBI page address translation. When an SBI transfer is initiated, the contents of SPA<27:07> are concatenated with UNIBUS address bits UA<08:02> to form the 28 bit SBI address. 8-37 RH780 Configuration/ Status Register CSR Offset 8-39 = 000(16) The configuration/status register is a read/write MBA register that contains fault status, interrupt status, adapter dependent status, and adaptor code bits. ~ Bit 31 (PE) SBI Parity Error Set when an SBI parity error is detected. Cleared by power up or by the deassertion of the SBI FAULT signal. The setting of this bit will cause SBI FAULT to be asserted for one cycle. Bit 30 Write Data Sequence (WS) Set when no write data is received (TAG lines not equal to "Write Data" and ID lines do not contain ID of device that transmitted the command) following a write command. Cleared by power up or the deassertion of the SBI FAULT signal. The setting of this bit will cause SBI FAULT to be asserted for one cycle. Bit 29 Unexpected Read Data (URD) Set when read data is received and was not expected (no read command was transmitted by the MBA). Cleared by power up sequence or the deassertion of SBI FAULT. The setting of this bit will cause SBI FAULT to be asserted for one cycle. Bit 28 Unused Reserved for future use. Bit 27 Multiple Transmitter Error (MT) Set when the ID on the SBI does not agree with the ID transmitted by the MBA while the MBA is transmitting data on the SBI. Cleared by power up sequence or by the deassertion of SBI FAULT. The setting of this bit will cause the SBI FAULT signal to be asserted for one cycle starting at the normal confirmation time. Bit 26 Transmit Fault (XMTFLT) Set when the SBI FAULT is detected at the 2nd cycle after the MBA transmits information onto the SBI. Cleared by the power up sequence or by the deassertion of the SBI FAULT signal. Bits <25:24> UNUSED Read as all zeros. Reserved for future use. 8-40 Bit 23 Adapter Power Down (PD) Set when the MBA power goes down. Cleared when power comes back up. The setting of this bit will cause an interrupt to the VAX CPU if the IE bit is set. Bit 22 Adapter Power Up (PU) Set when the MBA power comes up. Is cleared when the power goes down, assertion of INIT, SBI UNJAM, DCLO or by writing a one to this bit. The setting of this bit will cause an interrupt if the IE bit is set. Bit 21 Over Temperature (OT) Always zero. Bits <20:08> Unused Read as all zeros. Bits <7:0> Reserved for future use. Adapter Code Equal a hex 20 to signify an RH780 adapter. 8-41 RH780 Control Register CR Offset 8-43 = 004(16) The MBA Control register is a read/write register that contains the control bits: Interrupt Enable, Abort, and Initialize. This register is used to put the RH780 into Maintenance Mode. Bits <31:04> Unused Read as all zeros. Bit 3 Maintenance Mode Reserved for future use. (MM) The setting of this bit will put the MBA in the maintenance mode, which will allow the diagnostic software to exercise and examine the MASSBUS operations without a MASSBUS device. When this bit is set, the MBA will block MASSBUS RUN, MASSBUS DEMAND, and assert FAIL on the MASSBUS so that all the devices on the MASSBUS will be logically detached. This bit can only be set if a data transfer is not in progress. Bit 2 Interrupt Enable (IE) Allows the MBA to interrupt the VAX CPU when certain conditions occur. Set by writing a one to the bit and by the power up sequence. Cleared by writing a zero to the bit or by !NIT set to a one. B J.. ._ ~~ , .J.. (ABORT) Abort Data Transfer The setting of this bit will initiate the data transfer abort sequences that will stop sending of commands and addresses, and stop the byte counter. It will also negate MASSBUS RUN, assert MASSBUS EXC, wait for MASSBUS EBL, and set ABORT to a 1 at the trailing edge of MASSBUS EBL. Set by writing a one. Cleared by writing a zero, INIT set to one, or by assertion of SBI UNJAM. Bit 0 Initialize (INIT) This bit is self-clearing. Always reads as zero. ·The setting of this bit will: 1. Clear status bits in the MBA Configuration/Status register. 2. Clear ABORT and IE in the MBA Control register. 3. Clear the MBA Status register. 4. Clear the MBA Byte Count register. 5. Clear control and status bits of the diagnostic registers. 6. Cancel all pending commands except read data pending abort data transfers. 7. Asserts MASSBUS INIT. 8-44 RH780 Status Register SR Offset 8-45 = 008(16) The MBA Status register is a read/write register that contains MBA status information such as error indications, timeouts, and busy indicators. All interrupts will occur immediatedly if there isn't a data transfer in progress. If a data transfer is in progress, the interrupt will be postponed until the data transfer has terminated. Data Transfer Busy Bit 31 (DTBUSY) Read only. Set when a data transfer command is received. when a data transfer is aborted. No Response Confirmation Bit 30 Cleared (NRCONF) Set when the MBA receives a no-response confirmation for the read read command, or no-response confirmation for the write command and the write data sent to the SBI. The setting of this bit will cause retry of the command. Cleared by writing a one to this bit or by INIT. Corrected Read Data Bit 29 (CRD) Set when corrected read data is received from memory. writing a one to this bit or INIT. Bits <28:20> Unused Read as all zeros. Bit 19 Cleared by Reserved for future use. Programming Error (PGE) The setting of this bit will cause an interrupt to the VAX CPU if the IE bit in the control register is set. Cleared by writing a one to this bit. Set when one or more of the following conditions exists: 1. 2. 3. 4. The program tries to initiate a data transfer when the MBA is currently performing one. The program tries to load MAP, VAR, or the BYTE COUNTer while the MBA is performing a data transfer operation. The program tries to set MBA maintenance mode during a data transfer operation. The program tries to initiate a nonacceptable data transfer command. 8-46 Bit 18 Non-existent Drive (NED) Set when a drive fails to assert MASSBUS TRA within 1.5 microseconds after the MBA asserts MASSBUS DEM. The setting of this bit will send zero read data back to the SBI, and interrupt the VAX CPU if the IE bit is set in the MBA Control register. Cleared by writing a one to this bit location. · . Bit 17 (MCPE) Massbus Control Parity Error Set when a MASSBUS Control Bus Parity error occurs. The setting of this bit will cause an interrupt to the VAX CPU is the IE bit, in the Control Register, is set. This bit is cleared by writing a 1 to it. Bit 16 Attention from the Massbus (ATTN) Set when the ATTeNtion line on the MASSBUS is asserted. The setting of this bit will cause an interrupt to the VAX CPU if the IE bit, in the Control Register, is set. The ATTN line can be asserted due to any of the following conditions: 1. 2. 3. 4. An error occurs while no data transfer is taking place (asserted immediately). Upon completion of a data transfer command if an error occured during the data transfer (asserted at the end of the data transfer). Upon completion of a mechanical motion command (seek, recalibrate, etc.} or a search command. As a result of the Medium On Line (MOL} bit changing states (except in the unload operation).- In the dual MBA configuration, a change in state of MOL will cause the assertion of ATTN to both MBAs. The ATTN bit in a drive can be cleared by the following actions: l. 2. 3. Asserting MASSBUS INIT. Writing a 1 into the Attention Summary Register (in the bit position for the appropriate drive). This clears the ATA bit; however, it does not clear the error. Writing a valid command (with the GO bit asserted) into the control and status register if no error occurs. Note that clearing the ATA bit of one drive does not always cause the ATTN line to be negated, because other drives may be asserting the line. There are 3 cases in which ATA is not reset when a command is written into the Control/Status register (with the GO bit set). These are as follows: 1. If there is a CONTROL BUS PARITY ERROR in the write. 2. If an error was previously set. 3. If an ILLEGAL Function (ILF) code is written. 8-47 Bits <15:14> Reserved Reserved for future use. Bit 13 Read as zeros. Data Transfer Completed (DT COMP) Set when the data transfer is completed. Cleared by writing a one to this bit. The setting of this bit will cause an interrupt to the VAX CPU if the IE bit, in the Control register, is set. Bit 12 Data Transfer Aborted (DTABT) Set with the trailing edge of Massbus EBL when the data transfer has been aborted. Cleared by writing a one to this bit or by INIT. The setting of this bit will cause an interrupt to the VAX CPU if the IE bit, in the Control register, is set. Bit 11 Data Late (DLT) This bit i.s set: 1. for either a write check data transfer providing the data 2. buffer is empty when WCLK is sent to the MASSBUS. for a read data transfer providing the data buffer is full when SCLK is received from the MASSBUS. The setting of this bit will cause the data transfer to be aborted. Bit 10 Write Check Upper Error (WCK UP ERR) This bit is set when a compare error is detected in the Upper byte while the MBA is performing a write check operation. Cleared by writing a 1 to this bit or by INIT. The setting of this bit will cause the data transfer to be aborted. Bit 09 Write Check Lower Error (WCK LWR ERR) Set when a compare error is detected in the lower byte while the MBA is performing a write check operation. Cleared by writing a 1 to this bit or by INIT. The setting of this bit will cause the data transfer to be aborted. 8-48 Bit 08 Missed Transfer Error (MXF) Set when no OCC or SCLK is received within 50 microseconds after Data Transfer Busy is set. Cleared by writing a 1 to this bit or by INIT. The setting of this bit will cause. an interrupt to the VAX CPU is the IE bit, in the Control register, is set. Bit 07 Massbus Exception (MBEXE) Set when EXC is received from the MASSBUS. Cleared by writing a 1 to this bit or by INIT. The setting of this bit will cause the data transfer to be aborted. Bit 06 (MOPE) Massbus Data Parity Error Set ·when a MASSBUS DATA PARITY Error is detected during a read data transfer operation. Cleared by writing a 1 to this bit or by INIT. The setting of this bit will cause the data transfer to be aborted. Bit 05 (MAPPE) Page Frame Map Parity Error Set when a parity error is detected on the data read from the map during a data transfer. Cleared by wr1t1ng a 1 to this bit or by INIT. The setting of this bit will cause the data transfer to be aborted. Bit 04 Invalid Map ( INVMAP) Set when the valid bit of the next page frame number is zero and the byte counter is not zero. Cleared by writing a one to this bit or by INIT. The setting of this bit will cause the data transfer to be aborted. Bit 03 Error Confirmation (ERR CONF) Set when the MBA receives error confirmation for a read or write command. Cleared by writing a one to this bit o_r by INIT. The setting of this bit will cause the data transfer to be aborted. 8-49 Bit 02 Read Data Substitute (RDS) Set when the SB! TAG of the of the read data received from memory is Read Data Substitute (bad data). Cleared by writing a one to this bit or by !NIT. the setting of this bit will cause the data transfer to be aborted. Bit 01 Interface Sequence Timeout (IS TIMEOUT) Set when an interface timeout occurs. An interface sequence timeout is defined as the time from when arbitration for the SB! is begun until: 1. ACK is received for a command/address transfer that specifies read. 2. ACK is received for a command/address transfer that specifies a write and the corresponding write data transfer. 3. ERR confirmation is received for any command/address transfer. The maximum timeout is. 102.4 microseconds. Cleared by writing a one to this bit or by !NIT. The setting of this bit will cause the data transfer to be aborted. Bit 00 Read Data Timeout (RD TIMEOUT) Set when a read data timeout occurs. A read data timeout is defined as the time from when an interface sequence that specifies a read command is completed to the time that the specified read data is returned to the commander. The maximum timeout is 102.4 microseconds. Cleared by writing a one to this bit or by INIT. The setting of this bit will cause the data transfer to be aborted. 8-50 RH780 VIRTUAL ADDRESS Register VAR Offset 8-51 = OC(16) Before a data transfer is initiated, the program must load an initial virtual address (pointing to the first byte to be transfered) into this register. Bits <31:17> Not used. Bits <16:09> Reserved Reserved for future use. Read as zeros. Map Pointer Selects one of the 256 MAP registers. Bits <08:00> Physical Page Byte Address Byte offset into the current page. The contents of the selected MAP register and the value of Bits <08:00> are used to assemble a physical SBI address to be sent to memory. Bits <08:00> indicate the byte offset into the page of the current data byte. The virtual address register may not be written into during a data transfer. An attempt to do so will set PGE, but the virtual address register will not be modified and the data transfer will continue. The MBA virtual address register is incremented by eitht after every memory read or write and will not point to the next byte to be transferred if the transfer does not end on a quadword boundary (it will point eight bytes ahead). When a write check error occurs, the virtual address register will not point to the failing data in memory due to the preloading of the silo data buffer. The virtual address of the bad data may be found by determining the number of bytes actually transferred on the MASSBUS (the difference between bits <31:16> of the Byte Count Register and their initial value) and adding that difference to the initial virtual address. 8-52 RH780 BYTE COUNT Register BCR Offset = 10(16) 8-53 The program loads the 2's complement of the number of bytes for the data transfer to bits <15:00> of this register. The RH780 hardware will load these 16 bits into bits <31:16> and bits <15:00> of the Byte Count register. Bits <31:16> serve as the byte counter for the number of bytes transferred through the MASSBUS and bits <15:00> serve as the byte counter for the number of bytes transferred through the SBI interface. The starting byte count with 16 bits of zeros is the maximum number of bytes of a data transfer. The byte count register may not be modified during a data transfer. An attempt to do so will be ignored and the PGE bit will be set. Bits <31:16> Massbus Byte Counter Data written to bits <15:00> is duplicated in these bits. This counter is used to count the number of bytes transferred across the MASSBUS. These bits are read only. Bits <15:00> SBI Byte Counter These bits form the SBI Byte counter. The purpose of this counter is to count the number of bytes transferred across the SBI and to overflow to zero to signal the completion of the transfer. This counter is loaded, by the program, with the 2's complement of the number of bytes to be transferred. The RH780 hardware duplicates what is written to these bits, by the program, into bits <31:16>. This counter is read/write. 8-54 RH780 DIAGNOSTIC Register DR Offset 8-55 = 14(16) The diagnostic register is a read/write register that contains MBA diagnostic information. This register allows diagnostics to be run without any drives on the MASSBUS. The diagnostic register may not be written unless the MBA is in the maintenance mode. An attempt to write the diagnostic register when not in the maintenance mode will be ignored. Caution should be exercised when reading this register in the maintenance mode. The data path used to read bits <07:00> may inject invalid data into the silo if the MBA has just read data from memory. It is advisable to wait 20 microseconds from the initiation of a transfer or the deassertion of SCLK before reading or modifying this register. Bit 31 I MD PG Invert MASSBUS Data Parity generator. Bit 30 IMCPG Invert MASSBUS Control Parity generator. Bit 29 IMAPP Invert MAP Parity." Bit 28 BLKSCOM Block sending command to the SBI. During a data transfer, the setting of this bit will eventually cause a DLT bit set and a DT ABORT. Bit 27 SIMSCLK Simulate MASSBUS SCLK. When the MM bit is set, writing a 1 to this bit will simulate the assertion of MASSBUS SCLK; writing a 0 to this bit will simulate the deassertion of MASSBUS SCLK. Bit 26 SIMEBL Simulate MASSBUS EBL. When the MM bit is set, writing a 1 to this bit will simulate the assertion of MASSBUS EBL; writing a 0 to this bit will simulate the deassertion of MASSBUS EBL. Bit 25 SIMOCC Simulate MASSBUS acc. When the MM bit is set, writing a 1 to this bit will simulate the assertion of MASSBUS OCC; writing a 0 to this bit will simulate the deassertion of MASSBUS OCC. 8-56 Bit 24 SIMATTN Simulate MASSBUS ATTN. When the MM bit is set, writing a 1 to this bit will simulate the assertion of MASSBUS ATTN; writing a 0 to this bit will simulate the deassertion of MASSBUS ATTN. Bi t 2 3 MP IB SEL Maintenance MASSBUS Data Input Buffer Select. When this bit is set to a 1, the upper eight bits (B<l5:08>) of the MDIB will be sent out from bits <07:00> of the Diagnostic register if the diagnostic register is read. When the bit is 0, the lower eight bits (B<l5:08>) of the MDIB wili be sent out from bits <07:00> of the Diagnostic register if it is read. Bits <22:21> Maint only Read/write with no effect. Bit 20 MFAIL MASSBUS FAIL (read only)o set. Bit 19 Used to test the writability of these bits. MASSBUS FAIL is asserted when the MM bit is MRUN MASSBUS RUN (read only). Bit 18 MWCLK MASSBUS WCLK (read only). Bit 17 MEXC MASSBUS EXC (read only)~ Bit 16 MCTOD MASSBUS CTOD Bits <15:13> (read only). MDS MASSBUS Device Select Bits <12:08> MRS MASSBUS Register Select Bits <07:00> (read only). (read only). U/L MDIB Maintenance Upper/Lower MDIB. 8-57 RH780 SELECTED MAP Register SMR Offset 8-59 = 18 This register is read only and is valid only when DT BUSY is set. Reading this registers gives you the contents of the MAP register pointed to by bits <16:09> of the Virtual Address register. The bit assignments for the MAP registers are as follows: Bit 31 Valid When set, indicates that the contents of bits <20:00> are valid. Bits <30:21> Not used Not used. Reserved for future use. Bits <20:00> Page Frame Number Read as zeros. Contains the Physical page frame number. These bits are used to calculate the physical memory address to/from which the transfer is to take place. These bits actually select only the PHYSICAL SB! MEMORY PAGE that the transfer will be referencing. Bit 9 = 1 and Bit 8 = 0. The RH780 contains 256 MAP registers, each of which may be selected by Virtual Address bits <07:00>. MAP registers can only be written when there is no data transfer operation in progress. A write to a MAP reg. while a data transfer is in progress will be ignored and cause the setting of PGE and will cause an interrupt to the VAX CPU at the end of the transfer if the IE bit is set. 8-60 RH780 COMMAND I ADDRESS Register CAR Offset 8-61 = 1A(l6) This register is read only. Valid only when DT BUSY is set. It contains the value of bits <31:00> of the SBI during the COMMAND/ADDRESS part of the RH780's next data transfer. 8-62 MS780-E Configuration Register Offset CNFG-A 8-63 "A" = 000 ( 16) Bit <31>, SBI Parity Fault A parity error was detected on the SBI. Bit <30>, SBI Write Sequence Fault Failure of a WRITE command to be followed immediately (in the next sequential SBI cycle) by a Write Data Format. NOT USED Bit <29>, This bit not assigned. Bit <28>, SBI Interlock Sequence Fault An INTERLOCK WRITE command was not proceeded by an INTERLOCK READ command. Bit <27>, SBI Multiple Transmitter Fault The "received ID" (received at SBI T3 time) is not the same as the "transmitted ID" (transmitted at SBI TO time). The transmitted ID is checked by comparing it with the ID that is read back at SBI T3 time of the same cycle. Bit <26>, Transmit Fault This memory was the transmitter when the SBI error occured. Bits <25:24>, NOT USED ·These bits are not assigned. Bit <23>, Power Down A power-down sequence is underway. Bit <22>, Power Up A power-up sequence is underway. Bit <21>, NOT USED This bit is not assigned. 8-64 Bit <20>, Error Summary Set if any of the following bits are set: 1. Internal Parity Errors a. Register-A Bit <19> b. Register-A Bit <18> c. Register-C Bit <07> 2. Misconfigure Warning a. Register-A Bit <17> b. Register-A Bit <16> c. Register-A Bit <15> 3. Error Log Request a. Register-C Bit <28> Bit <19>, CNTR 1 Par Err Read data from the UPPER controller to interface had a parity error. Bad data is sent on the SBI, with corrected parity, and the RDS mask (multiple bit error). Bit <18>, CNTR 0 Par Err Read data from the LOWER controller to interface had a parity error. Bad data is sent on the SBI, with corrected parity, and the RDS mask (muitiple bit error). ·· Bit <17>, Misconfigured In INTERNAL Interleave mode, set by an unequal number of arrays with each ~ontroller. Bit <16>, CNTR 1 MISCNFG Misconfiguration in the UPPER Controller's memory. of the following: 1. Illegal array arrangement 2. No Arrays 3. No Controller Bit <15>, Caused by one CNTR 0 MISCNFG Misconfiguration in the LOWER Controller's memory. of the following: l. Illegal array arrangement 2. No Arrays 3. No Controller Bits <14:09>, Caused by one Memory Size Memory system capacity from 1 MegaByte (000000) to 64 MegaByte (111111). Count is in Binary. 8-65 Bit <08>, INTLV Mode Write Enable Permits a WRITE to bits <02:00> which establishes the INTERLEAVE MODE. Bits <07:05>, Adapter Code Fixed set of bits identifying the subsystem (NEXUS) as an MS780-E memory subsystem. Bits read as "011" (from bit <07> to bit <05>). Bits <04:03>, RAM type Identifies the size of the RAMs on the arrays as follows: Bits 4 3 0 0 1 0 1 0 1 1 Bi ts <02: 00>, Description Misconf igured, No array Boards in backplane 64K RAMs (1 MegaByte Arrays) 256K RAMs (4 MegaByte Arrays) Misconf igured, both array types in backplane Interleave Mode Identifies the Interleave Mode as follows: Bits , I"\ .l. u 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 Description Non-interleaved LOWER controller Non-interleaved UPPER controller Externally interleaved LOWER controller Externally interleaved UPPER controller Internally interleaved Bits <02:01> are set, on Power-Up, to interleave mode according to the hardware configuration, i.e., appropriate to the number and position of memory controllers present. Bit <00> must be written by the Software. 8-66 MS780-E Configuration Register "B" CNFG-B Offset 8-67 = 004 (16) Bits <31:28>, Not Used These bits are not assigned. Bits <27:19>, START ADDR Specifies the starting address of the memory subsystem in 1 MegaByte increments. Bits <18:15>, Not Used These bits are not assigned. Bit <14>, START ADR WR EN Enables writing to bits <27:19> Bits <13:12>, INIT and BATTERY Status Indicates if memory is coming up from a COLD Start and is initializing the memory, or if valid data is preserved in the memory arrays as follows: Bit 13 12 Description 0 0 0 1 1 1 0 1 Bit <11>, Initialization in progress (memory written with O's and BUSY is being sent to any SBI commands that may be referencing this memory). Memory contains Valid Data. Invalid Combination Initialization completed, NO VALID DATA in memory. Force DBUS Par Error READ DATA from controllers to the SBI interface will have an error and a read data substitute will be forced~ Bits <10:09>, Diagnostic Mode Select There are three diagnostic modes that exercise various controller functions and four data paths and their latches as follows: Bit 10 09 Description 0 0 1 1 0 1 0 1 Normal Operation Verifies check bit generation logic and controller data path. Verifies the ECC logic. Verifies the check bit MOS RAMs. 8-68 Bit <08>, Refresh Lock Prevents the memory controller from executing READ/WRITE cycles. Bit <07>, Not Used This bit is not assigned. Bits <06:00>, Diagnostic ECC bits Loaded with the substitute ECC bits in conjunction with the diagnostic modes. 8-69 MS780-E Configuration Registers "C & D" Offset CNFG-C and CNFG-D 8-71 = 008(16) and OOC(16) Bit <31>, Force Microsequencer Parity Error Causes the wrong parity across the 56 PROM bits of the microsequencer data field. Sets bit <07>. Bit <30>, Inhibit CRD Prevents single-bit errors from sending CRD with the read data on the SBI. Error log requests (bit<28>) and CRD error bit <09> will be set by a single-bit error. Bit <29>, High Error Rate Indicates a second error has been detected before the 1st was cleared. Bit <28>, Error Log Request Notification of an error on a memory read. Bits <27:11>, Error Address Specifies the memory address to the page level of the error. The address format specified is as follows (VALID ONLY IF Bit <28>=1): <27> <26:24> Controller Select Array Select Array Bank Select RAM page address (64K RAMs) RAM page address (256K RAMs) <23:22> <19:11> <21:11> Bit <10>, RDS Flag Multiple-bit error detected. Bit <09>, CRD Flag Single-Bit error detected and corrected. Bit <08>, Not Used This bit is not assigned. Bit <07>, Microsequencer Parity Error A parity error was detected across the 56-bit PROM data word. Bit <06:00>, Error Syndrome/ CHECK BITS Stores 7-bit error syndrome or 7 check bits, depending on the diagnostic mode set in Configuration Register-B. 8-72 MS780-E Configuration Registers "E & F" REG-E & REG-F Offset = 010(16) and 014(16) 8-73 Registers E and F are the two data latches on the SBI interface module (designated as data latches 1 and 2, respectively). After writing to either or both of these registers, they may be read, causing the data written to be sent back on the SBI through the SBI transceivers. Thus, these registers allow a data wrap-around within the SBI interface module only. No memory controllers have to be installed to execute this data wrap-around process. 8-74
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies