summaryrefslogtreecommitdiff
path: root/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0020-Add-system-reset-status-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0020-Add-system-reset-status-support.patch')
-rw-r--r--meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0020-Add-system-reset-status-support.patch164
1 files changed, 0 insertions, 164 deletions
diff --git a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0020-Add-system-reset-status-support.patch b/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0020-Add-system-reset-status-support.patch
deleted file mode 100644
index afdd610b3..000000000
--- a/meta-openbmc-mods/meta-common/recipes-bsp/u-boot/files/0020-Add-system-reset-status-support.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From 54616ade08517374200a332e50f68ee9d0fbf5c5 Mon Sep 17 00:00:00 2001
-From: Yong Li <yong.b.li@linux.intel.com>
-Date: Tue, 9 Apr 2019 14:42:05 +0800
-Subject: [PATCH] Add system reset status support
-
-Will display the reset reasons and other CPU information in u-boot,
-and save the reset reasons into kernel command line,
-for applications to query.
-
-Change-Id: I87ada3ecf14368519e4d09035bb1e09fdc05469b
-Signed-off-by: Yong Li <yong.b.li@linux.intel.com>
-Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
-
----
- arch/arm/include/asm/arch-aspeed/platform.h | 2 +
- arch/arm/mach-aspeed/ast-scu.c | 4 ++
- board/aspeed/ast-g5/ast-g5-intel.c | 73 +++++++++++++++++++++++++++++
- board/aspeed/ast-g5/ast-g5.c | 7 +++
- 4 files changed, 86 insertions(+)
-
-diff --git a/arch/arm/include/asm/arch-aspeed/platform.h b/arch/arm/include/asm/arch-aspeed/platform.h
-index 3b06e52..4e4140d 100644
---- a/arch/arm/include/asm/arch-aspeed/platform.h
-+++ b/arch/arm/include/asm/arch-aspeed/platform.h
-@@ -29,6 +29,8 @@
- #include <asm/arch/ast_g5_platform.h>
- #include <asm/arch/ast-g5-intel.h>
- #define CONFIG_BOARD_EARLY_INIT_F 1 /* Call board_early_init_f */
-+#define CONFIG_BOARD_LATE_INIT 1 /* Call board_late_init */
-+#define CONFIG_DISPLAY_CPUINFO 1
- #else
- #err "No define for platform.h"
- #endif
-diff --git a/arch/arm/mach-aspeed/ast-scu.c b/arch/arm/mach-aspeed/ast-scu.c
-index 3a9ba05..976c59b 100644
---- a/arch/arm/mach-aspeed/ast-scu.c
-+++ b/arch/arm/mach-aspeed/ast-scu.c
-@@ -494,6 +494,9 @@ void ast_scu_sys_rest_info(void)
- {
- u32 rest = ast_scu_read(AST_SCU_SYS_CTRL);
-
-+#ifdef AST_SOC_G5
-+ printf("RST : 0x%02x\n", rest);
-+#else
- if (rest & SCU_SYS_EXT_RESET_FLAG) {
- printf("RST : External\n");
- ast_scu_write(SCU_SYS_EXT_RESET_FLAG, AST_SCU_SYS_CTRL);
-@@ -506,6 +509,7 @@ void ast_scu_sys_rest_info(void)
- } else {
- printf("RST : CLK en\n");
- }
-+#endif
- }
-
- u32 ast_scu_get_vga_memsize(void)
-diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-intel.c
-index 01f8a13..e0bf9ee 100644
---- a/board/aspeed/ast-g5/ast-g5-intel.c
-+++ b/board/aspeed/ast-g5/ast-g5-intel.c
-@@ -303,6 +303,79 @@ static inline void ast_scu_write(uint32_t val, uint32_t reg)
- #endif
- }
-
-+
-+static void update_bootargs_cmd(const char *key, const char *value)
-+{
-+ int buf_len;
-+ char *buf;
-+ char *cmdline;
-+ char comp_key[128];
-+
-+ if (!key || (key[0] == '\0')) {
-+ printf("%s - Empty key not allowed\n", __func__);
-+ return;
-+ }
-+
-+ cmdline = getenv("bootargs");
-+
-+ /* Allocate space for maximum possible new command line */
-+ if (value)
-+ buf_len = strlen(cmdline) + strlen(key) + 3 + strlen(value);
-+ else
-+ buf_len = strlen(cmdline) + strlen(key) + 3;
-+
-+ buf = malloc(buf_len);
-+ if (!buf) {
-+ printf("%s: out of memory\n", __func__);
-+ return;
-+ }
-+ memset(buf, 0, buf_len);
-+
-+ if (!cmdline) {
-+ /* lets add key-value, though bootargs are empty */
-+ snprintf(buf, buf_len, "%s=%s", key, (value ? value : ""));
-+ setenv("bootargs", buf);
-+ free(buf);
-+ return;
-+ }
-+
-+ snprintf(comp_key, sizeof(comp_key), "%s=", key);
-+ char *start = strstr(cmdline, comp_key);
-+
-+ /* Check for full word match. Match should be start of cmdline
-+ * or there should be space before match */
-+ if (start && ((start == cmdline) || (*(start-1) == ' '))) {
-+ char *end = strchr(start, ' ');
-+ strncpy(buf, cmdline, (start - cmdline));
-+
-+ if (end)
-+ snprintf(buf, buf_len, "%s%s=%s %s", buf, key,
-+ (value ? value : ""), end+1);
-+ else
-+ snprintf(buf, buf_len, "%s%s=%s", buf, key,
-+ (value ? value : ""));
-+ } else {
-+ snprintf(buf, buf_len, "%s %s=%s", cmdline, key,
-+ (value ? value : ""));
-+ }
-+
-+ setenv("bootargs", buf);
-+ free(buf);
-+}
-+
-+void ast_g5_intel_late_init(void)
-+{
-+ char value[32];
-+ u32 reset_reason = 0;
-+
-+ /* save and clear reset status */
-+ reset_reason = ast_scu_read(AST_SCU_SYS_CTRL);
-+ snprintf(value, sizeof(value), "0x%x", reset_reason);
-+ ast_scu_write(0, AST_SCU_SYS_CTRL);
-+
-+ update_bootargs_cmd("resetreason", value);
-+}
-+
- static void pwm_init(void)
- {
- uint32_t val;
-diff --git a/board/aspeed/ast-g5/ast-g5.c b/board/aspeed/ast-g5/ast-g5.c
-index d41ef9c..0953677 100644
---- a/board/aspeed/ast-g5/ast-g5.c
-+++ b/board/aspeed/ast-g5/ast-g5.c
-@@ -19,6 +19,7 @@
- DECLARE_GLOBAL_DATA_PTR;
-
- extern void ast_g5_intel(void);
-+extern void ast_g5_intel_late_init(void);
-
- int board_early_init_f(void)
- {
-@@ -40,6 +41,12 @@ int board_init(void)
- return 0;
- }
-
-+int board_late_init(void)
-+{
-+ ast_g5_intel_late_init();
-+ return 0;
-+}
-+
- int dram_init(void)
- {
- u32 vga = ast_scu_get_vga_memsize();