]> git.proxmox.com Git - mirror_edk2.git/blobdiff - QuarkSocPkg/QuarkNorthCluster/Smm/Pei/SmmControlPei/SmmControlPei.c
edk2: Remove packages moved to edk2-platforms
[mirror_edk2.git] / QuarkSocPkg / QuarkNorthCluster / Smm / Pei / SmmControlPei / SmmControlPei.c
diff --git a/QuarkSocPkg/QuarkNorthCluster/Smm/Pei/SmmControlPei/SmmControlPei.c b/QuarkSocPkg/QuarkNorthCluster/Smm/Pei/SmmControlPei/SmmControlPei.c
deleted file mode 100644 (file)
index 243e4c9..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-/** @file\r
-This module provides an implementation of the SMM Control PPI for use with\r
-the QNC.\r
-\r
-Copyright (c) 2013-2015 Intel Corporation.\r
-\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#include <PiPei.h>\r
-\r
-#include <Ppi/SmmControl.h>\r
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/HobLib.h>\r
-#include <Library/PeiServicesLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/IoLib.h>\r
-#include <Library/PciLib.h>\r
-\r
-#include <IntelQNCPeim.h>\r
-#include <Library/QNCAccessLib.h>\r
-#include <Uefi/UefiBaseType.h>\r
-\r
-/**\r
-  Generates an SMI using the parameters passed in.\r
-\r
-  @param  PeiServices         Describes the list of possible PEI Services.\r
-  @param  This                A pointer to an instance of\r
-                              EFI_SMM_CONTROL_PPI\r
-  @param  ArgumentBuffer      The argument buffer\r
-  @param  ArgumentBufferSize  The size of the argument buffer\r
-  @param  Periodic            TRUE to indicate a periodical SMI\r
-  @param  ActivationInterval  Interval of the periodical SMI\r
-\r
-  @retval EFI_INVALID_PARAMETER  Periodic is TRUE or ArgumentBufferSize > 1\r
-  @retval EFI_SUCCESS            SMI generated\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PeiActivate (\r
-  IN      EFI_PEI_SERVICES           **PeiServices,\r
-  IN      PEI_SMM_CONTROL_PPI        *This,\r
-  IN OUT  INT8                       *ArgumentBuffer OPTIONAL,\r
-  IN OUT  UINTN                      *ArgumentBufferSize OPTIONAL,\r
-  IN      BOOLEAN                    Periodic OPTIONAL,\r
-  IN      UINTN                      ActivationInterval OPTIONAL\r
-  );\r
-\r
-/**\r
-  Clears an SMI.\r
-\r
-  @param  PeiServices         Describes the list of possible PEI Services.\r
-  @param  This                Pointer to an instance of EFI_SMM_CONTROL_PPI\r
-  @param  Periodic            TRUE to indicate a periodical SMI\r
-\r
-  @return Return value from SmmClear()\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PeiDeactivate (\r
-  IN  EFI_PEI_SERVICES            **PeiServices,\r
-  IN  PEI_SMM_CONTROL_PPI         *This,\r
-  IN  BOOLEAN                     Periodic OPTIONAL\r
-  );\r
-\r
-PEI_SMM_CONTROL_PPI      mSmmControlPpi = {\r
-  PeiActivate,\r
-  PeiDeactivate\r
-};\r
-\r
-EFI_PEI_PPI_DESCRIPTOR   mPpiList = {\r
-  (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
-  &gPeiSmmControlPpiGuid,\r
-  &mSmmControlPpi\r
-};\r
-\r
-/**\r
-  Clear SMI related chipset status and re-enable SMI by setting the EOS bit.\r
-\r
-  @retval EFI_SUCCESS       The requested operation has been carried out successfully\r
-  @retval EFI_DEVICE_ERROR  The EOS bit could not be set.\r
-\r
-**/\r
-EFI_STATUS\r
-SmmClear (\r
-  VOID\r
-  )\r
-{\r
-  UINT16                       GPE0BLK_Base;\r
-\r
-  //\r
-  // Get GPE0BLK_Base\r
-  //\r
-  GPE0BLK_Base = PcdGet16 (PcdGpe0blkIoBaseAddress);\r
-\r
-  //\r
-  // Clear the Power Button Override Status Bit, it gates EOS from being set.\r
-  // In QuarkNcSocId - Bit is read only. Handled by external SMC, do nothing.\r
-  //\r
-\r
-  //\r
-  // Clear the APM SMI Status Bit\r
-  //\r
-  IoWrite32 ((GPE0BLK_Base + R_QNC_GPE0BLK_SMIS), B_QNC_GPE0BLK_SMIS_APM);\r
-\r
-  //\r
-  // Set the EOS Bit\r
-  //\r
-  IoOr32 ((GPE0BLK_Base + R_QNC_GPE0BLK_SMIS), B_QNC_GPE0BLK_SMIS_EOS);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-SmmTrigger (\r
-  IN UINT8   Data\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Trigger the software SMI\r
-\r
-Arguments:\r
-\r
-  Data                          The value to be set on the software SMI data port\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS                   Function completes successfully\r
-\r
---*/\r
-{\r
-  UINT16        GPE0BLK_Base;\r
-  UINT32        NewValue;\r
-\r
-  //\r
-  // Get GPE0BLK_Base\r
-  //\r
-  GPE0BLK_Base = PcdGet16 (PcdGpe0blkIoBaseAddress);\r
-\r
-  //\r
-  // Enable the APMC SMI\r
-  //\r
-  IoOr32 (GPE0BLK_Base + R_QNC_GPE0BLK_SMIE, B_QNC_GPE0BLK_SMIE_APM);\r
-\r
-  //\r
-  // Enable SMI globally\r
-  //\r
-  NewValue = QNCPortRead (QUARK_NC_HOST_BRIDGE_SB_PORT_ID, QNC_MSG_FSBIC_REG_HMISC);\r
-  NewValue |= SMI_EN;\r
-  QNCPortWrite (QUARK_NC_HOST_BRIDGE_SB_PORT_ID, QNC_MSG_FSBIC_REG_HMISC, NewValue);\r
-\r
-\r
-  //\r
-  // Generate the APMC SMI\r
-  //\r
-  IoWrite8 (PcdGet16 (PcdSmmActivationPort), Data);\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Generates an SMI using the parameters passed in.\r
-\r
-  @param  PeiServices         Describes the list of possible PEI Services.\r
-  @param  This                A pointer to an instance of\r
-                              EFI_SMM_CONTROL_PPI\r
-  @param  ArgumentBuffer      The argument buffer\r
-  @param  ArgumentBufferSize  The size of the argument buffer\r
-  @param  Periodic            TRUE to indicate a periodical SMI\r
-  @param  ActivationInterval  Interval of the periodical SMI\r
-\r
-  @retval EFI_INVALID_PARAMETER  Periodic is TRUE or ArgumentBufferSize > 1\r
-  @retval EFI_SUCCESS            SMI generated\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PeiActivate (\r
-  IN      EFI_PEI_SERVICES           **PeiServices,\r
-  IN      PEI_SMM_CONTROL_PPI        *This,\r
-  IN OUT  INT8                       *ArgumentBuffer OPTIONAL,\r
-  IN OUT  UINTN                      *ArgumentBufferSize OPTIONAL,\r
-  IN      BOOLEAN                    Periodic OPTIONAL,\r
-  IN      UINTN                      ActivationInterval OPTIONAL\r
-  )\r
-{\r
-  INT8       Data;\r
-  EFI_STATUS Status;\r
-  //\r
-  // Periodic SMI not supported.\r
-  //\r
-  if (Periodic) {\r
-    DEBUG ((DEBUG_WARN, "Invalid parameter\n"));\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-\r
-  if (ArgumentBuffer == NULL) {\r
-    Data = 0xFF;\r
-  } else {\r
-    if (ArgumentBufferSize == NULL || *ArgumentBufferSize != 1) {\r
-      return EFI_INVALID_PARAMETER;\r
-    }\r
-\r
-    Data = *ArgumentBuffer;\r
-  }\r
-  //\r
-  // Clear any pending the APM SMI\r
-  //\r
-  Status = SmmClear ();\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
-  }\r
-\r
-  return SmmTrigger (Data);\r
-}\r
-\r
-/**\r
-  Clears an SMI.\r
-\r
-  @param  PeiServices         Describes the list of possible PEI Services.\r
-  @param  This                Pointer to an instance of EFI_SMM_CONTROL_PPI\r
-  @param  Periodic            TRUE to indicate a periodical SMI\r
-\r
-  @return Return value from SmmClear()\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-PeiDeactivate (\r
-  IN  EFI_PEI_SERVICES            **PeiServices,\r
-  IN  PEI_SMM_CONTROL_PPI         *This,\r
-  IN  BOOLEAN                     Periodic OPTIONAL\r
-  )\r
-{\r
-  if (Periodic) {\r
-    return EFI_INVALID_PARAMETER;\r
-  }\r
-  return SmmClear ();\r
-}\r
-\r
-/**\r
-  This is the constructor for the SMM Control Ppi.\r
-\r
-  This function installs EFI_SMM_CONTROL_PPI.\r
-\r
-  @param   FileHandle       Handle of the file being invoked.\r
-  @param   PeiServices      Describes the list of possible PEI Services.\r
-\r
-  @retval EFI_UNSUPPORTED There's no Intel ICH on this platform\r
-  @return The status returned from InstallPpi().\r
-\r
---*/\r
-EFI_STATUS\r
-EFIAPI\r
-SmmControlPeiEntry (\r
-  IN       EFI_PEI_FILE_HANDLE  FileHandle,\r
-  IN CONST EFI_PEI_SERVICES     **PeiServices\r
-  )\r
-{\r
-  EFI_STATUS  Status;\r
-\r
-  Status      = (**PeiServices).InstallPpi (PeiServices, &mPpiList);\r
-  ASSERT_EFI_ERROR (Status);\r
-\r
-  return Status;\r
-}\r