From 08783e4326bdbc86e52f575001c35de260a93f78 Mon Sep 17 00:00:00 2001 From: Juan Castillo Date: Fri, 11 Jul 2014 10:23:18 +0100 Subject: [PATCH] FVP: Ensure system reset wake-up results in cold boot platform_get_entrypoint() did not consider that a wakeup due to System Reset Pin (by reading the power controller's PSYSR) requires a cold boot. As a result, the code would execute the warm boot path and eventually panic because entrypoint mailboxes are empty. This patch ensures that the following wake-up reasons result in cold boot: - Cold Power-on - System Reset Pin (includes reset by software) Fixes ARM-software/tf-issues#217 Change-Id: I65ae0a0f7a46548b575900a5aac107d352b0e2cd --- plat/fvp/aarch64/fvp_helpers.S | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plat/fvp/aarch64/fvp_helpers.S b/plat/fvp/aarch64/fvp_helpers.S index f856f460..3cd0b465 100644 --- a/plat/fvp/aarch64/fvp_helpers.S +++ b/plat/fvp/aarch64/fvp_helpers.S @@ -122,8 +122,11 @@ func platform_get_entrypoint str w2, [x1, #PSYSR_OFF] ldr w2, [x1, #PSYSR_OFF] ubfx w2, w2, #PSYSR_WK_SHIFT, #PSYSR_WK_MASK - cbnz w2, warm_reset - mov x0, x2 + cmp w2, #WKUP_PPONR + beq warm_reset + cmp w2, #WKUP_GICREQ + beq warm_reset + mov x0, #0 b exit warm_reset: /* --------------------------------------------- -- 2.30.2