





		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!

