SUPPORTING NEW PROCESSORS UNDER VMS o Determine Hardware Differences o Primary Bootstrap Code (VMB.EXE) o Secondary Bootstrap Code (SYSBOOT.EXE) o Loadable, CPU-dependent Routines (SYSLOAxxx.EXE) o Miscellaneous Code STEP 1 o Review cpu and system configuration for hardware differences with previous machines. - console subsystem - I/O subsystem: backplanes, buses, devices - memory subsystem - internal processor registers (IPRs) - machine-checks - instruction subset - multi-processing - others IPR DIFFERENCES: 11/780: SBI, WCS, and FP Accelerator Registers 11/750: Machine-check and Console TU58 Registers MicroVAX I: No TODR, ICR, NICR, ACCS, or PME Registers Registers always different: Translation Buffer, Memory Cache BACKPLANE DIFFERENCES: 11/780 SBI: 16 slots for self-identifying adapters 11/750 CMI: 10 slots reserved for specific adapters 6 slots for self-identifying adapters MicroVAX I: no backplane BUS DIFFERENCES: (UNIBUS/MASSBUS/CI/QBUS) - initialization sequences - interrupt vectorying schemes (per cpu & per bus) - I/O buffering schemes - adapter and device CSRs - MicroVAX I has no adapter or scatter-gather map CONSOLE SUBSYSTEM DIFFERENCES: - different console block storage device 11/780: RX01 11/750: TU58 11/730: 2 TU58s MicroVAX I: none - console terminal - console command language - powerfail and microcode reloading - halt codes - microcode loading MEMORY SUBSYSTEM DIFFERENCES: - CSRs - Initialization: - Set starting addresses - Size memory - Enable cache - Enable ECC or parity - Interrupt versus poll for single-bit (recovered) errors - Handling of hard errors MACHINE-CHECK DIFFERENCES: - IPRs for clearing errors - Size and contents of stack frames - Error recovery procedures for errors in: - Translation buffer - Cache - Memory - I/O subsystem - Instruction retry algorithms INSTRUCTION SUBSET DIFFERENCES: - G & H floating point - MicroVAX architecture: - emulation exceptions to assist in operand decode - boot-time code to load emulators - bootstrap emulator for a subset of emulated instructions - Emulation functionally invisible to users - Performance optimizations OTHER DIFFERENCES: - System Identification Register (SID) - Translation Buffer disabling - Cache disabling - IPR saving/restoring over powerfailure - Bugcheck IPR dumping STEP 2 o Determine software components needing changes. - Always changes for VMB.EXE and SYSBOOT.EXE. - Always write new SYSLOAxxx.EXE. - Search VMS sources for IPRs and CPUDISP macro. - Identify new cpu-specific code, e.g., TODR read/write routines for MicroVAX I. STEP 3 o Primary bootstrap (VMB.EXE) changes. - Initialize cpu-specific IPRs - Initialize, size, and test memory (BTMEMxxx.MAR) - read CSRs or test addresses until get non-existent memory machine-check - use dummy machine-check handlers to clear machine-checks caused by locating adapter CSRs or memory, or to clear memory errors - Bootdriver - new boot device - I/O adapter differences (MicroVAX I has no QBUS scatter-gather map) - load microcode for device from console block storage device (HSC50) STEP 4 o Secondary bootstrap (SYSBOOT.EXE) changes. - Cpu/microcode version checks - Determine and load instruction emulation needed - Table of SYSLOAxxx three character suffixes STEP 5 o Loadable, cpu-dependent code (SYSLOAxxx.EXE). - Perhaps move some VMS code into new cpu-dependent routines, e.g., TODR routines for MicroVAX I - new vectors in LOAVEC.MAR - new routines for each existing cpu - replace some VMS code with calls to new cpu-dependent routines o SYSLOAxxx work, cont. - Machine-check handler (MCHECKxxx.MAR) (memory, cache, and TB errors) - TODR routines (ERRSUBxxx.MAR) (EXE$READ_TODR, EXE$INIT_TODR) - IPR routines (ERRSUBxxx.MAR) (EXE$DUMPCPUREG, EDE$REGSAVE, EXE$INIPROCREG) - Adapter initialization code (INIADPxxx.MAR) - Loadable I/O subroutines (LIOSUBxxx.MAR) (IOC$PURGDATAP) - Miscellaneous error handling routines (ERRSUBxxx.MAR) STEP 6 o Miscellaneous Software Changes. - Drivers (PUDRIVER) - Error log report generators (SYE, ERF) - Display programs (SHOW CLUSTER, MONITOR) - Crash dump analyzer (SDA) - Console command files (DB0BOO.CMD) - DCL command files (BOOTBLDR.COM, VMSKITBLD.COM) STEP 7 o Putting on the Final Touches. - Give one big hand wave - Say the magic words and provided you have stayed up round the clock at least once (more often for more complex machines) then go directly to Field Test, do not pass the terminal, and do NOT collect on vacation time yet!