1 /** @file
2 
3   Copyright (c) 2014 - 2016, Intel Corporation. All rights reserved.<BR>
4   SPDX-License-Identifier: BSD-2-Clause-Patent
5 
6 **/
7 
8 #ifndef _SEC_FSP_H_
9 #define _SEC_FSP_H_
10 
11 #include <PiPei.h>
12 #include <FspEas.h>
13 #include <Library/PcdLib.h>
14 #include <Library/BaseLib.h>
15 #include <Library/DebugLib.h>
16 #include <Library/SerialPortLib.h>
17 #include <Library/BaseMemoryLib.h>
18 #include <Library/FspCommonLib.h>
19 #include <Library/FspSecPlatformLib.h>
20 
21 #define FSP_MCUD_SIGNATURE  SIGNATURE_32 ('M', 'C', 'U', 'D')
22 #define FSP_PER0_SIGNATURE  SIGNATURE_32 ('P', 'E', 'R', '0')
23 
24 /**
25 
26   Calculate the FSP IDT gate descriptor.
27 
28   @param[in] IdtEntryTemplate     IDT gate descriptor template.
29 
30   @return                     FSP specific IDT gate descriptor.
31 
32 **/
33 UINT64
34 FspGetExceptionHandler(
35   IN  UINT64  IdtEntryTemplate
36   );
37 
38 /**
39 
40   Initialize the FSP global data region.
41   It needs to be done as soon as possible after the stack is setup.
42 
43   @param[in,out] PeiFspData             Pointer of the FSP global data.
44   @param[in]     BootLoaderStack        BootLoader stack.
45   @param[in]     ApiIdx                 The index of the FSP API.
46 
47 **/
48 VOID
49 FspGlobalDataInit (
50   IN OUT  FSP_GLOBAL_DATA    *PeiFspData,
51   IN UINT32                   BootLoaderStack,
52   IN UINT8                    ApiIdx
53   );
54 
55 
56 /**
57 
58   Adjust the FSP data pointers after the stack is migrated to memory.
59 
60   @param[in] OffsetGap             The offset gap between the old stack and the new stack.
61 
62 **/
63 VOID
64 FspDataPointerFixUp (
65   IN UINT32   OffsetGap
66   );
67 
68 
69 /**
70   This interface returns the base address of FSP binary.
71 
72   @return   FSP binary base address.
73 
74 **/
75 UINT32
76 EFIAPI
77 AsmGetFspBaseAddress (
78   VOID
79   );
80 
81 /**
82   This interface gets FspInfoHeader pointer
83 
84   @return   FSP binary base address.
85 
86 **/
87 UINT32
88 EFIAPI
89 AsmGetFspInfoHeader (
90   VOID
91   );
92 
93 #endif
94