public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Nate DeSimone" <nathaniel.l.desimone@intel.com>
To: devel@edk2.groups.io
Cc: Isaac Oram <isaac.w.oram@intel.com>,
	Mohamed Abbas <mohamed.abbas@intel.com>,
	Chasel Chiu <chasel.chiu@intel.com>,
	Michael D Kinney <michael.d.kinney@intel.com>,
	Liming Gao <gaoliming@byosoft.com.cn>,
	Eric Dong <eric.dong@intel.com>,
	Michael Kubacki <Michael.Kubacki@microsoft.com>
Subject: [edk2-platforms] [PATCH V1 09/17] WhitleySiliconPkg: Add SiliconPolicyInit
Date: Mon, 12 Jul 2021 17:41:23 -0700	[thread overview]
Message-ID: <20210713004131.1782-10-nathaniel.l.desimone@intel.com> (raw)
In-Reply-To: <20210713004131.1782-1-nathaniel.l.desimone@intel.com>

Signed-off-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
Co-authored-by: Isaac Oram <isaac.w.oram@intel.com>
Co-authored-by: Mohamed Abbas <mohamed.abbas@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Isaac Oram <isaac.w.oram@intel.com>
Cc: Mohamed Abbas <mohamed.abbas@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Michael Kubacki <Michael.Kubacki@microsoft.com>
---
 .../SiliconPolicyInit/SiliconPolicyInitLate.c | 52 +++++++++++++++
 .../SiliconPolicyInitLate.inf                 | 49 +++++++++++++++
 .../SiliconPolicyInitPreAndPostMem.c          | 63 +++++++++++++++++++
 .../SiliconPolicyInitPreAndPostMem.inf        | 48 ++++++++++++++
 4 files changed, 212 insertions(+)
 create mode 100644 Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.c
 create mode 100644 Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.inf
 create mode 100644 Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.c
 create mode 100644 Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.inf

diff --git a/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.c b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.c
new file mode 100644
index 0000000000..d5c1828cce
--- /dev/null
+++ b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.c
@@ -0,0 +1,52 @@
+/** @file
+  SiliconPolicyInitLib DXE.
+
+  This driver initializes silicon policy with the defaults from the silicon provider.
+  It publishes a protocol that is consumed by a shim library instance that provides the functions used by the
+  common MinPlatformPkg PolicyInit late policy initialization code.
+
+  @copyright
+  Copyright 2021 Intel Corporation. <BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <PiDxe.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/DriverEntryPoint.h>
+#include <Library/SiliconPolicyInitLib.h>
+#include <Guid/SiliconPolicyInitLibInterface.h>
+
+STATIC SILICON_POLICY_INIT_LIB_PROTOCOL mSiliconPolicyInitLibProtocol = {
+  SiliconPolicyInitLate,
+  SiliconPolicyDoneLate
+};
+
+/**
+  Entry point function
+
+  @param ImageHandle     - Handle for the image of this driver.
+  @param SystemTable     - Pointer to the EFI System Table.
+
+  @retval EFI_SUCCESS     - Protocol installed sucessfully.
+**/
+EFI_STATUS
+EFIAPI
+SiliconPolicyInitLateDxeEntry (
+  IN EFI_HANDLE                            ImageHandle,
+  IN EFI_SYSTEM_TABLE                      *SystemTable
+  )
+{
+  EFI_STATUS                      Status = EFI_SUCCESS;
+  EFI_HANDLE                      Handle;
+
+  Handle = NULL;
+  Status = gBS->InstallProtocolInterface (&Handle, &gSiliconPolicyInitLibInterfaceGuid, EFI_NATIVE_INTERFACE, &mSiliconPolicyInitLibProtocol);
+  if (EFI_ERROR (Status)) {
+    ASSERT_EFI_ERROR (Status);
+    return Status;
+  }
+
+  return Status;
+}
diff --git a/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.inf b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.inf
new file mode 100644
index 0000000000..d6ef987f5b
--- /dev/null
+++ b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitLate.inf
@@ -0,0 +1,49 @@
+## @file
+# SiliconPolicyInitLate DXE Boot Services Driver
+#
+# This driver initializes silicon policy with the defaults from the silicon provider.
+# It publishes a protocol that is consumed by a shim library instance that provides the functions used by the
+# common MinPlatformPkg PolicyInit late silicon init code.
+# This driver produces SiliconPolicyInit LATE services.  A PEIM provides the PRE and POST memory services.
+#
+# @copyright
+# Copyright 2021 Intel Corporation. <BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = SiliconPolicyInitLate
+  FILE_GUID                      = ff6216f2-d911-44a5-9f48-c174223acc7c
+  MODULE_TYPE                    = DXE_DRIVER
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = SiliconPolicyInitLateDxeEntry
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = X64
+#
+
+[Sources]
+  SiliconPolicyInitLate.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MinPlatformPkg/MinPlatformPkg.dec
+  WhitleySiliconPkg/WhitleySiliconPkg.dec
+  WhitleyOpenboardPkg/PlatformPkg.dec
+
+[LibraryClasses]
+  BaseLib
+  DebugLib
+  DriverEntryPoint
+  UefiBootServicesTableLib
+  SiliconPolicyInitLib
+
+[Guids]
+  gSiliconPolicyInitLibInterfaceGuid      ## ALWAYS_PRODUCES a PROTOCOL with this GUID
+
+[Depex]
+  TRUE
diff --git a/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.c b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.c
new file mode 100644
index 0000000000..5bc410f21f
--- /dev/null
+++ b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.c
@@ -0,0 +1,63 @@
+/** @file
+  SiliconPolicyInit PEIM.
+
+  This PEIM initializes silicon policy with the defaults from the silicon provider.
+  We publish a PPI that is consumed by a shim library instance that provides the functions used by the
+  common MinPlatformPkg PolicyInit pre and post memory code.
+
+  @copyright
+  Copyright 2021 Intel Corporation. <BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <PiPei.h>
+#include <Library/BaseLib.h>
+#include <Library/DebugLib.h>
+#include <Library/PeimEntryPoint.h>
+#include <Library/PeiServicesLib.h>
+#include <Library/SiliconPolicyInitLib.h>
+#include <Guid/SiliconPolicyInitLibInterface.h>
+
+STATIC SILICON_POLICY_INIT_LIB_PPI mSiliconPolicyInitLibPpi = {
+  SiliconPolicyInitPreMem,
+  SiliconPolicyDonePreMem,
+  SiliconPolicyInitPostMem,
+  SiliconPolicyDonePostMem
+};
+
+STATIC EFI_PEI_PPI_DESCRIPTOR mSiliconPolicyInitLibPpiDescriptor = {
+    EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST,
+    &gSiliconPolicyInitLibInterfaceGuid,
+    &mSiliconPolicyInitLibPpi
+  };
+
+/**
+  Entry point function for the PEIM
+
+  @param FileHandle      Handle of the file being invoked.
+  @param PeiServices     Describes the list of possible PEI Services.
+
+  @return EFI_SUCCESS    If we installed our PPI
+**/
+EFI_STATUS
+EFIAPI
+SiliconPolicyInitPreAndPostMemPeimEntry (
+  IN       EFI_PEI_FILE_HANDLE  FileHandle,
+  IN CONST EFI_PEI_SERVICES     **PeiServices
+  )
+{
+  EFI_STATUS                      Status = EFI_SUCCESS;
+
+  //
+  // Just produce our PPI
+  //
+  Status = PeiServicesInstallPpi (&mSiliconPolicyInitLibPpiDescriptor);
+  if (EFI_ERROR (Status)) {
+    DEBUG ((EFI_D_ERROR, "EntryPoint: failed to register PPI!\n"));
+    ASSERT_EFI_ERROR (Status);
+    return Status;
+  }
+
+  return Status;
+}
diff --git a/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.inf b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.inf
new file mode 100644
index 0000000000..6416457fdb
--- /dev/null
+++ b/Silicon/Intel/WhitleySiliconPkg/SiliconPolicyInit/SiliconPolicyInitPreAndPostMem.inf
@@ -0,0 +1,48 @@
+## @file
+# SiliconPolicyInitPreAndPostMem PEIM.
+#
+# This PEIM initializes silicon policy with the defaults from the silicon provider.
+# We publish a PPI that is consumed by a shim library instance that provides the functions used by the
+# common MinPlatformPkg PolicyInit pre and post memory code.
+# This PEIM produces SiliconPolicyInit PRE and POST memory services.  A DXE driver provides the LATE services.
+#
+# @copyright
+# Copyright 2021 Intel Corporation. <BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+  INF_VERSION                    = 0x00010005
+  BASE_NAME                      = SiliconPolicyInitPreAndPostMem
+  FILE_GUID                      = ca8efb69-d7dc-4e94-aad6-9fb373649161
+  MODULE_TYPE                    = PEIM
+  VERSION_STRING                 = 1.0
+  ENTRY_POINT                    = SiliconPolicyInitPreAndPostMemPeimEntry
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+#  VALID_ARCHITECTURES           = IA32
+#
+
+[Sources]
+  SiliconPolicyInitPreAndPostMem.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  MinPlatformPkg/MinPlatformPkg.dec
+  WhitleySiliconPkg/WhitleySiliconPkg.dec
+
+[LibraryClasses]
+  BaseLib
+  PeiServicesLib
+  PeimEntryPoint
+  DebugLib
+  SiliconPolicyInitLib
+
+[Guids]
+  gSiliconPolicyInitLibInterfaceGuid      ## ALWAYS_PRODUCES a PPI with this GUID
+
+[Depex]
+  TRUE
-- 
2.27.0.windows.1


  parent reply	other threads:[~2021-07-13  0:42 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-13  0:41 [edk2-platforms] [PATCH V1 00/17] Add IceLake-SP and CooperLake Support to MinPlatform Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 01/17] WhitleySiliconPkg: Add DEC and DSC files Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 02/17] WhitleySiliconPkg: Add Includes and Libraries Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 03/17] WhitleySiliconPkg: Add Cpu Includes Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 04/17] WhitleySiliconPkg: Add Me Includes Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 05/17] WhitleySiliconPkg: Add PCH Register Includes Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 06/17] WhitleySiliconPkg: Add PCH Includes Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 07/17] WhitleySiliconPkg: Add PCH Libraries Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 08/17] WhitleySiliconPkg: Add Security Includes Nate DeSimone
2021-07-13  0:41 ` Nate DeSimone [this message]
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 10/17] WhitleyOpenBoardPkg: Add Includes and Libraries Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 11/17] WhitleyOpenBoardPkg: Add Platform Modules Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 12/17] WhitleyOpenBoardPkg: Add Feature Modules Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 13/17] WhitleyOpenBoardPkg: Add UBA Modules Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 14/17] WhitleyOpenBoardPkg: Add build scripts and package metadata Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 15/17] Platform/Intel: Add WhitleyOpenBoardPkg to build_bios.py Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 16/17] Readme.md: Add WhitleyOpenBoardPkg Nate DeSimone
2021-07-13  0:41 ` [edk2-platforms] [PATCH V1 17/17] Maintainers.txt: Add WhitleyOpenBoardPkg and WhitleySiliconPkg Nate DeSimone
2021-07-13  1:35 ` [edk2-platforms] [PATCH V1 00/17] Add IceLake-SP and CooperLake Support to MinPlatform Oram, Isaac W
2021-07-14  2:03 ` Michael D Kinney

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=20210713004131.1782-10-nathaniel.l.desimone@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