]> git.proxmox.com Git - mirror_edk2.git/blame - OvmfPkg/PlatformPei/IntelTdx.c
OvmfPkg: Update PlatformPei to support Tdx guest
[mirror_edk2.git] / OvmfPkg / PlatformPei / IntelTdx.c
CommitLineData
cf17156d
MX
1/** @file\r
2 Initialize Intel TDX support.\r
3\r
4 Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>\r
5\r
6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
7\r
8**/\r
9\r
10#include <PiPei.h>\r
11#include <Library/BaseLib.h>\r
12#include <Library/DebugLib.h>\r
13#include <Library/HobLib.h>\r
14#include <Library/BaseMemoryLib.h>\r
15#include <Library/MemoryAllocationLib.h>\r
16#include <IndustryStandard/Tdx.h>\r
17#include <IndustryStandard/QemuFwCfg.h>\r
18#include <Library/QemuFwCfgLib.h>\r
19#include <Library/PeiServicesLib.h>\r
20#include <Library/TdxLib.h>\r
21#include <Library/PlatformInitLib.h>\r
22#include <WorkArea.h>\r
23#include <ConfidentialComputingGuestAttr.h>\r
24#include "Platform.h"\r
25\r
26/**\r
27 This Function checks if TDX is available, if present then it sets\r
28 the dynamic PCDs for Tdx guest.\r
29 **/\r
30VOID\r
31IntelTdxInitialize (\r
32 VOID\r
33 )\r
34{\r
35 #ifdef MDE_CPU_X64\r
36 RETURN_STATUS PcdStatus;\r
37\r
38 if (!TdIsEnabled ()) {\r
39 return;\r
40 }\r
41\r
42 PcdStatus = PcdSet64S (PcdConfidentialComputingGuestAttr, CCAttrIntelTdx);\r
43 ASSERT_RETURN_ERROR (PcdStatus);\r
44\r
45 PcdStatus = PcdSet64S (PcdTdxSharedBitMask, TdSharedPageMask ());\r
46 ASSERT_RETURN_ERROR (PcdStatus);\r
47\r
48 PcdStatus = PcdSetBoolS (PcdSetNxForStack, TRUE);\r
49 ASSERT_RETURN_ERROR (PcdStatus);\r
50 #endif\r
51}\r