[net.unix-wizards] VAX 750 machine check problems

ARPAVAX:sam (11/02/82)

From: sam (Sam Leffler)
To: unix-wizards

The specific machine check is due to marginal parts used in one of the
750 boards.  If your local field service branch is not familiar with
this problem, have them contact the DEC UNIX Engineering Group in New
Hampshire for confirmation and information about which rev boards are
"safe for use".  In the meantime, the following code may be added to
the function machinecheck in the file machdep.c.  The code was swiped
from VMS and is know to work (some of our 750's were going down every
5 minutes at one point).

machinecheck()
{
	...
#if VAX750
	case VAX_750: {
		register struct mc750frame *mcf = (struct mc750frame *)cmcf;
		printf("\tva %x errpc %x mdr %x smr %x rdtimo %x tbgpar %x cacherr %x\n",
		    mcf->mc5_va, mcf->mc5_errpc, mcf->mc5_mdr, mcf->mc5_svmode,
		    mcf->mc5_rdtimo, mcf->mc5_tbgpar, mcf->mc5_cacherr);
		printf("\tbuserr %x mcesr %x pc %x psl %x mcsr %x\n",
		    mcf->mc5_buserr, mcf->mc5_mcesr, mcf->mc5_pc, mcf->mc5_psl,
		    mfpr(MCSR));
		mtpr(MCESR, 0xf);
		if ((type&0xf) == MC750_TBPAR) {
			printf("tbuf par: flushing and returning\n");
			mtpr(TBIA, 0);
			return;
		}
		break;
		}
#endif
	...
}