summaryrefslogtreecommitdiff
path: root/Platform/BroxtonPlatformPkg/Common/PlatformSettings/PlatformPreMemPei/PlatformInitPreMem.h
blob: 17b4dad36de4dcc52b974fda2ed8f3d8a1c5f795 (plain)
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