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