Add WFI in platform's unexpected error handlers

This patch adds a WFI instruction in the default implementations of
plat_error_handler() and plat_panic_handler(). This potentially reduces
power consumption by allowing the hardware to enter a low-power state.
The same change has been made to the FVP and Juno platform ports.

Change-Id: Ia4e6e1e5bf1ed42efbba7d0ebbad7be8d5f9f173
This commit is contained in:
Sandrine Bailleux 2016-08-18 09:24:40 +01:00
parent 974603b554
commit 8c9e1af0b5
3 changed files with 8 additions and 4 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@ -28,6 +28,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <arch_helpers.h>
#include <board_arm_def.h>
#include <debug.h>
#include <errno.h>
@ -61,5 +62,5 @@ void plat_error_handler(int err)
/* Loop until the watchdog resets the system */
for (;;)
;
wfi();
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2015-2016, ARM Limited and Contributors. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@ -28,6 +28,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <arch_helpers.h>
#include <errno.h>
#include <v2m_def.h>
@ -45,5 +46,5 @@ void plat_error_handler(int err)
/* Loop until the watchdog resets the system */
for (;;)
;
wfi();
}

View File

@ -130,6 +130,7 @@ endfunc bl1_plat_prepare_exit
* -----------------------------------------------------
*/
func plat_error_handler
wfi
b plat_error_handler
endfunc plat_error_handler
@ -139,5 +140,6 @@ endfunc plat_error_handler
* -----------------------------------------------------
*/
func plat_panic_handler
wfi
b plat_panic_handler
endfunc plat_panic_handler