]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/AutoScanPei/AutoScanPei.c
CryptoPkg/BaseCryptLib: Make HMAC_CTX size backward compatible
[mirror_edk2.git] / EmulatorPkg / AutoScanPei / AutoScanPei.c
CommitLineData
949f388f 1/*++ @file\r
2\r
54ee6176 3Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
949f388f 4Portions copyright (c) 2011, Apple Inc. All rights reserved.\r
e3ba31da 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
949f388f 6\r
7**/\r
8\r
9#include "PiPei.h"\r
10#include <Ppi/EmuThunk.h>\r
11#include <Ppi/MemoryDiscovered.h>\r
12\r
13#include <Library/DebugLib.h>\r
14#include <Library/PeimEntryPoint.h>\r
15#include <Library/BaseLib.h>\r
16#include <Library/BaseMemoryLib.h>\r
17#include <Library/HobLib.h>\r
18#include <Library/PeiServicesLib.h>\r
19#include <Library/PeiServicesTablePointerLib.h>\r
20\r
21EFI_STATUS\r
22EFIAPI\r
23PeimInitializeAutoScanPei (\r
24 IN EFI_PEI_FILE_HANDLE FileHandle,\r
25 IN CONST EFI_PEI_SERVICES **PeiServices\r
26 )\r
27/*++\r
28\r
29Routine Description:\r
30 Perform a call-back into the SEC simulator to get a memory value\r
31\r
32Arguments:\r
33 FfsHeader - General purpose data available to every PEIM\r
34 PeiServices - General purpose services available to every PEIM.\r
d18d8a1d 35\r
949f388f 36Returns:\r
37 None\r
38\r
39**/\r
40{\r
41 EFI_STATUS Status;\r
42 EFI_PEI_PPI_DESCRIPTOR *PpiDescriptor;\r
43 EMU_THUNK_PPI *Thunk;\r
44 UINT64 MemorySize;\r
45 EFI_PHYSICAL_ADDRESS MemoryBase;\r
46 UINTN Index;\r
47 EFI_RESOURCE_ATTRIBUTE_TYPE Attributes;\r
48\r
49\r
50 DEBUG ((EFI_D_ERROR, "Emu Autoscan PEIM Loaded\n"));\r
51\r
52 //\r
53 // Get the PEI UNIX Autoscan PPI\r
54 //\r
55 Status = PeiServicesLocatePpi (\r
56 &gEmuThunkPpiGuid, // GUID\r
57 0, // INSTANCE\r
58 &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR\r
59 (VOID **)&Thunk // PPI\r
60 );\r
61 ASSERT_EFI_ERROR (Status);\r
62\r
63 Index = 0;\r
64 do {\r
65 Status = Thunk->MemoryAutoScan (Index, &MemoryBase, &MemorySize);\r
66 if (!EFI_ERROR (Status)) {\r
67 Attributes =\r
68 (\r
69 EFI_RESOURCE_ATTRIBUTE_PRESENT |\r
70 EFI_RESOURCE_ATTRIBUTE_INITIALIZED |\r
71 EFI_RESOURCE_ATTRIBUTE_UNCACHEABLE |\r
72 EFI_RESOURCE_ATTRIBUTE_WRITE_COMBINEABLE |\r
73 EFI_RESOURCE_ATTRIBUTE_WRITE_THROUGH_CACHEABLE |\r
74 EFI_RESOURCE_ATTRIBUTE_WRITE_BACK_CACHEABLE\r
75 );\r
76\r
77 if (Index == 0) {\r
78 //\r
79 // Register the memory with the PEI Core\r
80 //\r
81 Status = PeiServicesInstallPeiMemory (MemoryBase, MemorySize);\r
82 ASSERT_EFI_ERROR (Status);\r
83\r
84 Attributes |= EFI_RESOURCE_ATTRIBUTE_TESTED;\r
85 }\r
d18d8a1d 86\r
949f388f 87 BuildResourceDescriptorHob (\r
88 EFI_RESOURCE_SYSTEM_MEMORY,\r
89 Attributes,\r
90 MemoryBase,\r
91 MemorySize\r
92 );\r
93 }\r
94 Index++;\r
95 } while (!EFI_ERROR (Status));\r
96\r
97 //\r
54ee6176 98 // Build the CPU hob with 57-bit addressing and 16-bits of IO space.\r
949f388f 99 //\r
54ee6176 100 BuildCpuHob (57, 16);\r
d18d8a1d 101\r
949f388f 102 return Status;\r
103}\r