]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFspPkg/FspSecCore/SecFsp.h
Add Dual-FSP support (MemoryInitUpd/SiliconInitUpd)
[mirror_edk2.git] / IntelFspPkg / FspSecCore / SecFsp.h
1 /** @file
2
3 Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php.
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 **/
13
14 #ifndef _SEC_FSP_H_
15 #define _SEC_FSPE_H_
16
17 #include <PiPei.h>
18 #include <FspApi.h>
19 #include <Library/PcdLib.h>
20 #include <Library/BaseLib.h>
21 #include <Library/DebugLib.h>
22 #include <Library/SerialPortLib.h>
23 #include <Library/BaseMemoryLib.h>
24 #include <Library/FspCommonLib.h>
25 #include <Library/FspSecPlatformLib.h>
26
27 #define FSP_MCUD_SIGNATURE SIGNATURE_32 ('M', 'C', 'U', 'D')
28 #define FSP_PER0_SIGNATURE SIGNATURE_32 ('P', 'E', 'R', '0')
29
30 /**
31
32 Calculate the FSP IDT gate descriptor.
33
34 @param[in] IdtEntryTemplate IDT gate descriptor template.
35
36 @return FSP specific IDT gate descriptor.
37
38 **/
39 UINT64
40 FspGetExceptionHandler(
41 IN UINT64 IdtEntryTemplate
42 );
43
44 /**
45
46 Initialize the FSP global data region.
47 It needs to be done as soon as possible after the stack is setup.
48
49 @param[in,out] PeiFspData Pointer of the FSP global data.
50 @param[in] BootLoaderStack BootLoader stack.
51 @param[in] ApiIdx The index of the FSP API.
52
53 **/
54 VOID
55 FspGlobalDataInit (
56 IN OUT FSP_GLOBAL_DATA *PeiFspData,
57 IN UINT32 BootLoaderStack,
58 IN UINT8 ApiIdx
59 );
60
61
62 /**
63
64 Adjust the FSP data pointers after the stack is migrated to memory.
65
66 @param[in] OffsetGap The offset gap between the old stack and the new stack.
67
68 **/
69 VOID
70 FspDataPointerFixUp (
71 IN UINT32 OffsetGap
72 );
73
74
75 /**
76 This interface returns the base address of FSP binary.
77
78 @return FSP binary base address.
79
80 **/
81 UINT32
82 EFIAPI
83 AsmGetFspBaseAddress (
84 VOID
85 );
86
87 /**
88 This interface gets FspInfoHeader pointer
89
90 @return FSP binary base address.
91
92 **/
93 UINT32
94 EFIAPI
95 AsmGetFspInfoHeader (
96 VOID
97 );
98
99 /**
100 This function gets the FSP UPD region offset in flash.
101
102 @return the offset of the UPD region.
103
104 **/
105 UINT32
106 EFIAPI
107 GetFspUpdRegionOffset (
108 VOID
109 );
110
111 #endif