1 /** @file
2   Provide FSP wrapper platform related function.
3 
4   Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php.
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef __FSP_WRAPPER_PLATFORM_LIB_H__
16 #define __FSP_WRAPPER_PLATFORM_LIB_H__
17 
18 /**
19   This function overrides the default configurations in the FSP-M UPD data region.
20 
21   @param[in,out] FspUpdRgnPtr   A pointer to the UPD data region data strcture.
22 
23 **/
24 VOID
25 EFIAPI
26 UpdateFspmUpdData (
27   IN OUT VOID        *FspUpdRgnPtr
28   );
29 
30 /**
31   This function overrides the default configurations in the FSP-S UPD data region.
32 
33   @param[in,out] FspUpdRgnPtr   A pointer to the UPD data region data strcture.
34 
35 **/
36 VOID
37 EFIAPI
38 UpdateFspsUpdData (
39   IN OUT VOID        *FspUpdRgnPtr
40   );
41 
42 /**
43   Update TempRamExit parameter.
44 
45   @note At this point, memory is ready, PeiServices are available to use.
46 
47   @return TempRamExit parameter.
48 **/
49 VOID *
50 EFIAPI
51 UpdateTempRamExitParam (
52   VOID
53   );
54 
55 /**
56   Get S3 PEI memory information.
57 
58   @note At this point, memory is ready, and PeiServices are available to use.
59   Platform can get some data from SMRAM directly.
60 
61   @param[out] S3PeiMemSize  PEI memory size to be installed in S3 phase.
62   @param[out] S3PeiMemBase  PEI memory base to be installed in S3 phase.
63 
64   @return If S3 PEI memory information is got successfully.
65 **/
66 EFI_STATUS
67 EFIAPI
68 GetS3MemoryInfo (
69   OUT UINT64               *S3PeiMemSize,
70   OUT EFI_PHYSICAL_ADDRESS *S3PeiMemBase
71   );
72 
73 /**
74   Perform platform related reset in FSP wrapper.
75 
76   This function will reset the system with requested ResetType.
77 
78   @param[in] FspStatusResetType  The type of reset the platform has to perform.
79 **/
80 VOID
81 EFIAPI
82 CallFspWrapperResetSystem (
83   IN UINT32    FspStatusResetType
84   );
85 
86 #endif
87