1 /** @file
2 
3   Copyright (c) 2014 - 2016, 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 _FSP_GLOBAL_DATA_H_
15 #define _FSP_GLOBAL_DATA_H_
16 
17 #include <FspEas.h>
18 
19 #pragma pack(1)
20 
21 typedef enum {
22   TempRamInitApiIndex,
23   FspInitApiIndex,
24   NotifyPhaseApiIndex,
25   FspMemoryInitApiIndex,
26   TempRamExitApiIndex,
27   FspSiliconInitApiIndex,
28   FspApiIndexMax
29 } FSP_API_INDEX;
30 
31 typedef struct  {
32    VOID               *DataPtr;
33    UINT32             MicrocodeRegionBase;
34    UINT32             MicrocodeRegionSize;
35    UINT32             CodeRegionBase;
36    UINT32             CodeRegionSize;
37 } FSP_PLAT_DATA;
38 
39 #define FSP_GLOBAL_DATA_SIGNATURE  SIGNATURE_32 ('F', 'S', 'P', 'D')
40 #define FSP_PERFORMANCE_DATA_SIGNATURE  SIGNATURE_32 ('P', 'E', 'R', 'F')
41 #define FSP_PERFORMANCE_DATA_TIMER_MASK 0xFFFFFFFFFFFFFF
42 
43 typedef struct  {
44    UINT32             Signature;
45    UINT8              Version;
46    UINT8              Reserved1[3];
47    UINT32             CoreStack;
48    UINT32             StatusCode;
49    UINT32             Reserved2[8];
50    FSP_PLAT_DATA      PlatformData;
51    FSP_INFO_HEADER    *FspInfoHeader;
52    VOID               *UpdDataPtr;
53    VOID               *TempRamInitUpdPtr;
54    VOID               *MemoryInitUpdPtr;
55    VOID               *SiliconInitUpdPtr;
56    UINT8              ApiIdx;
57    UINT8              Reserved3[31];
58    UINT32             PerfSig;
59    UINT16             PerfLen;
60    UINT16             Reserved4;
61    UINT32             PerfIdx;
62    UINT64             PerfData[32];
63 } FSP_GLOBAL_DATA;
64 
65 #pragma pack()
66 
67 #endif
68