Intel
®
81341 and 81342—Application DMA Unit
Intel
®
81341 and 81342 I/O Processors
Developer’s Manual
December 2007
518
Order Number: 315037-002US
5.13
Interrupts
ADMA can generate an interrupt to the 81341 and 81342. The
Interrupt Enable
bit in
the ADMA Descriptor Control Register (ADCR.ie) determines whether the ADMA
generates an interrupt upon successful, error-free completion. Error conditions
also generate an interrupt. Each ADMA has three interrupt
outputs connected to the Interrupt Controller Unit (see
Chapter 3, “Interrupt Controller
Unit”)
:
where x = 0, 1, and 2 for three ADMA channels.
Once the ADMA is enabled, the ADMA loads the chain descriptor fields into the
respective registers.
summarizes the status flags and conditions
when interrupts are generated in the ADMA Channel Status Register (ACSR).
Note:
End-of-Transfer and End-of-Chain flags are set only when Interrupt Enable is set. When
Interrupt Enable is clear, then the above flags are always set to 0. End-of-Transfer
Interrupt and End of Chain Interrupt can only be reported in the ACSR when the
descriptor fetch and processing completed without any reportable errors. However,
multiple error conditions may occur and be reported together. Also, because the ADMA
does not stop after reporting the End-of-Transfer interrupt, an error may occur before
the End-of-Transfer interrupt is serviced and cleared.
• ADMA x End-of-Transfer Interrupt
• ADMA x End-of-Chain Interrupt
• ADMA x Error Interrupt
Table 313. ADMA Interrupt Summary
Interrupt Condition
Channel Status Register (ACSR)
Flags
Interrupt
Generated
A
ct
iv
e
E
n
d
o
f
T
ra
n
sf
e
r
E
n
d
o
f
C
h
a
in
In
te
rn
a
l
In
te
rf
a
ce
P
a
ri
ty
E
rr
o
r
In
te
rn
a
l
B
u
s
M
a
st
e
r
A
b
o
rt
in
te
rn
a
l
B
u
s
T
a
rg
e
t
A
b
o
rt
M
C
U
P
o
rt
A
b
o
rt
Z
e
ro
R
e
su
lt
B
u
ff
e
r
E
rr
o
r
Z
e
ro
R
e
su
lt
B
u
ff
e
r
E
rr
o
r
Q
In
te
rr
u
p
t
E
n
a
b
le
d
In
te
rr
u
p
t
D
is
a
b
le
d
Byte count == 0 && (NDARx != NULL || Resume == 1
a
) (End of Transfer)
a. During normal operation (non-error), when the Resume bit is set while the last descriptor is being executed, the ADMA re-reads
the current descriptor to get the address of the appended chain descriptor. When the re-read last descriptor contains a NULL
NDARx pointer, the ADMA goes inactive by also setting the End-of-Chain bit. This is a boundary condition that can occur in a
scenario where one or more descriptors were appended to the end of the previous descriptor chain, but the Resume bit was not
set until the last descriptor of the appended descriptor(s) was being executed.
1 1 0 0 0 0 0 0 0
Y
N
Byte Count == 0 && NDARx == NULL (End of Chain) & resume == 0
0 X
b
b. “X” - Don’t Care.
1
a
0 0 0 0 0 0
Y
N
Internal Interface Parity Error
0 X X 1 0 0 0 0 0
Y
Y
Internal Bus Master Abort
0 X X 0 1 0 0 0 0
Y
Y
Internal Bus Target Abort (Host Master Abort, Host Target Abort,
Unknown Split Error, or other Internal Bus errors)
0 X X 0 0 1 0 0 0
Y
Y
MCU Port Abort
0 X X 0 0 0 1 0 0
Y
Y
Zero Result Buffer Error
c
|| Zero Result Buffer Error P
c. The error status bit in the ACSR is set and an error interrupt is signaled to the Intel XScale
®
processor when the Status Write
Back Enable bit in the ADCR is cleared. When the Status Write Back Enable in the ADCR is set, the error status bit and the Transfer
Complete bit in the Transfer Status field of the ABCR are written back to memory; the error status bit in the ACSR is not set and
there is no Intel XScale
®
processor interrupt.
0 X X 0 0 0 0 1 0
Y
Y
Zero Result Buffer Error Q
c
0 X X 0 0 0 0 0 1
Y
Y