From: "Chasel, Chiu" <chasel.chiu@intel.com>
To: edk2-devel@lists.01.org
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>,
Star Zeng <star.zeng@intel.com>,
Chasel Chiu <chasel.chiu@intel.com>
Subject: [PATCH] MinPlatformPkg: Support TCO base locked by FSP
Date: Tue, 15 Jan 2019 12:07:27 +0800 [thread overview]
Message-ID: <20190115040727.2452-1-chasel.chiu@intel.com> (raw)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1457
Per security recommendation TCO Base should be
initialized and locked by FSP and MinPlatform should
support both TCO Base locked and not locked scenarios.
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
Silicon/Intel/KabylakeSiliconPkg/Pch/Library/PeiDxeSmmPchCycleDecodingLib/PchCycleDecodingLib.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/Silicon/Intel/KabylakeSiliconPkg/Pch/Library/PeiDxeSmmPchCycleDecodingLib/PchCycleDecodingLib.c b/Silicon/Intel/KabylakeSiliconPkg/Pch/Library/PeiDxeSmmPchCycleDecodingLib/PchCycleDecodingLib.c
index 68b0b5dd4b..e135ef1f3e 100644
--- a/Silicon/Intel/KabylakeSiliconPkg/Pch/Library/PeiDxeSmmPchCycleDecodingLib/PchCycleDecodingLib.c
+++ b/Silicon/Intel/KabylakeSiliconPkg/Pch/Library/PeiDxeSmmPchCycleDecodingLib/PchCycleDecodingLib.c
@@ -1,7 +1,7 @@
/** @file
PCH cycle deocding configuration and query library.
-Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2017 - 2019, 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 that accompanies this distribution.
The full text of the license may be found at
@@ -352,17 +352,18 @@ PchTcoBaseSet (
}
//
// Verify TCO base is not locked.
+ // If it is locked already, skip following steps.
//
if ((MmioRead8 (SmbusBase + R_PCH_SMBUS_TCOCTL) & B_PCH_SMBUS_TCOCTL_TCO_BASE_LOCK) != 0) {
- ASSERT (FALSE);
- return EFI_DEVICE_ERROR;
+ return EFI_SUCCESS;
}
//
// Disable TCO in SMBUS Device first before changing base address.
+ // Byte access to not touch the TCO_BASE_LOCK bit
//
- MmioAnd16 (
- SmbusBase + R_PCH_SMBUS_TCOCTL,
- (UINT16) ~B_PCH_SMBUS_TCOCTL_TCO_BASE_EN
+ MmioAnd8 (
+ SmbusBase + R_PCH_SMBUS_TCOCTL + 1,
+ (UINT8) ~(B_PCH_SMBUS_TCOCTL_TCO_BASE_EN >> 8)
);
//
// Program TCO in SMBUS Device
@@ -373,11 +374,11 @@ PchTcoBaseSet (
Address
);
//
- // Enable TCO in SMBUS Device
+ // Enable TCO in SMBUS Device and lock TCO BASE
//
MmioOr16 (
SmbusBase + R_PCH_SMBUS_TCOCTL,
- B_PCH_SMBUS_TCOCTL_TCO_BASE_EN
+ B_PCH_SMBUS_TCOCTL_TCO_BASE_EN | B_PCH_SMBUS_TCOCTL_TCO_BASE_LOCK
);
//
// Program "TCO Base Address" PCR[DMI] + 2778h[15:5, 1] to [SMBUS PCI offset 50h[15:5], 1].
--
2.13.3.windows.1
next reply other threads:[~2019-01-15 4:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-15 4:07 Chasel, Chiu [this message]
2019-01-15 4:15 ` [PATCH] MinPlatformPkg: Support TCO base locked by FSP Chiu, Chasel
2019-01-15 8:11 ` Kubacki, Michael A
2019-01-15 8:16 ` Chiu, Chasel
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=20190115040727.2452-1-chasel.chiu@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