When a high priority error level event has to be cleared, the acting processor must perform the following steps:
- Clear the error event at the source
- Write 0x1 to the appropriate bit in the error
group j of the ESM_STS_j register. This step will clear the raw
status
- If the error event is
still asserted (or re-asserted) the raw status will be set back to
0x1
- If there are no error
events, the level will de-assert
Note:
There is a possible software race
condition if software manages to write to the Clear register
before the de-asserted level from the source has been
synchronized to the ESM clock. If this is an issue, software
may perform a read-back at the source IP before writing the
clear register to insure order.
- Write the end of interrupt vector to the ESM_EOI
interrupt register
- If there are high
priority error level events enabled and pending, then a new pulse
will be generated
- If there are no
additional high priority error level events enabled and pending,
there will be no new pulse
- The level interrupt output is unaffected by EOI.
- Write a CLEAR (0x5) to the ESM_PIN_CTRL register.
This step is optional if the event is not enabled to influence the error pin
(error group j ESM_PIN_EN_SET_j register, but may be done regardless
as an extra CLEAR is not harmful.