• RXDE interrupt line is used to indicate a descriptor error event
in
a specific
RX
channel descriptor
table. A bit for the related channel is asserted
in
the MALO_RXDEIR. See "Descriptor Error
Interrupt Registers (MALO_ TXDEIR, MALO_RXDEIR)" on page 20-32.
• SERR
interrupt is used to report a system error indicated by MAL. For more information on
handling the
SERR interrupts, see "Error Handling" on page 20-19 and "Error Registers" on
page
20-29.
20.7.3 Error Handling
MAL handles errors on a per-channel basis. Within a COMMAC channel, errors may arise from the
COM MAC (detected as an OPB error),
or
from the memory access operations involved
in
MAL
activity (detected as a PLB/descriptor error).
When a bus error occurs, MAL is notified by an
OPB or PLB error signal. OPB errors are related to a
specific channel and therefore channel operation is stopped.
In
the case of a PLB error, MAL cannot
identify which channel is involved, therefore channel operation is not stopped. When a descriptor error
occurs, MAL can again identify the channel involved, so channel operation is stopped. MAL stops
channel operation by clearing the associated bit
in
the MALO_ TXCASR
or
MALO_RSCASR register.
MAL keeps a record of the channels that experience errors and are made inactive.
It
also keeps a
record of the characteristics of the first (or last) error detected (see
"End of Buffer Interrupt Status
Registers" on page 20-28).
20.7.3.1
Error Detection
The MAL communication, both with COMMACs and with memory, is carried out via the OPB
or
PLB.
As long as this bus communication is error-free and no descriptor errors are detected, MAL maintains
normal activity with the channels set by the processor as active
in
the Channel Active Registers.
When an error is detected while performing a transfer for a channel, MAL asserts a maskable
interrupt signal.
If
the identity of the channel is known (as is the case for OPB errors
or
descriptor
errors) then MAL immediately halts the dialogue with the channel. No further transactions are made,
and that channel is registered by MAL as a nonactive channel. MAL resets the channel by resetting its
active bit
in
the Channel Active Register. Software must access the Channel Active Register in order
to reactivate the channel.
If the identity of the channel that caused the error is not known (as is the case for PLB errors) then
MAL continues to work normally. Error resolution and channel de-activation are the responsibility of
the software.
20.7.3.2 Indicated Errors
Error description is stored
in
the Error Status Register (MALO_ESR), (see "MAL Error Status Register
(MALO_ESR)" on page 20-29).
•
Descriptor Error
A descriptor error is a data error recognized during access to the descriptor table. The error can
occur during TX
or
RX transmission.
For RX channels, a descriptor error occurs when MAL accesses a descriptor
in
which the Empty bit
is cleared.
Preliminary
Memory Access Layer 20-19