]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/Include/Library/PlatformInitLib.h
OvmfPkg: Create initial version of PlatformInitLib
[mirror_edk2.git] / OvmfPkg / Include / Library / PlatformInitLib.h
diff --git a/OvmfPkg/Include/Library/PlatformInitLib.h b/OvmfPkg/Include/Library/PlatformInitLib.h
new file mode 100644 (file)
index 0000000..2ebac5c
--- /dev/null
@@ -0,0 +1,99 @@
+/** @file\r
+  PlatformInitLib header file.\r
+\r
+  Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef PLATFORM_INIT_LIB_H_\r
+#define PLATFORM_INIT_LIB_H_\r
+\r
+#include <PiPei.h>\r
+\r
+#pragma pack(1)\r
+typedef struct {\r
+  EFI_HOB_GUID_TYPE    GuidHeader;\r
+  UINT16               HostBridgeDevId;\r
+\r
+  UINT64               PcdConfidentialComputingGuestAttr;\r
+  BOOLEAN              SevEsIsEnabled;\r
+\r
+  UINT32               BootMode;\r
+  BOOLEAN              S3Supported;\r
+\r
+  BOOLEAN              SmmSmramRequire;\r
+  BOOLEAN              Q35SmramAtDefaultSmbase;\r
+  UINT16               Q35TsegMbytes;\r
+\r
+  UINT64               FirstNonAddress;\r
+  UINT8                PhysMemAddressWidth;\r
+  UINT32               Uc32Base;\r
+  UINT32               Uc32Size;\r
+\r
+  BOOLEAN              PcdSetNxForStack;\r
+  UINT64               PcdTdxSharedBitMask;\r
+\r
+  UINT64               PcdPciMmio64Base;\r
+  UINT64               PcdPciMmio64Size;\r
+  UINT32               PcdPciMmio32Base;\r
+  UINT32               PcdPciMmio32Size;\r
+  UINT64               PcdPciIoBase;\r
+  UINT64               PcdPciIoSize;\r
+\r
+  UINT64               PcdEmuVariableNvStoreReserved;\r
+  UINT32               PcdCpuBootLogicalProcessorNumber;\r
+  UINT32               PcdCpuMaxLogicalProcessorNumber;\r
+  UINT32               DefaultMaxCpuNumber;\r
+\r
+  UINT32               S3AcpiReservedMemoryBase;\r
+  UINT32               S3AcpiReservedMemorySize;\r
+} EFI_HOB_PLATFORM_INFO;\r
+#pragma pack()\r
+\r
+/**\r
+  Reads 8-bits of CMOS data.\r
+\r
+  Reads the 8-bits of CMOS data at the location specified by Index.\r
+  The 8-bit read value is returned.\r
+\r
+  @param  Index  The CMOS location to read.\r
+\r
+  @return The value read.\r
+\r
+**/\r
+UINT8\r
+EFIAPI\r
+PlatformCmosRead8 (\r
+  IN      UINTN  Index\r
+  );\r
+\r
+/**\r
+  Writes 8-bits of CMOS data.\r
+\r
+  Writes 8-bits of CMOS data to the location specified by Index\r
+  with the value specified by Value and returns Value.\r
+\r
+  @param  Index  The CMOS location to write.\r
+  @param  Value  The value to write to CMOS.\r
+\r
+  @return The value written to CMOS.\r
+\r
+**/\r
+UINT8\r
+EFIAPI\r
+PlatformCmosWrite8 (\r
+  IN      UINTN  Index,\r
+  IN      UINT8  Value\r
+  );\r
+\r
+/**\r
+   Dump the CMOS content\r
+ */\r
+VOID\r
+EFIAPI\r
+PlatformDebugDumpCmos (\r
+  VOID\r
+  );\r
+\r
+#endif // PLATFORM_INIT_LIB_H_\r