From: "Min Xu" <min.m.xu@intel.com>
To: devel@edk2.groups.io
Cc: Min Xu <min.m.xu@intel.com>,
Ard Biesheuvel <ardb+tianocore@kernel.org>,
Jordan Justen <jordan.l.justen@intel.com>,
Brijesh Singh <brijesh.singh@amd.com>,
Erdem Aktas <erdemaktas@google.com>,
James Bottomley <jejb@linux.ibm.com>,
Jiewen Yao <jiewen.yao@intel.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
Gerd Hoffmann <kraxel@redhat.com>
Subject: [PATCH V6 18/42] OvmfPkg/PlatformPei: Update Cmos functions with PlatformInitLib
Date: Sat, 19 Feb 2022 19:56:31 +0800 [thread overview]
Message-ID: <b508e67022441917f01728479aa24caa46fde5b1.1645261990.git.min.m.xu@intel.com> (raw)
In-Reply-To: <cover.1645261990.git.min.m.xu@intel.com>
RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429
Update the Cmos functions in OvmfPkg/PlatformPei with PlatformInitLib.
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Min Xu <min.m.xu@intel.com>
---
OvmfPkg/AmdSev/AmdSevX64.dsc | 1 +
OvmfPkg/CloudHv/CloudHvX64.dsc | 1 +
OvmfPkg/Microvm/MicrovmX64.dsc | 1 +
OvmfPkg/OvmfPkgIa32.dsc | 1 +
OvmfPkg/OvmfPkgIa32X64.dsc | 1 +
OvmfPkg/OvmfPkgX64.dsc | 1 +
OvmfPkg/PlatformPei/Cmos.c | 55 -----------------------------
OvmfPkg/PlatformPei/Cmos.h | 48 -------------------------
OvmfPkg/PlatformPei/MemDetect.c | 8 ++---
OvmfPkg/PlatformPei/Platform.c | 29 +++------------
OvmfPkg/PlatformPei/PlatformPei.inf | 3 +-
11 files changed, 15 insertions(+), 134 deletions(-)
delete mode 100644 OvmfPkg/PlatformPei/Cmos.c
delete mode 100644 OvmfPkg/PlatformPei/Cmos.h
diff --git a/OvmfPkg/AmdSev/AmdSevX64.dsc b/OvmfPkg/AmdSev/AmdSevX64.dsc
index fd56176796d5..785049c88962 100644
--- a/OvmfPkg/AmdSev/AmdSevX64.dsc
+++ b/OvmfPkg/AmdSev/AmdSevX64.dsc
@@ -280,6 +280,7 @@
!include OvmfPkg/OvmfTpmLibsPeim.dsc.inc
MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf
+ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
[LibraryClasses.common.DXE_CORE]
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc b/OvmfPkg/CloudHv/CloudHvX64.dsc
index 3172100310b1..e821a72f000c 100644
--- a/OvmfPkg/CloudHv/CloudHvX64.dsc
+++ b/OvmfPkg/CloudHv/CloudHvX64.dsc
@@ -307,6 +307,7 @@
!include OvmfPkg/OvmfTpmLibsPeim.dsc.inc
MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf
+ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
[LibraryClasses.common.DXE_CORE]
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
diff --git a/OvmfPkg/Microvm/MicrovmX64.dsc b/OvmfPkg/Microvm/MicrovmX64.dsc
index 1ea43443ae97..27005eec89f2 100644
--- a/OvmfPkg/Microvm/MicrovmX64.dsc
+++ b/OvmfPkg/Microvm/MicrovmX64.dsc
@@ -300,6 +300,7 @@
QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf
MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf
+ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
[LibraryClasses.common.DXE_CORE]
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
index 85abed24c1a7..8f02dca63869 100644
--- a/OvmfPkg/OvmfPkgIa32.dsc
+++ b/OvmfPkg/OvmfPkgIa32.dsc
@@ -300,6 +300,7 @@
QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/PeiQemuFwCfgS3LibFwCfg.inf
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf
+ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
!include OvmfPkg/OvmfTpmLibsPeim.dsc.inc
diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
index a9c1daecc1a8..c58ef8494470 100644
--- a/OvmfPkg/OvmfPkgIa32X64.dsc
+++ b/OvmfPkg/OvmfPkgIa32X64.dsc
@@ -304,6 +304,7 @@
QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/PeiQemuFwCfgS3LibFwCfg.inf
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf
+ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
!include OvmfPkg/OvmfTpmLibsPeim.dsc.inc
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
index 718399299f57..227b9845619f 100644
--- a/OvmfPkg/OvmfPkgX64.dsc
+++ b/OvmfPkg/OvmfPkgX64.dsc
@@ -305,6 +305,7 @@
QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/PeiQemuFwCfgS3LibFwCfg.inf
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf
+ PlatformInitLib|OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf
!include OvmfPkg/OvmfTpmLibsPeim.dsc.inc
diff --git a/OvmfPkg/PlatformPei/Cmos.c b/OvmfPkg/PlatformPei/Cmos.c
deleted file mode 100644
index a01b3866bee4..000000000000
--- a/OvmfPkg/PlatformPei/Cmos.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/** @file
- PC/AT CMOS access routines
-
- Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include "Cmos.h"
-#include "Library/IoLib.h"
-
-/**
- Reads 8-bits of CMOS data.
-
- Reads the 8-bits of CMOS data at the location specified by Index.
- The 8-bit read value is returned.
-
- @param Index The CMOS location to read.
-
- @return The value read.
-
-**/
-UINT8
-EFIAPI
-CmosRead8 (
- IN UINTN Index
- )
-{
- IoWrite8 (0x70, (UINT8)Index);
- return IoRead8 (0x71);
-}
-
-/**
- Writes 8-bits of CMOS data.
-
- Writes 8-bits of CMOS data to the location specified by Index
- with the value specified by Value and returns Value.
-
- @param Index The CMOS location to write.
- @param Value The value to write to CMOS.
-
- @return The value written to CMOS.
-
-**/
-UINT8
-EFIAPI
-CmosWrite8 (
- IN UINTN Index,
- IN UINT8 Value
- )
-{
- IoWrite8 (0x70, (UINT8)Index);
- IoWrite8 (0x71, Value);
- return Value;
-}
diff --git a/OvmfPkg/PlatformPei/Cmos.h b/OvmfPkg/PlatformPei/Cmos.h
deleted file mode 100644
index 2b3124d7ba36..000000000000
--- a/OvmfPkg/PlatformPei/Cmos.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/** @file
- PC/AT CMOS access routines
-
- Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __CMOS_H__
-#define __CMOS_H__
-
-/**
- Reads 8-bits of CMOS data.
-
- Reads the 8-bits of CMOS data at the location specified by Index.
- The 8-bit read value is returned.
-
- @param Index The CMOS location to read.
-
- @return The value read.
-
-**/
-UINT8
-EFIAPI
-CmosRead8 (
- IN UINTN Index
- );
-
-/**
- Writes 8-bits of CMOS data.
-
- Writes 8-bits of CMOS data to the location specified by Index
- with the value specified by Value and returns Value.
-
- @param Index The CMOS location to write.
- @param Value The value to write to CMOS.
-
- @return The value written to CMOS.
-
-**/
-UINT8
-EFIAPI
-CmosWrite8 (
- IN UINTN Index,
- IN UINT8 Value
- );
-
-#endif
diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c
index 1bcb5a08bca6..d118dba2f214 100644
--- a/OvmfPkg/PlatformPei/MemDetect.c
+++ b/OvmfPkg/PlatformPei/MemDetect.c
@@ -36,9 +36,9 @@ Module Name:
#include <Library/MtrrLib.h>
#include <Library/QemuFwCfgLib.h>
#include <Library/QemuFwCfgSimpleParserLib.h>
+#include <Library/PlatformInitLib.h>
#include "Platform.h"
-#include "Cmos.h"
UINT8 mPhysMemAddressWidth;
@@ -339,8 +339,8 @@ GetSystemMemorySizeBelow4gb (
// into the calculation to get the total memory size.
//
- Cmos0x34 = (UINT8)CmosRead8 (0x34);
- Cmos0x35 = (UINT8)CmosRead8 (0x35);
+ Cmos0x34 = (UINT8)PlatformCmosRead8 (0x34);
+ Cmos0x35 = (UINT8)PlatformCmosRead8 (0x35);
return (UINT32)(((UINTN)((Cmos0x35 << 8) + Cmos0x34) << 16) + SIZE_16MB);
}
@@ -363,7 +363,7 @@ GetSystemMemorySizeAbove4gb (
Size = 0;
for (CmosIndex = 0x5d; CmosIndex >= 0x5b; CmosIndex--) {
- Size = (UINT32)(Size << 8) + (UINT32)CmosRead8 (CmosIndex);
+ Size = (UINT32)(Size << 8) + (UINT32)PlatformCmosRead8 (CmosIndex);
}
return LShiftU64 (Size, 16);
diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
index d0323c645162..594891786440 100644
--- a/OvmfPkg/PlatformPei/Platform.c
+++ b/OvmfPkg/PlatformPei/Platform.c
@@ -36,10 +36,10 @@
#include <IndustryStandard/Pci22.h>
#include <IndustryStandard/Q35MchIch9.h>
#include <IndustryStandard/QemuCpuHotplug.h>
+#include <Library/PlatformInitLib.h>
#include <OvmfPlatforms.h>
#include "Platform.h"
-#include "Cmos.h"
EFI_PEI_PPI_DESCRIPTOR mPpiBootMode[] = {
{
@@ -505,11 +505,11 @@ BootModeInitialization (
{
EFI_STATUS Status;
- if (CmosRead8 (0xF) == 0xFE) {
+ if (PlatformCmosRead8 (0xF) == 0xFE) {
mBootMode = BOOT_ON_S3_RESUME;
}
- CmosWrite8 (0xF, 0x00);
+ PlatformCmosWrite8 (0xF, 0x00);
Status = PeiServicesSetBootMode (mBootMode);
ASSERT_EFI_ERROR (Status);
@@ -546,27 +546,6 @@ ReserveEmuVariableNvStore (
ASSERT_RETURN_ERROR (PcdStatus);
}
-VOID
-DebugDumpCmos (
- VOID
- )
-{
- UINT32 Loop;
-
- DEBUG ((DEBUG_INFO, "CMOS:\n"));
-
- for (Loop = 0; Loop < 0x80; Loop++) {
- if ((Loop % 0x10) == 0) {
- DEBUG ((DEBUG_INFO, "%02x:", Loop));
- }
-
- DEBUG ((DEBUG_INFO, " %02x", CmosRead8 (Loop)));
- if ((Loop % 0x10) == 0xf) {
- DEBUG ((DEBUG_INFO, "\n"));
- }
- }
-}
-
VOID
S3Verification (
VOID
@@ -810,7 +789,7 @@ InitializePlatform (
DEBUG ((DEBUG_INFO, "Platform PEIM Loaded\n"));
- DebugDumpCmos ();
+ PlatformDebugDumpCmos ();
if (QemuFwCfgS3Enabled ()) {
DEBUG ((DEBUG_INFO, "S3 support was detected on QEMU\n"));
diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/PlatformPei.inf
index 8ef404168c45..65e417b2f254 100644
--- a/OvmfPkg/PlatformPei/PlatformPei.inf
+++ b/OvmfPkg/PlatformPei/PlatformPei.inf
@@ -25,8 +25,6 @@
[Sources]
AmdSev.c
ClearCache.c
- Cmos.c
- Cmos.h
FeatureControl.c
Fv.c
MemDetect.c
@@ -64,6 +62,7 @@
MemEncryptSevLib
PcdLib
VmgExitLib
+ PlatformInitLib
[Pcd]
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase
--
2.29.2.windows.2
next prev parent reply other threads:[~2022-02-19 11:58 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-19 11:56 [PATCH V6 00/42] Enable Intel TDX in OvmfPkg (Config-A) Min Xu
2022-02-19 11:56 ` [PATCH V6 01/42] MdePkg: Add Tdx.h Min Xu
2022-02-23 1:56 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 02/42] MdePkg: Introduce basic Tdx functions in BaseLib Min Xu
2022-02-23 1:57 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 03/42] MdePkg: Add TdxLib to wrap Tdx operations Min Xu
2022-02-23 1:58 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 04/42] UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception Min Xu
2022-02-23 2:00 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 05/42] OvmfPkg: Extend VmgExitLib " Min Xu
2022-02-19 11:56 ` [PATCH V6 06/42] UefiCpuPkg/CpuExceptionHandler: Add base support for the " Min Xu
2022-02-23 2:02 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 07/42] MdePkg: Add helper functions for Tdx guest in BaseIoLibIntrinsic Min Xu
2022-02-19 11:56 ` [PATCH V6 08/42] MdePkg: Support mmio " Min Xu
2022-02-19 11:56 ` [PATCH V6 09/42] MdePkg: Support IoFifo " Min Xu
2022-02-19 11:56 ` [PATCH V6 10/42] MdePkg: Support IoRead/IoWrite " Min Xu
2022-02-19 11:56 ` [PATCH V6 11/42] UefiCpuPkg: Support TDX in BaseXApicX2ApicLib Min Xu
2022-02-19 11:56 ` [PATCH V6 12/42] MdePkg: Add macro to check SEV / TDX guest Min Xu
2022-02-19 11:56 ` [PATCH V6 13/42] UefiCpuPkg: Enable Tdx support in MpInitLib Min Xu
2022-02-19 11:56 ` [PATCH V6 14/42] OvmfPkg: Add IntelTdx.h in OvmfPkg/Include/IndustryStandard Min Xu
2022-02-19 11:56 ` [PATCH V6 15/42] OvmfPkg: Add TdxMailboxLib Min Xu
2022-02-19 11:56 ` [PATCH V6 16/42] MdePkg: Add EFI_RESOURCE_ATTRIBUTE_ENCRYPTED in PiHob.h Min Xu
2022-02-19 11:56 ` [PATCH V6 17/42] OvmfPkg: Create initial version of PlatformInitLib Min Xu
2022-02-19 11:56 ` Min Xu [this message]
2022-02-22 13:00 ` [PATCH V6 18/42] OvmfPkg/PlatformPei: Update Cmos functions with PlatformInitLib Gerd Hoffmann
2022-02-22 23:37 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 19/42] OvmfPkg/PlatformInitLib: Add hob functions Min Xu
2022-02-19 11:56 ` [PATCH V6 20/42] OvmfPkg/PlatformPei: Update hob functions PlatformInitLib Min Xu
2022-02-22 13:02 ` Gerd Hoffmann
2022-02-22 23:38 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 21/42] OvmfPkg/PlatformInitLib: Add memory functions Min Xu
2022-02-19 11:56 ` [PATCH V6 22/42] OvmfPkg/PlatformPei: Update memory functions with PlatformInitLib Min Xu
2022-02-19 11:56 ` [PATCH V6 23/42] OvmfPkg/PlatformInitLib: Add platform functions Min Xu
2022-02-19 11:56 ` [PATCH V6 25/42] OvmfPkg: Update PlatformInitLib to process Tdx hoblist Min Xu
2022-02-22 13:08 ` Gerd Hoffmann
2022-02-19 11:56 ` [PATCH V6 26/42] OvmfPkg: Add null instance of PlatformInitLib Min Xu
2022-02-22 13:10 ` Gerd Hoffmann
2022-02-23 0:34 ` Min Xu
2022-02-23 9:26 ` [edk2-devel] " Gerd Hoffmann
2022-02-19 11:56 ` [PATCH V6 27/42] OvmfPkg/Sec: Declare local variable as volatile in SecCoreStartupWithStack Min Xu
2022-02-23 9:44 ` Gerd Hoffmann
2022-02-19 11:56 ` [PATCH V6 28/42] OvmfPkg: Update Sec to support Tdx Min Xu
2022-02-23 9:49 ` Gerd Hoffmann
2022-02-19 11:56 ` [PATCH V6 29/42] OvmfPkg: Check Tdx in QemuFwCfgPei to avoid DMA operation Min Xu
2022-02-19 11:56 ` [PATCH V6 30/42] MdeModulePkg: EFER should not be changed in TDX Min Xu
2022-02-19 11:56 ` [PATCH V6 31/42] MdeModulePkg: Add PcdTdxSharedBitMask Min Xu
2022-02-19 11:56 ` [PATCH V6 32/42] UefiCpuPkg: Update AddressEncMask in CpuPageTable Min Xu
2022-02-19 11:56 ` [PATCH V6 33/42] OvmfPkg: Update PlatformInitLib for Tdx guest to publish ram regions Min Xu
2022-02-23 10:07 ` Gerd Hoffmann
2022-02-23 10:49 ` [edk2-devel] " Yao, Jiewen
2022-02-23 11:52 ` Gerd Hoffmann
2022-02-19 11:56 ` [PATCH V6 34/42] OvmfPkg: Update PlatformPei to support Tdx guest Min Xu
2022-02-23 10:13 ` Gerd Hoffmann
2022-02-24 0:49 ` Min Xu
2022-02-19 11:56 ` [PATCH V6 35/42] OvmfPkg: Update AcpiPlatformDxe to alter MADT table Min Xu
2022-02-19 11:56 ` [PATCH V6 36/42] OvmfPkg/BaseMemEncryptTdxLib: Add TDX helper library Min Xu
2022-02-19 11:56 ` [PATCH V6 37/42] OvmfPkg: Add TdxDxe driver Min Xu
2022-02-19 11:56 ` [PATCH V6 38/42] OvmfPkg/QemuFwCfgLib: Support Tdx in QemuFwCfgDxe Min Xu
2022-02-19 11:56 ` [PATCH V6 39/42] OvmfPkg: Update IoMmuDxe to support TDX Min Xu
2022-02-19 11:56 ` [PATCH V6 40/42] OvmfPkg: Rename XenTimerDxe to LocalApicTimerDxe Min Xu
[not found] ` <8e422d975ef8373efdf6eed332a44b59d7ffa38e.1645261990.git.min.m.xu@intel.com>
2022-02-22 13:04 ` [PATCH V6 24/42] OvmfPkg/PlatformPei: Update platform functions with PlatformInitLib Gerd Hoffmann
2022-02-22 23:39 ` Min Xu
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=b508e67022441917f01728479aa24caa46fde5b1.1645261990.git.min.m.xu@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