summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0003-ast2600-intel-layout-environment-addr.patch
blob: 88d7cd01946bfa32bad9ba88b61096031bfd461c (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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
From 2a52808ddd6a6bef40bab9a15bd22b1c7988a798 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                  | 11 +++++++++--
 include/configs/aspeed-common.h   | 12 +++++++++++-
 include/configs/evb_ast2600_spl.h |  2 +-
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/common/board_r.c b/common/board_r.c
index a7f5371bac71..492d7f1cbe4c 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())
+	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
+	} 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 d1eb4688e68f..0ece4a1b9440 100644
--- a/include/configs/aspeed-common.h
+++ b/include/configs/aspeed-common.h
@@ -55,13 +55,23 @@
 #ifndef CONFIG_BOOTCOMMAND
 #define CONFIG_BOOTCOMMAND		"bootm 20080000"
 #endif
+#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+#define CONFIG_ENV_ADDR_REDUND
 #define CONFIG_ENV_OVERWRITE
+#define AST_FMC_CS0_BASE		0x20000000 /* CS0 */
+#define CONFIG_ENV_OFFSET		0x2400000
+#define CONFIG_ENV_ADDR			(AST_FMC_CS0_BASE + CONFIG_ENV_OFFSET)
+#define CONFIG_ENV_SIZE			0x10000
+#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)
 
 #define CONFIG_SYS_BOOTM_LEN 		(0x800000 * 2)
 
 #define CONFIG_EXTRA_ENV_SETTINGS \
 	"verify=yes\0"	\
-	"spi_dma=no\0" \
+	"spi_dma=yes\0" \
 	""
 
 /*
diff --git a/include/configs/evb_ast2600_spl.h b/include/configs/evb_ast2600_spl.h
index 8bbd6e18727a..8529f46c0b19 100644
--- a/include/configs/evb_ast2600_spl.h
+++ b/include/configs/evb_ast2600_spl.h
@@ -19,7 +19,7 @@
 
 /* Environment */
 #define CONFIG_ENV_SIZE			0x10000
-#define CONFIG_ENV_OFFSET		0x90000
+#define CONFIG_ENV_OFFSET		0x2400000
 #define CONFIG_ENV_SECT_SIZE		(4 << 10)
 
 #ifdef CONFIG_SPL_TINY
-- 
2.7.4