]> git.proxmox.com Git - mirror_edk2.git/blame - UefiCpuPkg/CpuFeatures/CpuFeaturesPei.c
UefiCpuPkg/CpuFeatures: Change files format to DOS
[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
5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#include <PiPei.h>\r
16\r
17#include <Library/BaseLib.h>\r
18#include <Library/DebugLib.h>\r
19#include <Library/PeiServicesLib.h>\r
20#include <Library/RegisterCpuFeaturesLib.h>\r
21\r
22#include <Guid/CpuFeaturesInitDone.h>\r
23\r
24EFI_PEI_PPI_DESCRIPTOR mPeiCpuFeaturesInitDonePpiDesc = {\r
25 (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST),\r
26 &gEdkiiCpuFeaturesInitDoneGuid,\r
27 NULL\r
28};\r
29\r
30/**\r
31 CPU Features driver entry point function.\r
32\r
33 It will perform CPU features initialization, except for\r
34 PcdCpuFeaturesInitOnS3Resume is FALSE on S3 resume.\r
35\r
36 @param FileHandle Handle of the file being invoked.\r
37 @param PeiServices Describes the list of possible PEI Services.\r
38\r
39 @retval EFI_SUCCESS CPU Features is initialized successfully.\r
40**/\r
41EFI_STATUS\r
42EFIAPI\r
43CpuFeaturesPeimInitialize (\r
44 IN EFI_PEI_FILE_HANDLE FileHandle,\r
45 IN CONST EFI_PEI_SERVICES **PeiServices\r
46 )\r
47{\r
48 EFI_STATUS Status;\r
49 EFI_BOOT_MODE BootMode;\r
50\r
51 Status = PeiServicesGetBootMode (&BootMode);\r
52 ASSERT_EFI_ERROR (Status);\r
53\r
54 if (BootMode == BOOT_ON_S3_RESUME &&\r
55 !PcdGetBool (PcdCpuFeaturesInitOnS3Resume)) {\r
56 //\r
57 // Does nothing when if PcdCpuFeaturesInitOnS3Resume is FLASE\r
58 // on S3 boot mode\r
59 //\r
60 return EFI_SUCCESS;\r
61 }\r
62\r
63 CpuFeaturesDetect ();\r
64\r
65 CpuFeaturesInitialize ();\r
66\r
67 //\r
68 // Install CPU Features Init Done PPI\r
69 //\r
70 Status = PeiServicesInstallPpi(&mPeiCpuFeaturesInitDonePpiDesc);\r
71 ASSERT_EFI_ERROR (Status);\r
72\r
73 return EFI_SUCCESS;\r
74}\r
75\r