summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0038-Disabling-serial-console-if-FFUJ-is-enabled.patch
blob: 372d69e2628d6613a961ec7d010fbcf64df6b87b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
From a9f5d0357701c817106cd158d377ef645309ccc2 Mon Sep 17 00:00:00 2001
From: gokulsanker <gokul.sanker.v.g@intel.com>
Date: Wed, 8 Dec 2021 01:44:19 +0530
Subject: [PATCH] If FFUJ is enabled serial console must be disabled

FFUJ mode user is not allowed to enter uboot command
line interface. Serial console is disabled by creating
an indefinite sleep if FFUJ is enabled, same
functionality is used in whitely platforms

Tested:
Serial console is disabled in FFUJ mode

Signed-off-by: gokulsanker <gokul.sanker.v.g@intel.com>
---
 common/autoboot.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/common/autoboot.c b/common/autoboot.c
index 8a99780423..21e59feea7 100644
--- a/common/autoboot.c
+++ b/common/autoboot.c
@@ -19,6 +19,7 @@ DECLARE_GLOBAL_DATA_PTR;
 
 #define MAX_DELAY_STOP_STR 32
 
+#define WAIT_STATE_TIMEOUT	10000
 #ifndef DEBUG_BOOTKEYS
 #define DEBUG_BOOTKEYS 0
 #endif
@@ -271,9 +272,14 @@ static int abortboot(int bootdelay)
 {
 	int abort = 0;
 
-	abort =	gpio_abort();
-	if (abort)
-		goto exit;
+	if (gpio_abort())
+	{
+		printf("#### BMC is in disabled state(FFU Jumper is asserted), "
+					"So BMC serial console disabled. ####\n");
+		while (1) {
+			mdelay(WAIT_STATE_TIMEOUT);
+		}
+	}
 
 	if (bootdelay >= 0)
 		abort = __abortboot(bootdelay);
-- 
2.17.1