From: "Guo, Mang" <mang.guo@intel.com>
To: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Cc: "Wei, David" <david.wei@intel.com>,
"Lu, ShifeiX A" <shifeix.a.lu@intel.com>
Subject: [Patch][edk2-platforms/devel-MinnowBoard3] Fix S3 resume failure
Date: Wed, 12 Apr 2017 06:52:04 +0000 [thread overview]
Message-ID: <22D2C85ED001C54AA20BFE3B0E4751D152501751@SHSMSX103.ccr.corp.intel.com> (raw)
When restoring MSR for S3 setting, SmmStartupThisAp will return error if CPU index is BSP. This issue caused S3 resume failed sometimes. This patch is mainly fix this issue.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Guo Mang <mang.guo@intel.com>
---
.../PlatformDsc/PcdsFeatureFlag.dsc | 7 ++++++-
.../Cpu/PowerManagement/Smm/PowerMgmtS3.c | 23 ++++++++++++----------
2 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/Platform/BroxtonPlatformPkg/PlatformDsc/PcdsFeatureFlag.dsc b/Platform/BroxtonPlatformPkg/PlatformDsc/PcdsFeatureFlag.dsc
index 6762a41..19e27ad 100644
--- a/Platform/BroxtonPlatformPkg/PlatformDsc/PcdsFeatureFlag.dsc
+++ b/Platform/BroxtonPlatformPkg/PlatformDsc/PcdsFeatureFlag.dsc
@@ -1,7 +1,7 @@
## @file
# Platform Feature Pcd Description.
#
-# Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
#
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
@@ -91,3 +91,8 @@
# new core to see if we can re-enable this
gPlatformModuleTokenSpaceGuid.PcdDeprecatedFunctionRemove|FALSE
+ ## Indicates if SMM Startup AP in a blocking fashion.
+ # TRUE - SMM Startup AP in a blocking fashion.<BR>
+ # FALSE - SMM Startup AP in a non-blocking fashion.<BR>
+ # @Prompt SMM Startup AP in a blocking fashion.
+ gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmBlockStartupThisAp|FALSE
\ No newline at end of file
diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/Cpu/PowerManagement/Smm/PowerMgmtS3.c b/Silicon/BroxtonSoC/BroxtonSiPkg/Cpu/PowerManagement/Smm/PowerMgmtS3.c
index 4385320..eb36343 100644
--- a/Silicon/BroxtonSoC/BroxtonSiPkg/Cpu/PowerManagement/Smm/PowerMgmtS3.c
+++ b/Silicon/BroxtonSoC/BroxtonSiPkg/Cpu/PowerManagement/Smm/PowerMgmtS3.c
@@ -1,7 +1,7 @@
/** @file
This is the SMM driver for saving and restoring the powermanagement related MSRs.
- Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
@@ -140,15 +140,18 @@ RunOnAllLogicalProcessors (
// Run the procedure on all logical processors.
//
(*Procedure) (Buffer);
- for (Index = 1; Index < gSmst->NumberOfCpus; Index++) {
- Status = EFI_NOT_READY;
- while (Status != EFI_SUCCESS) {
- Status = gSmst->SmmStartupThisAp (Procedure, Index, Buffer);
- if (Status != EFI_SUCCESS) {
- //
- // SmmStartupThisAp might return failure if AP is busy executing some other code. Let's wait for sometime and try again.
- //
- MicroSecondDelay (PPM_WAIT_PERIOD);
+ for (Index = 0; Index < gSmst->NumberOfCpus; Index++) {
+ if (Index != gSmst->CurrentlyExecutingCpu) {
+ Status = EFI_NOT_READY;
+ while (Status != EFI_SUCCESS) {
+ Status = gSmst->SmmStartupThisAp (Procedure, Index, Buffer);
+ ASSERT(Status != EFI_INVALID_PARAMETER);
+ if (Status != EFI_SUCCESS) {
+ //
+ // SmmStartupThisAp might return failure if AP is busy executing some other code. Let's wait for sometime and try again.
+ //
+ MicroSecondDelay (PPM_WAIT_PERIOD);
+ }
}
}
}
--
2.10.1.windows.1
next reply other threads:[~2017-04-12 6:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-12 6:52 Guo, Mang [this message]
2017-04-12 8:14 ` [Patch][edk2-platforms/devel-MinnowBoard3] Fix S3 resume failure Wei, David
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=22D2C85ED001C54AA20BFE3B0E4751D152501751@SHSMSX103.ccr.corp.intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox