[comp.protocols.tcp-ip.ibmpc] Yet another 3C503 lockup problem fixed

IJAH400@INDYVAX.IUPUI.EDU ("James A. Harvey") (04/07/90)

Here's a patch for the 3C503 lockup problem.  This is a different lockup
problem than the one Carl Beame reported.  The symptom is a lockup upon
the first receipt of a broadcast packet when the driver is installed.
Most systems appear to "recover" but the time taken to do this may be quite
a while on a system with not much broadcast traffic.  Assuming you have either
the 6.x beta test packet driver or the 5.x with the sti/cli swap fix already
in place the only code affected is the same and is in etopen where the shared
memory is setup:

OLD CODE:
	call    set_8390_eaddr  ; Now set the address in the 8390 chip
	call    set_8390_multi  ; Put the right stuff into 8390's multicast masks
	loadport		; Base of I/O regs
	setport	EN1_CURPAG	; Set current shared page for RX to work on
	mov al,	SM_RSTART_PG+1
	out dx,	al

NEW CODE:
	call    set_8390_eaddr  ; Now set the address in the 8390 chip
	call    set_8390_multi  ; Put the right stuff into 8390's multicast masks
	loadport		; Base of I/O regs
	setport EN_CCMD			;[jah] Switch to page 1 registers
	mov al,ENC_NODMA+ENC_PAGE1	;[jah]
	out dx, al			;[jah]
	setport	EN1_CURPAG	; Set current shared page for RX to work on
	mov al,	SM_RSTART_PG+1
	out dx,	al
	setport	EN1_CURPAG	; Set current shared page for RX to work on

I sent this into Russ Nelson, it should get into the "official" 6.x release
of the Clarkson packet drivers...

- Jim Harvey                      IUPUI Computing Services, DEC Systems Group
Internet: ijah400@indyvax.iupui.edu    BITNET: ijah400@indyvax    Disclaimer:
Opinions expressed here are mine, not necessarily those of Indiana University
"If you don't know where you're going, you'll probably end up somewhere else"