148
STP2002QFP
Sun Microelectronics
Fast Ethernet, Parallel Port, SCSI (FEPS) - STP2002QFP
Work Around:
Device driver normally does not access the FAS366 after enabling DMA, so
it is not a problem. Device driver may access the FAS366 after enabling the
DMA, in the case of error recovery.
So, for a workaround, the driver should not access the FAS366 after
enabling DMA in SCSI CE and FAS366, until D_BCNT has started decre-
menting. After the first two bytes are written to the FAS366, it is safe for the
driver to access the FAS366. In the case of error handling, the device driver
already knows that something has gone wrong so it should reset SCSI CE first
and than access the FAS366, so the problem will not show up.
As described above (SCSI CE byte count gets frozen) reading the SCSI CE
BCNT can result in one byte getting stuck in SCSI CE. So the best way to
work-around this problem is to not access the FAS366 after the DMA has
been started, until either an interrupt or time-out has occurred. Upon an inter-
rupt or a time-out, the state of SCSI CE can be read first and then SCSI CE
can be reset. State of FAS366 can be read after resetting the SCSI CE.
9.1.1.3 D_ADDR Register is Not Initialized
D_ADDR register of the SCSI CE is not initialized after a power-on/soft re-
set.
Symptom:
If the address register has not been initialized (system was just powered on)
and if the D_BCNT was written with a value of 01, the wrong byte goes out
on the SCSI bus.
Root Cause:
If the sequence of programming SCSI CE was
Power on
Reset SCSI CE
Write BCNT
Write Addr
Write CSR
it may cause the wrong byte to go out on the SCSI bus if this was a SCSI write