]> git.proxmox.com Git - mirror_edk2.git/blame - UefiCpuPkg/CpuFeatures/CpuFeaturesPei.c
StandaloneMmPkg: Apply uncrustify changes
[mirror_edk2.git] / UefiCpuPkg / CpuFeatures / CpuFeaturesPei.c
CommitLineData
80c4b236
JF
1/** @file\r
2 CPU Features PEIM driver to initialize CPU features.\r
3\r
4 Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
0acd8697 5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
80c4b236
JF
6\r
7**/\r
8\r
9#include <PiPei.h>\r
10\r
11#include <Library/BaseLib.h>\r
12#include <Library/DebugLib.h>\r
13#include <Library/PeiServicesLib.h>\r
14#include <Library/RegisterCpuFeaturesLib.h>\r
bf5a306a 15#include <Library/HobLib.h>\r
80c4b236
JF
16\r
17#include <Guid/CpuFeaturesInitDone.h>\r
18\r
19EFI_PEI_PPI_DESCRIPTOR mPeiCpuFeaturesInitDonePpiDesc = {\r
20 (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
21 &gEdkiiCpuFeaturesInitDoneGuid,\r
22 NULL\r
23};\r
24\r
25/**\r
26 CPU Features driver entry point function.\r
27\r
28 It will perform CPU features initialization, except for\r
29 PcdCpuFeaturesInitOnS3Resume is FALSE on S3 resume.\r
30\r
31 @param FileHandle Handle of the file being invoked.\r
32 @param PeiServices Describes the list of possible PEI Services.\r
33\r
34 @retval EFI_SUCCESS CPU Features is initialized successfully.\r
35**/\r
36EFI_STATUS\r
37EFIAPI\r
38CpuFeaturesPeimInitialize (\r
39 IN EFI_PEI_FILE_HANDLE FileHandle,\r
40 IN CONST EFI_PEI_SERVICES **PeiServices\r
41 )\r
42{\r
43 EFI_STATUS Status;\r
44 EFI_BOOT_MODE BootMode;\r
45\r
46 Status = PeiServicesGetBootMode (&BootMode);\r
47 ASSERT_EFI_ERROR (Status);\r
48\r
49 if (BootMode == BOOT_ON_S3_RESUME &&\r
50 !PcdGetBool (PcdCpuFeaturesInitOnS3Resume)) {\r
51 //\r
52 // Does nothing when if PcdCpuFeaturesInitOnS3Resume is FLASE\r
53 // on S3 boot mode\r
54 //\r
55 return EFI_SUCCESS;\r
56 }\r
57\r
58 CpuFeaturesDetect ();\r
59\r
60 CpuFeaturesInitialize ();\r
61\r
62 //\r
63 // Install CPU Features Init Done PPI\r
64 //\r
65 Status = PeiServicesInstallPpi(&mPeiCpuFeaturesInitDonePpiDesc);\r
66 ASSERT_EFI_ERROR (Status);\r
67\r
bf5a306a
ED
68 //\r
69 // Build HOB to let CpuFeatureDxe driver skip the initialization process.\r
70 //\r
71 BuildGuidHob (&gEdkiiCpuFeaturesInitDoneGuid, 0);\r
72\r
80c4b236
JF
73 return EFI_SUCCESS;\r
74}\r
75\r