[comp.bugs.4bsd] Patch to 4.3BSD boot for Rev. 8 11/750s

grandi@noao.arizona.edu (Steve Grandi) (10/08/87)

For those of you with 11/750s still on DEC hardware maintenance, your
friendly Field Service person should be installing a FCO bringing the CPU
up to revision 8.  The FCO changes all the boot ROMs so that the very
first thing that happens on any boot is that the TU58 is read looking for
PCSLOAD.EXE and PCS750.BIN, then microcode is updated and then the normal device
specific boot code is executed.  Fortunately, if the tape isn't there or these 
files aren't on the tape, the boot will continue.  Another "feature" of
the FCO is the loss of one of the four available boot devices.

If you do take advantage of this FCO and leave a TU58 cartridge in the
machine (and the price you pay is a LONG wait before the normal boot
begins), the boot program for 4.3BSD needs to be modified to not immediately
load an older version of the microcode over the version read from the TU58.
The version of pcs750.bin present in 4.3BSD's /pcs750.bin is 98, the version
distributed with the revision 8 FCO is version 99.

The patch to sys/stand/boot.c listed below will list the microcode version
(and for fun, the hardware version) and will load /pcs750.bin if needed.

*** boot.c.ORIG	Thu Jun  5 01:40:25 1986
--- boot.c	Wed Oct  7 09:36:58 1987
***************
*** 185,187 ****
  	sid.cpusid = mfpr(SID);
! 	if (sid.cpuany.cp_type!=VAX_750 || sid.cpu750.cp_urev<95 || pcsdone)
  		return;
--- 185,191 ----
  	sid.cpusid = mfpr(SID);
! 	if (sid.cpuany.cp_type == VAX_750)
! 		printf("11/750 hardware version %x, microcode version %d\n",
! 		    sid.cpu750.cp_hrev, sid.cpu750.cp_urev);
! 	if (sid.cpuany.cp_type!=VAX_750 || 
! 	    sid.cpu750.cp_urev<95 || sid.cpu750.cp_urev>98 || pcsdone)
  		return;


-- 
Steve Grandi, National Optical Astronomy Observatories, Tucson AZ, 602-325-9228
UUCP: {arizona,decvax,hao,ihnp4}!noao!grandi  or  uunet!noao.arizona.edu!grandi 
Internet: grandi@noao.arizona.edu    SPAN/HEPNET: 5356::GRANDI or DRACO::GRANDI

chris@mimsy.UUCP (Chris Torek) (10/11/87)

In article <649@noao.UUCP> grandi@noao.arizona.edu (Steve Grandi) writes:
>... the boot program for 4.3BSD needs to be modified to not immediately
>load an older version of the microcode over the version read from the TU58.
>The version of pcs750.bin present in 4.3BSD's /pcs750.bin is 98, the version
>distributed with the revision 8 FCO is version 99.

Why not just read the new pcs750.bin from the TU58 and put it on
your root file system?  I imagine it is in the same format as the
old pcs750.bin; in any case, it should be easy enough to `arff xmf
/dev/tu0 pcs750.bin' and try it ... as long as you have a way to
override loading pcs750.bin from the file system (such as the in
Steve's article).

Of course, if you need the new microcode for the boot to work. . . .

>The patch to sys/stand/boot.c listed below will list the microcode version
>(and for fun, the hardware version) and will load /pcs750.bin if needed.

>! 	if (sid.cpuany.cp_type == VAX_750)
>! 		printf("11/750 hardware version %x, microcode version %d\n",
>! 		    sid.cpu750.cp_hrev, sid.cpu750.cp_urev);

So why is one in hex and the other in decimal? :-)
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7690)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris