1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
/** @file
The header file of Platform PEIM.
Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef __PLATFORM_INIT_PREMEM_H__
#define __PLATFORM_INIT_PREMEM_H__
typedef struct {
UINT32 Sign ; ///< Signiture#
UINT32 CarBase ; ///< Cache As Ram Base Address
UINT32 CarSize ; ///< Cache As Ram Size
UINT32 IBBSource ; ///< IBB Address in SRAM
UINT32 IBBBase ; ///< IBB Base in CAR.
UINT32 IBBSize ; ///< IBB Size
UINT32 IBBLSource ; ///< IBBL Address in SRAM
UINT32 IBBLBase ; ///< IBBL Base in CAR.
UINT32 IBBLSize ; ///< IBBL Size
UINT32 FITBase ; ///< FIT Base Address
UINT32 StackHeapBase ; ///< STACK&HEAP Base.
UINT32 StackHeapSize ; ///< STACK&HEAP Size
UINT32 HostToCse ;
UINT32 CseToHost ;
UINT32 ChunkIndex ;
UINT32 NumberOfChunks ;
UINT32 IbbSizeLeft ;
UINT32 Chunksize ;
UINT64 IbblPerfRecord0; ///< The QWORD Performance record0 of IBBL
UINT64 IbblPerfRecord1; ///< The QWORD Performance record1 of IBBL
UINT64 IbblPerfRecord2; ///< The QWORD Performance record2 of IBBL
UINT64 IbblPerfRecord3; ///< The QWORD Performance record3 of IBBL
UINT64 IbblPerfRecord4; ///< The QWORD Performance record4 of IBBL
UINT64 IbblPerfRecord5; ///< The QWORD Performance record5 of IBBL
} CarMapStruc;
//
//Function Prototypes Only - please do not add #includes here
//
/**
This is the callback function notified by FvFileLoader PPI, it depends on FvFileLoader PPI to load
the PEIM into memory.
@param[in] PeiServices General purpose services available to every PEIM.
@param[in] NotifyDescriptor The context of notification.
@param[in] Ppi The notify PPI.
@retval EFI_SUCCESS if it completed successfully.
**/
EFI_STATUS
EFIAPI
FvFileLoaderPpiNotifyCallback (
IN EFI_PEI_SERVICES **PeiServices,
IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,
IN VOID *Ppi
);
EFI_STATUS
EFIAPI
SeCUmaEntry (
IN EFI_PEI_FILE_HANDLE FileHandle,
IN CONST EFI_PEI_SERVICES **PeiServices
);
EFI_STATUS
EFIAPI
GetBiosReservedMemoryPolicy (
IN CONST EFI_PEI_SERVICES **PeiServices,
IN PEI_BIOS_RESERVED_MEMORY_POLICY_PPI *This,
IN OUT BIOS_RESERVED_MEMORY_CONFIG *BiosReservedMemoryPolicy
);
EFI_STATUS
EFIAPI
MfgMemoryTest (
IN CONST EFI_PEI_SERVICES **PeiServices,
IN PEI_MFG_MEMORY_TEST_PPI *This,
IN UINT32 BeginAddress,
IN UINT32 MemoryLength
);
BOOLEAN
IsRtcUipAlwaysSet (
IN CONST EFI_PEI_SERVICES **PeiServices
);
VOID
RtcPowerFailureHandler (
VOID
);
VOID
ScBaseInit (
VOID
);
EFI_STATUS
UpdateBootMode (
IN CONST EFI_PEI_SERVICES **PeiServices,
IN OUT EFI_PLATFORM_INFO_HOB *PlatformInfoHob
);
/**
This function performs Silicon Policy initialization.
@param[in] FirmwareConfiguration It uses to skip specific policy init that depends
on the 'FirmwareConfiguration' variable.
@retval EFI_SUCCESS The PPI is installed and initialized.
@retval EFI ERRORS The PPI is not successfully installed.
@retval EFI_OUT_OF_RESOURCES Do not have enough resources to initialize the driver
**/
EFI_STATUS
EFIAPI
PeiSiPolicyInit (
VOID
);
EFI_STATUS
ReadBxtIPlatformIds (
IN CONST EFI_PEI_SERVICES **PeiServices,
IN OUT EFI_PLATFORM_INFO_HOB *PlatformInfoHob
);
EFI_STATUS
EFIAPI
InstallMonoStatusCode (
IN EFI_FFS_FILE_HEADER *FfsHeader,
IN CONST EFI_PEI_SERVICES **PeiServices
);
#endif
|