]>
Commit | Line | Data |
---|---|---|
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 | |
30 | VOID\r | |
31 | IntelTdxInitialize (\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 |