diff options
Diffstat (limited to 'meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0032-Disable-eSPI-initialization-in-u-boot-for-normal-boo.patch')
-rw-r--r-- | meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0032-Disable-eSPI-initialization-in-u-boot-for-normal-boo.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0032-Disable-eSPI-initialization-in-u-boot-for-normal-boo.patch b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0032-Disable-eSPI-initialization-in-u-boot-for-normal-boo.patch new file mode 100644 index 000000000..018ab07cf --- /dev/null +++ b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0032-Disable-eSPI-initialization-in-u-boot-for-normal-boo.patch @@ -0,0 +1,60 @@ +From 08f2b4f0464ef8abcf32511f8549233359d16eed Mon Sep 17 00:00:00 2001 +From: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +Date: Wed, 2 Jun 2021 13:03:47 -0700 +Subject: [PATCH] Disable eSPI initialization in u-boot for normal booting + cases + +Initializing eSPI in u-boot introduces a small blind window of +handshaking when BMC jumps from boot loader to kernel and it causes +an infinite PCH waiting issue in ME recovery mode. During the power +on handshaking, PCH keeps waiting for OOB_FREE to continue its +booting so the OOB_FREE actually means that BMC is fully ready for +the power on handshake. To prevent the small blind window, this +commit removes eSPI initialization in u-boot for normal booting +cases and makes the kernel eSPI driver responsible for full +eSPI initialization. + +eSPI will be initialized in u-boot only in these specific cases: +1. When FFUJ (Force Firmware Update Jumper) is populated. +2. When BMC booting is stopped at u-boot by typing a key. +3. When BMC goes to u-boot due to the boot failure condition. + +Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +--- + board/aspeed/ast2600_intel/intel.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/board/aspeed/ast2600_intel/intel.c b/board/aspeed/ast2600_intel/intel.c +index 54f53d77c476..f3f1d8114616 100644 +--- a/board/aspeed/ast2600_intel/intel.c ++++ b/board/aspeed/ast2600_intel/intel.c +@@ -201,6 +201,10 @@ static void gpio_passthru_init(void) + + void board_pre_abort_autoboot(void) + { ++ if (!read_ffuj()) { ++ espi_init(); ++ kcs_init(); ++ } + } + + #define AST_LPC_BASE 0x1e789000 +@@ -625,7 +629,6 @@ int board_late_init(void) + #endif + + pwm_init(); +- espi_init(); + + /* Add reset reason to bootargs */ + snprintf(value, sizeof(value), "0x%x", gd->reset_reason); +@@ -645,6 +648,7 @@ int board_late_init(void) + gpio_passthru_init(); + + if (read_ffuj()) { ++ espi_init(); + kcs_init(); + } + +-- +2.17.1 + |