ARM Technical Support Knowledge Articles

Why do Cortex-A7 and Cortex-A15 behave differently when handling WFE instructions ?

Applies to: Cortex-A7


Refer to page B1-1199 in the Architecture Reference Manual (rev C):

Pseudocode details of the Wait For Event lock mechanism

The WaitForEvent() pseudocode procedure optionally suspends execution until a WFE wake-up event
or reset occurs, or until some earlier time if the implementation chooses. It is IMPLEMENTATION 
DEFINED whether restarting execution after the period of suspension causes a ClearEventRegister() to 

In the case of Cortex-A15, it clears the event register when a wake-up event occurs. In the case of
Cortex-A7, it does not clear the event register. These are both valid implementations of the
spec. So it requires the execution of two WFE instructions on Cortex-A7 to return to 
STANDBYWFE state, after an SEV has been received (from another Cortex-A7 CPU or from another
cluster). But it only requires a single WFE on Cortex-A15.

Rate this article

Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential