]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OvmfPkg/PlatformPei/Xen.c
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / OvmfPkg / PlatformPei / Xen.c
diff --git a/OvmfPkg/PlatformPei/Xen.c b/OvmfPkg/PlatformPei/Xen.c
deleted file mode 100644 (file)
index da3133b..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/**@file\r
-  Xen Platform PEI support\r
-\r
-  Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
-  Copyright (c) 2011, Andrei Warkentin <andreiw@motorola.com>\r
-\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-//\r
-// The package level header files this module uses\r
-//\r
-#include <PiPei.h>\r
-\r
-//\r
-// The Library classes this module consumes\r
-//\r
-#include <Library/DebugLib.h>\r
-#include <Library/HobLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Guid/XenInfo.h>\r
-\r
-#include "Platform.h"\r
-#include "Xen.h"\r
-\r
-BOOLEAN mXen = FALSE;\r
-\r
-STATIC UINT32 mXenLeaf = 0;\r
-\r
-EFI_XEN_INFO mXenInfo;\r
-\r
-/**\r
-  Returns E820 map provided by Xen\r
-\r
-  @param Entries      Pointer to E820 map\r
-  @param Count        Number of entries\r
-\r
-  @return EFI_STATUS\r
-**/\r
-EFI_STATUS\r
-XenGetE820Map (\r
-  EFI_E820_ENTRY64 **Entries,\r
-  UINT32 *Count\r
-  )\r
-{\r
-  EFI_XEN_OVMF_INFO *Info =\r
-    (EFI_XEN_OVMF_INFO *)(UINTN) OVMF_INFO_PHYSICAL_ADDRESS;\r
-\r
-  if (AsciiStrCmp ((CHAR8 *) Info->Signature, "XenHVMOVMF")) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  ASSERT (Info->E820 < MAX_ADDRESS);\r
-  *Entries = (EFI_E820_ENTRY64 *)(UINTN) Info->E820;\r
-  *Count = Info->E820EntriesCount;\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Connects to the Hypervisor.\r
\r
-  @param  XenLeaf     CPUID index used to connect.\r
-\r
-  @return EFI_STATUS\r
-\r
-**/\r
-EFI_STATUS\r
-XenConnect (\r
-  UINT32 XenLeaf\r
-  )\r
-{\r
-  UINT32 Index;\r
-  UINT32 TransferReg;\r
-  UINT32 TransferPages;\r
-  UINT32 XenVersion;\r
-\r
-  AsmCpuid (XenLeaf + 2, &TransferPages, &TransferReg, NULL, NULL);\r
-  mXenInfo.HyperPages = AllocatePages (TransferPages);\r
-  if (!mXenInfo.HyperPages) {\r
-    return EFI_OUT_OF_RESOURCES;\r
-  }\r
-\r
-  for (Index = 0; Index < TransferPages; Index++) {\r
-    AsmWriteMsr64 (TransferReg,\r
-                   (UINTN) mXenInfo.HyperPages +\r
-                   (Index << EFI_PAGE_SHIFT) + Index);\r
-  }\r
-\r
-  AsmCpuid (XenLeaf + 1, &XenVersion, NULL, NULL, NULL);\r
-  DEBUG ((EFI_D_ERROR, "Detected Xen version %d.%d\n",\r
-          XenVersion >> 16, XenVersion & 0xFFFF));\r
-  mXenInfo.VersionMajor = (UINT16)(XenVersion >> 16);\r
-  mXenInfo.VersionMinor = (UINT16)(XenVersion & 0xFFFF);\r
-\r
-  /* TBD: Locate hvm_info and reserve it away. */\r
-  mXenInfo.HvmInfo = NULL;\r
-\r
-  BuildGuidDataHob (\r
-    &gEfiXenInfoGuid,\r
-    &mXenInfo,\r
-    sizeof(mXenInfo)\r
-    );\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-/**\r
-  Figures out if we are running inside Xen HVM.\r
-\r
-  @retval TRUE   Xen was detected\r
-  @retval FALSE  Xen was not detected\r
-\r
-**/\r
-BOOLEAN\r
-XenDetect (\r
-  VOID\r
-  )\r
-{\r
-  UINT8 Signature[13];\r
-\r
-  if (mXenLeaf != 0) {\r
-    return TRUE;\r
-  }\r
-\r
-  Signature[12] = '\0';\r
-  for (mXenLeaf = 0x40000000; mXenLeaf < 0x40010000; mXenLeaf += 0x100) {\r
-    AsmCpuid (mXenLeaf,\r
-              NULL,\r
-              (UINT32 *) &Signature[0],\r
-              (UINT32 *) &Signature[4],\r
-              (UINT32 *) &Signature[8]);\r
-\r
-    if (!AsciiStrCmp ((CHAR8 *) Signature, "XenVMMXenVMM")) {\r
-      mXen = TRUE;\r
-      return TRUE;\r
-    }\r
-  }\r
-\r
-  mXenLeaf = 0;\r
-  return FALSE;\r
-}\r
-\r
-/**\r
-  Perform Xen PEI initialization.\r
-\r
-  @return EFI_SUCCESS     Xen initialized successfully\r
-  @return EFI_NOT_FOUND   Not running under Xen\r
-\r
-**/\r
-EFI_STATUS\r
-InitializeXen (\r
-  VOID\r
-  )\r
-{\r
-  if (mXenLeaf == 0) {\r
-    return EFI_NOT_FOUND;\r
-  }\r
-\r
-  XenConnect (mXenLeaf);\r
-\r
-  //\r
-  // Reserve away HVMLOADER reserved memory [0xFC000000,0xFD000000).\r
-  // This needs to match HVMLOADER RESERVED_MEMBASE/RESERVED_MEMSIZE.\r
-  //\r
-  AddReservedMemoryBaseSizeHob (0xFC000000, 0x1000000);\r
-\r
-  return EFI_SUCCESS;\r
-}\r