From: Paul Kocialkowski <contact@paulk.fr>
Date: Sat, 27 Feb 2016 18:19:08 +0000 (+0100)
Subject: omap4: Check warm reset for reboot mode validity
X-Git-Tag: v2025.01-rc5-pxa1908~10030
X-Git-Url: http://git.dujemihanovic.xyz/img/html/static/git-favicon.png?a=commitdiff_plain;h=69847dd8f0fd8ef7a5c751a6f117879b501c39fc;p=u-boot.git

omap4: Check warm reset for reboot mode validity

Since the SAR registers are filled with garbage on cold reset, this checks for a
warm reset to assert the validity of reboot mode.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---

diff --git a/arch/arm/cpu/armv7/omap4/boot.c b/arch/arm/cpu/armv7/omap4/boot.c
index bae49f4755..7f5791e9ed 100644
--- a/arch/arm/cpu/armv7/omap4/boot.c
+++ b/arch/arm/cpu/armv7/omap4/boot.c
@@ -9,6 +9,7 @@
 #include <common.h>
 #include <asm/io.h>
 #include <asm/omap_common.h>
+#include <asm/arch/sys_proto.h>
 #include <spl.h>
 
 static u32 boot_devices[] = {
@@ -67,6 +68,9 @@ int omap_reboot_mode(char *mode, unsigned int length)
 	if (length < 2)
 		return -1;
 
+	if (!warm_reset())
+		return -1;
+
 	limit = (length < OMAP_REBOOT_REASON_SIZE) ? length :
 		OMAP_REBOOT_REASON_SIZE;