summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0003-ast2600-intel-layout-environment-addr.patch
blob: 326f36df12a40917fb118bcaf944572d0695c432 (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
From 3195e1ec2d772d5e4c16ae5b60c294086cfc17be Mon Sep 17 00:00:00 2001
From: Kuiying Wang <kuiying.wang@intel.com>
Date: Thu, 12 Dec 2019 12:54:18 +0800
Subject: [PATCH] ast2600: intel-layout-environment-addr

Tested:
Both kernel and u-boot work at the area /dev/mtd/u-boot-env

Signed-off-by: Kuiying Wang <kuiying.wang@intel.com>
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com>
---
 common/board_r.c                | 13 ++++++++++---
 include/configs/aspeed-common.h | 11 ++++++++++-
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/common/board_r.c b/common/board_r.c
index 472987d5d52f..b665d0e30262 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -433,10 +433,17 @@ static int should_load_env(void)
 static int initr_env(void)
 {
 	/* initialize environment */
-	if (should_load_env())
-		env_relocate();
-	else
+	if (should_load_env()) {
+		/*
+		 * try again, in case the environment failed to load the first
+		 * time
+		 */
+		if (!gd->env_valid)
+			env_init();
+ 		env_relocate();
+	} else {
 		set_default_env(NULL, 0);
+	}
 #ifdef CONFIG_OF_CONTROL
 	env_set_hex("fdtcontroladdr",
 		    (unsigned long)map_to_sysmem(gd->fdt_blob));
diff --git a/include/configs/aspeed-common.h b/include/configs/aspeed-common.h
index cdbffc97a223..6065ec58db0a 100644
--- a/include/configs/aspeed-common.h
+++ b/include/configs/aspeed-common.h
@@ -65,9 +65,18 @@
 #endif
 
 #ifndef CONFIG_ENV_OFFSET
-#define CONFIG_ENV_OFFSET		0xF0000
+#define CONFIG_ENV_OFFSET		0x2400000
 #endif
 
+#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+#define CONFIG_ENV_OVERWRITE
+
+#define AST_FMC_CS0_BASE		0x20000000 /* CS0 */
+#define CONFIG_ENV_ADDR			(AST_FMC_CS0_BASE + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_OFFSET_REDUND	(CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE)
+#define CONFIG_ENV_ADDR_REDUND		(AST_FMC_CS0_BASE + CONFIG_ENV_OFFSET_REDUND)
+#define CONFIG_ENV_SIZE_REDUND		CONFIG_ENV_SIZE
+
 #define CONFIG_ENV_SECT_SIZE	(4 << 10)
 
 /*
-- 
2.7.4