Commit 08783e43 authored by Juan Castillo's avatar Juan Castillo
Browse files

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
parent a1a44177
...@@ -122,8 +122,11 @@ func platform_get_entrypoint ...@@ -122,8 +122,11 @@ func platform_get_entrypoint
str w2, [x1, #PSYSR_OFF] str w2, [x1, #PSYSR_OFF]
ldr w2, [x1, #PSYSR_OFF] ldr w2, [x1, #PSYSR_OFF]
ubfx w2, w2, #PSYSR_WK_SHIFT, #PSYSR_WK_MASK ubfx w2, w2, #PSYSR_WK_SHIFT, #PSYSR_WK_MASK
cbnz w2, warm_reset cmp w2, #WKUP_PPONR
mov x0, x2 beq warm_reset
cmp w2, #WKUP_GICREQ
beq warm_reset
mov x0, #0
b exit b exit
warm_reset: warm_reset:
/* --------------------------------------------- /* ---------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment