Specifications
  Cortex-M3 / Cortex-M3 with ETM (AT420/AT425) 
 Date of Issue: 12-Nov-2008  ARM Errata Notice  Document Revision 2.0 
PR326-PRDC-009450 v2.0 
© Copyright ARM Limited 2008. All rights reserved.  Page 8 of 20 
Non Confidential 
Errata present on release r2p0-00rel0 
563915: Event Register is not set by interrupts and debug 
Status 
Affects:  product Cortex-M3, Cortex-M3 with ETM. 
Fault status:  Cat 2, Present in: r0p0,r1p0,r1p1,r1p1-00rel0,r1p1-01rel0,r2p0-00rel0, Open. 
Description 
The event register used for WFE wake-up events should be set for the following conditions: 
1.  Event communication (including SEV on local processor) 
2.  Any exception entering pending state when SEVONPEND is set 
3. Exception entry 
4. Exception exit 
5.  Debug event when debug is enabled 
In r0p0, r1p0, r1p1 and r2p0 versions of Cortex-M3 the event register is not set for the exception entry, 
exception exit or debug events. 
Conditions 
1.  An interrupt or debug event occurs whilst the internal event register is clear and the core is not sleeping 
2.  A WFE is executed 
3.  No further interrupts or events occur 
Implications 
If interrupts related to a WFE sleep can be generated before the WFE is executed then it may be possible for 
the event to be missed. The interrupt will occur and the handler will be executed for that interrupt but the event 
register will not be set. When the WFE is executed it will go to sleep and not wake up if no other events or 
interrupts occur. 
Workaround 
An implementation time workaround is to connect up the missing events to the RXEV input of Cortex-M3. This 
can be achieved by decoding interrupt events using ETMINTSTAT as well as using the HALTED output. RXEV 
needs to be asserted whenever ETMINTSTAT is equal to 3'b001 or 3'b010 or when HALTED is asserted. Since 
ETMINTSTAT is part of the ETM interface the ETM interface needs to be enabled for this workaround. This is 
achieved by asserting the ETMPWRUP input on Cortex-M3. 
A software workaround is to insert the SEV instruction at the beginning and end of all exception handlers. 










