1 /** @file
2   Provide FSP API related function.
3 
4   Copyright (c) 2014 - 2015, 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_API_LIB_H__
16 #define __FSP_API_LIB_H__
17 
18 #include <FspApi.h>
19 #include <FspInfoHeader.h>
20 
21 /**
22   Find FSP header pointer.
23 
24   @param[in] FlashFvFspBase Flash address of FSP FV.
25 
26   @return FSP header pointer.
27 **/
28 FSP_INFO_HEADER *
29 EFIAPI
30 FspFindFspHeader (
31   IN EFI_PHYSICAL_ADDRESS  FlashFvFspBase
32   );
33 
34 /**
35   Call FSP API - FspInit.
36 
37   @param[in] FspHeader     FSP header pointer.
38   @param[in] FspInitParams Address pointer to the FSP_INIT_PARAMS structure.
39 
40   @return EFI status returned by FspInit API.
41 **/
42 EFI_STATUS
43 EFIAPI
44 CallFspInit (
45   IN FSP_INFO_HEADER     *FspHeader,
46   IN FSP_INIT_PARAMS     *FspInitParams
47   );
48 
49 /**
50   Call FSP API - FspNotifyPhase.
51 
52   @param[in] FspHeader         FSP header pointer.
53   @param[in] NotifyPhaseParams Address pointer to the NOTIFY_PHASE_PARAMS structure.
54 
55   @return EFI status returned by FspNotifyPhase API.
56 **/
57 EFI_STATUS
58 EFIAPI
59 CallFspNotifyPhase (
60   IN FSP_INFO_HEADER     *FspHeader,
61   IN NOTIFY_PHASE_PARAMS *NotifyPhaseParams
62   );
63 
64 /**
65   Call FSP API - FspMemoryInit.
66 
67   @param[in]     FspHeader           FSP header pointer.
68   @param[in,out] FspMemoryInitParams Address pointer to the FSP_MEMORY_INIT_PARAMS structure.
69 
70   @return EFI status returned by FspMemoryInit API.
71 **/
72 EFI_STATUS
73 EFIAPI
74 CallFspMemoryInit (
75   IN FSP_INFO_HEADER            *FspHeader,
76   IN OUT FSP_MEMORY_INIT_PARAMS *FspMemoryInitParams
77   );
78 
79 /**
80   Call FSP API - TempRamExit.
81 
82   @param[in]     FspHeader           FSP header pointer.
83   @param[in,out] TempRamExitParam    Address pointer to the TempRamExit parameters structure.
84 
85   @return EFI status returned by TempRamExit API.
86 **/
87 EFI_STATUS
88 EFIAPI
89 CallTempRamExit (
90   IN FSP_INFO_HEADER            *FspHeader,
91   IN OUT VOID                   *TempRamExitParam
92   );
93 
94 /**
95   Call FSP API - FspSiliconInit.
96 
97   @param[in]     FspHeader           FSP header pointer.
98   @param[in,out] FspSiliconInitParam Address pointer to the Silicon Init parameters structure.
99 
100   @return EFI status returned by FspSiliconInit API.
101 **/
102 EFI_STATUS
103 EFIAPI
104 CallFspSiliconInit (
105   IN FSP_INFO_HEADER            *FspHeader,
106   IN OUT VOID                   *FspSiliconInitParam
107   );
108 
109 #endif
110