
2-42
Functional Description
that could be used for other system tasks. The preferred method of
detecting interrupts in most systems is hardware interrupts. In this case,
the SYM53C896 asserts the Interrupt Request (INTA/ or INTB/) line that
interrupts the microprocessor, causing the microprocessor to execute an
interrupt service routine. A hybrid approach would use hardware
interrupts for long waits, and use polling for short waits.
SCSI Function A is routed to PCI Interrupt INTA/. SCSI Function B is
normally routed to INTB/, but can be routed to INTA/ if a pull-up is
connected to MAD[4]. See
Section 3.7, “MAD Bus Programming”
for
additional information.
2.2.16.2 Registers
The registers in the SYM53C896 that are used for detecting or defining
interrupts are ISTAT,
SCSI Interrupt Status Zero (SIST0)
,
SCSI Interrupt
Status One (SIST1)
,
SCSI Interrupt Enable Zero (SIEN0)
,
SCSI Interrupt
Enable One (SIEN1)
,
DMA Control (DCNTL)
, and
DMA Interrupt Enable
(DIEN)
.
ISTAT –
The ISTAT register includes the
Interrupt Status Zero (ISTAT0)
,
Interrupt Status One (ISTAT1)
,
Mailbox Zero (MBOX0)
, and
Mailbox One
(MBOX1)
registers. It is the only register that can be accessed as a slave
during the SCRIPTS operation. Therefore, it is the register that is polled
when polled interrupts are used. It is also the first register that should be
read after the INTA/ (or INTB/) pin is asserted in association with a
hardware interrupt. The INTF (Interrupt-on-the-Fly) bit should be the first
interrupt serviced. It must be written to one to be cleared. This interrupt
must be cleared before servicing any other interrupts.
See Register 0x14,
Interrupt Status Zero (ISTAT0)
, Bit 5 signal process in
Chapter 4, “Registers”
for additional information.
The host (C Code) or the SCRIPTS code could potentially try to access
the mailbox bits at the same time.
If the SIP bit in the
Interrupt Status Zero (ISTAT0)
register is set, then a
SCSI-type interrupt has occurred and the
SCSI Interrupt Status Zero
(SIST0)
and
SCSI Interrupt Status One (SIST1)
registers should be read.
If the DIP bit in the
Interrupt Status Zero (ISTAT0)
register is set, then a
DMA-type interrupt has occurred and the
DMA Status (DSTAT)
register
should be read.