From a0b53f0ff5f4fcfe55928fd482aa82f63f30a9fb Mon Sep 17 00:00:00 2001 From: Stefan Reinauer Date: Wed, 28 Aug 2013 16:27:22 -0700 Subject: [PATCH] vboot: Use stage_exit() on ARM Long term we should unify ARM and x86 handling of situations like this. Signed-off-by: Stefan Reinauer BRANCH=none TEST=needs further changes BUG=none Change-Id: Iac598234262264117553c8ce915ddcb7fcc6509e Reviewed-on: https://chromium-review.googlesource.com/167402 Reviewed-by: David Hendricks Reviewed-by: Aaron Durbin Tested-by: Stefan Reinauer Commit-Queue: Stefan Reinauer --- src/vendorcode/google/chromeos/vboot_loader.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/vendorcode/google/chromeos/vboot_loader.c b/src/vendorcode/google/chromeos/vboot_loader.c index 10fa52d698..97178f67c4 100644 --- a/src/vendorcode/google/chromeos/vboot_loader.c +++ b/src/vendorcode/google/chromeos/vboot_loader.c @@ -30,6 +30,7 @@ #include #include #include +#include #include "chromeos.h" #include "fmap.h" #include "vboot_context.h" @@ -237,11 +238,15 @@ static void vboot_load_ramstage(struct vboot_handoff *vboot_handoff, timestamp_add_now(TS_END_COPYRAM); +#if CONFIG_ARCH_X86 __asm__ volatile ( "movl $0, %%ebp\n" "jmp *%%edi\n" :: "D"(entry_point) ); +#elif CONFIG_ARCH_ARMV7 + stage_exit(entry_point); +#endif } void vboot_verify_firmware(struct romstage_handoff *handoff)