[net.sources] DCJ11-AC

scw@cepu.UUCP (10/24/84)

This is extracted from a notice dated 8-Aug-1984, from the DEC
Microcomponents Group.

DEC has discovered a problem with ~9% of the data chips on the
DCJ11-AC/KDJ11-AA boards.  The problem only affects chips with date
codes prior to and including 8419 (1984, 19th week). If you don't have
an 11/73 just drop the rest of this (unless you're interested).

The problem is a sensitivity to specific integer data values  in 
additon or subtraction simultaneously with cache miss or dma transfer.

A similar problem occurs with Double Floating point operations, but only with
DMA activity.

The problem is most pronounced under worst case voltage (high) and temperature
(high) conditions.

If you have a doubtful date code (<= 8419) then you should run the tests at the
end of this article under the worst case conditions.

"... A ''hot line' has been established to answer any questions that may arise
and to explain the return policy for affected devices. The hot line
number is (617)-497-7765. ..."

To identify your date code use the following diagram (Very rough aproximation).

	top of board (component side up)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                          || || || ||      |
                          || || || ||      |
                          d4 d3 d2 d1      |
                                           |
     60                        31          |
     ----------------------------          |
     | ------           ------  |          |
     | |ctrl| DCJ11-AC  |    |<-|--- data chip
     | |chip|           |84xx|<-|--------Date code
     | ------           ------  |          |
     ----------------------------          |
     1                         30          |
                         === w9            |
                      w8 ===               |
                         === w7            |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   ---                    -|
               ----| |                    |
               |     |                    |
               |     |                    |
----------------     ----------------------

-----------------------------------cut here-------------------------------------
Program 1 tests J11 integer data sensitivity. put in with ODT, starts at 1000
a halt at 1046 means that you have the problem.
address value         code

	000004 		.=4
000004	000006 		.WORD 6
000006	000000 		.WORD 0
000010	000012 		.WORD 12
000012	000000 		.WORD 0
	000244 		.=244
000244	000246 		.WORD 246		;FPP TRAP
000246	000000 		.WORD 0
	001000 		.=1000
001000		BEGIN::
001000	012706 		MOV	#1000,SP
	001000
001004	106427 		MTPS	#340		;INTERUPTS OFF
	000340
001010	012737 		MOV	#415,@#177746	;INHIBIT CACHE
	000415
	177746
001016		START:
001016	012700 		MOV	#-1,R0		;SET UP R0
	177777
001022	012701 		MOV	#33677,R1	;FIRST OPERAND
	033677
001026	012704 		MOV	#2000,R4	;SECOND OPERAND
	002000
001032		101$:
001032	010402 		MOV	R4,R2		;INITALIZE
001034	060000 		ADD	R0,R0		;FIRST ADD (NEVER FAILS)
001036	060102 		ADD	R1,R2		;THIS MIGHT FAIL
001040	020227 		CMP	R2,#35677	;DID IT?
	035677
001044	001401 		BEQ	.+4		;BIF OK
001046	000000 		HALT			;USUALL FALURE R2 = 75677
001050	005200 		INC	R0		;MAKE R0 EQUAL TO -1 AGAIN
001052	112737 		MOVB	#120,@#XBUF	;WRITE ASCII 'P' TO CONSOLE
	000120
	177566
001060	000764 		BR	101$		;AND AGAIN
	001000 		.END	BEGIN
---------------------------test 2--------------------------------------------
for testing with rx02 (both integer and Fpp tests).
Uses fill buf (needs no media in drive).
load with ODT, starts at 1000.
		;
		;    THERE ARE 3 HALTS
		;	1122		J11 FAILURE (CALL DEC)
		;	1166		J11 FAILURE (CALL DEC)
		;	1212		RL FAILURE, TRY A DIFFERENT PACK
		;
address value         code
	000004 		.	=	4
000004	000006 		.WORD 6
000006	000000 		.WORD 0
000010	000012 		.WORD 12
000012	000000 		.WORD 0
	000244 		.	=	244
000244	000246 		.WORD 246		;FPP TRAP
000246	000000 		.WORD 0
	001000 		.	=	1000
001000		BEGIN::
001000	012706 		MOV	#1000,SP	;SET UP STACK
	001000
001004	000237 		SPL	7		;INTERUPTS OFF
001006	000005 		RESET
001010	012737 		MOV	#400,@#177746	;ENABLE CACHE
	000400
	177746
001016		START:
001016	012703 		MOV	#RECANS,R3	;ERROR BUFFER
	002060
001022	012702 		MOV	#RESLT1,R2	;UPPER WORD RESULT
	002020
001026	012704 		MOV	#DATS1,R4	;UPPER WORD DATA
	002000
001032	004737 		JSR	PC,@#FLTADD	;DO FPP TEST (WORST CASE)
	001070
001036	012704 		MOV	#DATS2,R4	;UPPER WORD DATA
	002030
001042	012702 		MOV	#RESLT2,R2	;UPPER WORD RESULT
	002050
001046	004737 		JSR	PC,@#FLTADD	;THE OTHER CASE
	001070
001052	004737 		JSR	PC,@#LOWER	;INTEGER TEST
	001126
001056	112737 		MOVB	#'P,@#XBUF	;PRINT END OF PASS MARKER
	000120
	177566
001064	000167 		JMP	START		;AND DO IT AGAIN
	177726
001070		FLTADD:
001070	012705 		MOV	#500,R5		;LOOPING COUNT
	000500
001074	170127 		LDFPS	#7700		;SET TO DOUBLE PRECISION
	007700
001100	004737 		JSR	PC,@#RXSERV	;STARTUP DMA
	001174
001104		101$:
001104	010401 		MOV	R4,R1		;POINT TO TEST DATA
001106	172421 		LDD	(R1)+,AC0	;FIRST OPERAND
001110	172021 		ADDD	(R1)+,AC0	;TRY ERROR CAUSING OPERATION
001112	173412 		CMPD	(R2),AC0	;TEST IT
001114	001402 		BEQ	102$
001116	174013 		STD	AC0,(R3)	;ERROR
001120	000000 		HALT			;2060-2066 HAS BAD
001122		102$:
001122	077510 		SOB	R5,101$		;LOOP
001124	000207 		RTS	PC		;AND GO BACK
001126		LOWER:
001126	012705 		MOV	#500,R5		;LOOP COUNT
	000500
001132	014100 		MOV	-(R1),R0	;LOAD -1 TO R0
001134	012701 		MOV	#33677,R1	;FIRST OPERAND
	033677
001140	012704 		MOV	#2000,R4	;SECOND OPERAND
	002000
001144	004737 		JSR	PC,@#RXSERV
	001174
001150		150$:
001150	010402 		MOV	R4,R2		;INITALIZE
001152	060000 		ADD	R0,R0		;FIRST ADD (NEVER FAILS)
001154	060102 		ADD	R1,R2		;THIS MIGHT FAIL
001156	020227 		CMP	R2,#35677	;DID IT?
	035677
001162	001401 		BEQ	152$		;BIF OK
001164	000000 		HALT			;USUALL FALURE R2 = 75677
001166		152$:
001166	005200 		INC	R0		;MAKE R0 EQUAL TO -1 AGAIN
001170	077511 		SOB	R5,150$		;AND AGAIN
001172	000207 		RTS	PC		;BYE
		;*********************************************************
		; LOAD 177(8) WORDS (DMA) FROM RXDATA
		;*********************************************************
001174		RXSERV:
001174	105737 		TSTB	@#RXCSR		;CHECK FOR ERRORS
	177170
001200	100004 		BPL	5$		;BIF OK
001202	013737 		MOV	@#RXDB,@#500	;SAVE AT 500
	177172
	000500
001210	000000 		HALT			;SORRY, TRY ANOTHER PACK
001212	032737 	5$:	BIT	#40,@#RXCSR	;CONTROLER READY?
	000040
	177170
001220	001774 		BEQ	5$
001222	012737 		MOV	#401,@#RXCSR	;FILL BUFFER,(INTR OFF)
	000401
	177170
001230	105737 	10$:	TSTB	@#RXCSR		;TR READY?
	177170
001234	100375 		BPL	10$		;WAIT FOR IT
001236	012737 		MOV	#177,@#RXDB	;LOAD WC
	000177
	177172
001244	105737 	20$:	TSTB	@#RXCSR		;TR READY?
	177170
001250	100375 		BPL	20$		;WAIT FOR IT
001252	012737 		MOV	#RXDATA,@#RXDB	;SET XFER ADDRESS
	004000
	177172
001260	000207 		RTS	PC		;AND GOBACK
	002000 		.=2000
002000		DATS1:
002000	040267 		.WORD	40267,-1,-1,-1	;UPPER WORD
002002	177777
002004	177777
002006	177777
002010	040204 		.WORD	40204,0,-1,-1
002012	000000
002014	177777
002016	177777
002020		RESLT1:				;EXPECTED RESULT
002020	040436 		.WORD	40436,0,77777,-1
002022	000000
002024	077777
002026	177777
002030		DATS2:				;LOWER WORD
002030	040377 		.WORD	40377,173777,-1,-1
002032	173777
002034	177777
002036	177777
002040	040200 		.WORD	40200,2000,-1,-1
002042	002000
002044	177777
002046	177777
002050		RESLT2:				;EXPECTED RESULT 2
002050	040477 		.WORD	40477,177000,77777,-1
002052	177000
002054	077777
002056	177777
	002060 		. = 2060
002060		RECANS:
002060			.BLKW	4		;ERROR VALUE HERE
	004000 		. = 4000
004000		RXDATA:
004000			.BLKW	5000.		;DMA SPACE
	001000 		.END	BEGIN
---------------------------test 3-----------------------------------------
Same as test 2 but uses RL02/1 (needs a pack) to read from.
load with ODT, starts at 1000.
		; DON'T FORGET TO WRITE PROTECT THE PACK
		;    THERE ARE 3 HALTS
		;	1136		J11 FAILURE (CALL DEC)
		;	1202		J11 FAILURE (CALL DEC)
		;	1220		RL FAILURE, TRY A DIFFERENT PACK
		;
address value         code
	000004 		.	=	4
000004	000006 		.WORD 6
000006	000000 		.WORD 0
000010	000012 		.WORD 12
000012	000000 		.WORD 0
	000244 		.	=	244
000244	000246 		.WORD 246		;FPP TRAP
000246	000000 		.WORD 0
	001000 		.	=	1000
001000		BEGIN::
001000	012706 		MOV	#1000,SP	;SET UP STACK
	001000
001004	000237 		SPL	7		;INTERUPTS OFF
001006	000005 		RESET
001010	012737 		MOV	#13,@#RLDA	;RESET RL
	000013
	174404
001016	012737 		MOV	#4,@#RLCSR	;DO IT
	000004
	174400
001024	012737 		MOV	#400,@#177746	;ENABLE CACHE
	000400
	177746
001032		START:
001032	012703 		MOV	#RECANS,R3	;ERROR BUFFER
	002060
001036	012702 		MOV	#RESLT1,R2	;UPPER WORD RESULT
	002020
001042	012704 		MOV	#DATS1,R4	;UPPER WORD DATA
	002000
001046	004737 		JSR	PC,@#FLTADD	;DO FPP TEST (WORST CASE)
	001104
001052	012704 		MOV	#DATS2,R4	;UPPER WORD DATA
	002030
001056	012702 		MOV	#RESLT2,R2	;UPPER WORD RESULT
	002050
001062	004737 		JSR	PC,@#FLTADD	;THE OTHER CASE
	001104
001066	004737 		JSR	PC,@#LOWER	;INTEGER TEST
	001142
001072	112737 		MOVB	#'P,@#XBUF	;PRINT END OF PASS MARKER
	000120
	177566
001100	000167 		JMP	START		;AND DO IT AGAIN
	177726
001104		FLTADD:
001104	012705 		MOV	#500,R5		;LOOPING COUNT
	000500
001110	170127 		LDFPS	#7700		;SET TO DOUBLE PRECISION
	007700
001114	004737 		JSR	PC,@#RLSTRT	;STARTUP DMA
	001210
001120		101$:
001120	010401 		MOV	R4,R1		;POINT TO TEST DATA
001122	172421 		LDD	(R1)+,AC0	;FIRST OPERAND
001124	172021 		ADDD	(R1)+,AC0	;TRY ERROR CAUSING OPERATION
001126	173412 		CMPD	(R2),AC0	;TEST IT
001130	001402 		BEQ	102$
001132	174013 		STD	AC0,(R3)	;ERROR
001134	000000 		HALT			;2060-2066 HAS BAD
001136		102$:
001136	077510 		SOB	R5,101$		;LOOP
001140	000207 		RTS	PC		;AND GO BACK
001142		LOWER:
001142	012705 		MOV	#500,R5		;LOOP COUNT
	000500
001146	014100 		MOV	-(R1),R0	;LOAD -1 TO R0
001150	012701 		MOV	#33677,R1	;FIRST OPERAND
	033677
001154	012704 		MOV	#2000,R4	;SECOND OPERAND
	002000
001160	004737 		JSR	PC,@#RLSTRT
	001210
001164		150$:
001164	010402 		MOV	R4,R2		;INITALIZE
001166	060000 		ADD	R0,R0		;FIRST ADD (NEVER FAILS)
001170	060102 		ADD	R1,R2		;THIS MIGHT FAIL
001172	020227 		CMP	R2,#35677	;DID IT?
	035677
001176	001401 		BEQ	152$		;BIF OK
001200	000000 		HALT			;USUALL FALURE R2 = 75677
001202		152$:
001202	005200 		INC	R0		;MAKE R0 EQUAL TO -1 AGAIN
001204	077511 		SOB	R5,150$		;AND AGAIN
001206	000207 		RTS	PC		;BYE
		;*********************************************************
		; READ 5000(10) WORDS INTO RLDATA
		;*********************************************************
001210		RLSTRT:
001210	005737 		TST	@#RLCSR		;CHECK FOR ERRORS
	174400
001214	100001 		BPL	10$		;BIF OK
001216	000000 		HALT			;SORRY, TRY ANOTHER PACK
001220	012737 	10$:	MOV	#13,@#RLDA
	000013
	174404
001226	012737 		MOV	#4,@#RLCSR	;RESET IT
	000004
	174400
001234	132737 	11$:	BITB	#1,@#RLCSR	;READY?
	000001
	174400
001242	001774 		BEQ	11$		;WAIT FOR IT
001244	105737 	12$:	TSTB	@#RLCSR
	174400
001250	100375 		BPL	12$		;DONE SET?
001252	012737 		MOV	#RLDATA,@#RLBA	;SET XFER ADDRESS
	004000
	174402
001260	005037 		CLR	@#RLDA		;SET FOR ZERO
	174404
001264	012737 		MOV	#-5000.,@#RLWC	;5000 WORDS
	166170
	174406
001272	012737 		MOV	#16,@#RLCSR	;READ IT
	000016
	174400
001300	000207 		RTS	PC		;AND GOBACK
	002000 		.	=	2000
002000		DATS1:
002000	040267 		.WORD	40267,-1,-1,-1	;UPPER WORD
002002	177777
002004	177777
002006	177777
002010	040204 		.WORD	40204,0,-1,-1
002012	000000
002014	177777
002016	177777
002020		RESLT1:				;EXPECTED RESULT
002020	040436 		.WORD	40436,0,77777,-1
002022	000000
002024	077777
002026	177777
002030		DATS2:				;LOWER WORD
002030	040377 		.WORD	40377,173777,-1,-1
002032	173777
002034	177777
002036	177777
002040	040200 		.WORD	40200,2000,-1,-1
002042	002000
002044	177777
002046	177777
002050		RESLT2:				;EXPECTED RESULT 2
002050	040477 		.WORD	40477,177000,77777,-1
002052	177000
002054	077777
002056	177777
	002060 		. = 2060
002060		RECANS:
002060			.BLKW	4		;ERROR VALUE HERE
	004000 		. = 4000
004000		RLDATA:
004000			.BLKW	5000.		;DMA SPACE
	001000 		.END	BEGIN
-- 
Stephen C. Woods (VA Wadsworth Med Ctr./UCLA Dept. of Neurology)
uucp:	{ {ihnp4, uiucdcs}!bradley, hao, trwrb, sdcrdcf}!cepu!scw
ARPA: cepu!scw@ucla-cs location: N 34 3' 9.1" W 118 27' 4.3"

chas@idis.UUCP (11/16/84)

Does anyone know of a phone number at DEC I could call if I have a 
defective 11/73 (DDJ11-AC/KDJ11-AA board).  I tried the phone number
given in net.sources I.D. cepu.396, but the number is disconnected.
I also talked to people at DEC but nobody even heard of the defect!
This doesn't surprise me.