]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFspWrapperPkg/Include/Library/FspPlatformInfoLib.h
IntelFspWrapperPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / IntelFspWrapperPkg / Include / Library / FspPlatformInfoLib.h
CommitLineData
a33a2f62
JY
1/** @file\r
2 Provide FSP platform information related function.\r
3\r
4 Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>\r
19486360 5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
a33a2f62
JY
6\r
7**/\r
8\r
9#ifndef __FSP_PLATFORM_INFO_LIB_H__\r
10#define __FSP_PLATFORM_INFO_LIB_H__\r
11\r
12/**\r
13 Get current boot mode.\r
14\r
15 @note At this point, memory is ready, PeiServices are NOT available to use.\r
16 Platform can get some data from chipset register.\r
17\r
18 @return BootMode current boot mode.\r
19**/\r
20UINT32\r
21EFIAPI\r
22GetBootMode (\r
23 VOID\r
24 );\r
25\r
26/**\r
27 Get NVS buffer parameter.\r
28\r
29 @note At this point, memory is NOT ready, PeiServices are available to use.\r
30\r
31 @return NvsBuffer NVS buffer parameter.\r
32**/\r
33VOID *\r
34EFIAPI\r
35GetNvsBuffer (\r
36 VOID\r
37 );\r
38\r
39/**\r
40 Get UPD region size.\r
41\r
42 @note At this point, memory is NOT ready, PeiServices are available to use.\r
43\r
44 @return UPD region size.\r
45**/\r
46UINT32\r
47EFIAPI\r
48GetUpdRegionSize (\r
49 VOID\r
50 );\r
51\r
52/**\r
53 This function overrides the default configurations in the UPD data region.\r
54\r
55 @param[in,out] FspUpdRgnPtr A pointer to the UPD data region data strcture.\r
56\r
57 @return FspUpdRgnPtr A pointer to the UPD data region data strcture.\r
58**/\r
59VOID *\r
60EFIAPI\r
61UpdateFspUpdConfigs (\r
62 IN OUT VOID *FspUpdRgnPtr\r
63 );\r
64\r
88a539ca
JY
65/**\r
66 Get BootLoader Tolum size.\r
67\r
68 @note At this point, memory is NOT ready, PeiServices are available to use.\r
69\r
70 @return BootLoader Tolum size.\r
71**/\r
72UINT32\r
73EFIAPI\r
74GetBootLoaderTolumSize (\r
75 VOID\r
76 );\r
77\r
d8043ce9
JY
78/**\r
79 Get TempRamExit parameter.\r
80\r
81 @note At this point, memory is ready, PeiServices are available to use.\r
82\r
83 @return TempRamExit parameter.\r
84**/\r
85VOID *\r
86EFIAPI\r
87GetTempRamExitParam (\r
88 VOID\r
89 );\r
90\r
91/**\r
92 Get FspSiliconInit parameter.\r
93\r
94 @note At this point, memory is ready, PeiServices are available to use.\r
95\r
96 @return FspSiliconInit parameter.\r
97**/\r
98VOID *\r
99EFIAPI\r
100GetFspSiliconInitParam (\r
101 VOID\r
102 );\r
103\r
a33a2f62
JY
104/**\r
105 Get S3 PEI memory information.\r
106\r
107 @note At this point, memory is ready, and PeiServices are available to use.\r
108 Platform can get some data from SMRAM directly.\r
109\r
110 @param[out] S3PeiMemSize PEI memory size to be installed in S3 phase.\r
111 @param[out] S3PeiMemBase PEI memory base to be installed in S3 phase.\r
112\r
113 @return If S3 PEI memory information is got successfully.\r
114**/\r
115EFI_STATUS\r
116EFIAPI\r
117GetS3MemoryInfo (\r
118 OUT UINT64 *S3PeiMemSize,\r
119 OUT EFI_PHYSICAL_ADDRESS *S3PeiMemBase\r
120 );\r
121\r
122/**\r
123 Get stack information according to boot mode.\r
124\r
125 @note If BootMode is BOOT_ON_S3_RESUME or BOOT_ON_FLASH_UPDATE,\r
126 this stack should be in some reserved memory space.\r
127\r
128 @note If FspInitDone is TRUE, memory is ready, but no PeiServices there.\r
129 Platform can get some data from SMRAM directly.\r
130 @note If FspInitDone is FALSE, memory is NOT ready, but PeiServices are available to use.\r
131 Platform can get some data from variable via VariablePpi.\r
132\r
133 @param[in] BootMode Current boot mode.\r
134 @param[in] FspInitDone If FspInit is called.\r
135 @param[out] StackSize Stack size to be used in PEI phase.\r
136 @param[out] StackBase Stack base to be used in PEI phase.\r
137\r
138 @return If Stack information is got successfully.\r
139**/\r
140EFI_STATUS\r
141EFIAPI\r
142GetStackInfo (\r
143 IN UINT32 BootMode,\r
144 IN BOOLEAN FspInitDone,\r
145 OUT UINT64 *StackSize,\r
146 OUT EFI_PHYSICAL_ADDRESS *StackBase\r
147 );\r
148\r
149#endif\r