summaryrefslogtreecommitdiff
path: root/Core/EM/PeiRamBoot/PeiRamBoot.h
blob: 58473e2f47b39f93b21d060c7adf3dfdbb3df688 (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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
//*************************************************************************
//*************************************************************************
//**                                                                     **
//**        (C)Copyright 1985-2010, American Megatrends, Inc.            **
//**                                                                     **
//**                       All Rights Reserved.                          **
//**                                                                     **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093           **
//**                                                                     **
//**                       Phone: (770)-246-8600                         **
//**                                                                     **
//*************************************************************************
//*************************************************************************

//**********************************************************************
// $Header: /Alaska/SOURCE/Modules/PEI Ram Boot/PeiRamBoot.h 7     8/08/12 4:25a Calvinchen $
//
// $Revision: 7 $
//
// $Date: 8/08/12 4:25a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/PEI Ram Boot/PeiRamBoot.h $
// 
// 7     8/08/12 4:25a Calvinchen
// 1. Changed for ReportFv2.c by Artem's suggestion.
// 2. Fixed System hangs if Memory Mapping Changed with warm boot.
// 
// 6     7/18/12 3:41a Calvinchen
// 
// 5     2/23/12 6:35a Calvinchen
// [TAG]  		EIP82264
// [Category]  	Improvement
// [Description]  	Need to do cold boot to get the correct data in rom
// hole when changing data in rom hole.
// [Files]  		PeiRamBoot.sdl
// PeiRamBoot.mak
// PeiRamBoot.h
// PeiRamBoot.c
// PeiRamBootDxe.c
// PeiRamBoot.chm
// PeiRamBoot.cif
// 
// 4     4/22/11 1:27a Calvinchen
// 
// 3     12/29/10 5:35a Calvinchen
// Bug Fixed : DMI structure not update in system memory if
// PEI_RAM_BOOT_S3_SUPPORT = 1 with fast warm boot support. 
// 
// 2     12/14/10 2:25a Calvinchen
// Improvement : 
// 1. Added an eLink "PeiRamBootList" for fast warm boot support
// (PEI_RAM_BOOT_S3_SUPPORT = 1). If system boots in warm boot state, BIOS
// directly boot to previous copied ROM image in RAM to save time of
// copying ROM. 
// 2. Added "PEI_RAM_BOOT_S3_SUPPORT" = "2" for saving runtime memory, it
// only keep necessary PEIM FFS in runtime memory for S3 resume
// improvement. 
// 
// 1     10/27/10 2:48a Calvinchen
// Initial Check-in.
// 
//
//**********************************************************************
//<AMI_FHDR_START>
//
// Name: PeiRamBoot.h
//
// Description: Definition file for PEI Ram Boot.
//
//<AMI_FHDR_END>
//**********************************************************************

#ifndef  PI_SPECIFICATION_VERSION
#define  PI_SPECIFICATION_VERSION   91
#endif

#define FLASH_DEVICE_BASE (0xFFFFFFFF - FLASH_SIZE + 1)

#define ROM_IMAGE_MEMORY_HOB_GUID \
{ 0xee2f45d2, 0x5ba4, 0x441e, 0x8a, 0x1d, 0xaa, 0x22, 0xdf, 0xa3, 0xb6, 0xc5 }

#define ROM_IMAGE_ADDRESS_GUID \
{ 0xDDE1BC72, 0xD45E, 0x4209, 0xAB, 0x85, 0x14, 0x46, 0x2D, 0x2F, 0x50, 0x74 }

#define SMBIOS_FLASH_DATA_FFS_GUID \
{ 0xFD44820B, 0xF1AB, 0x41C0, 0xAE, 0x4E, 0x0C, 0x55, 0x55, 0x6E, 0xB9, 0xBD }

#define ROM_CACHE_ENABLE_PPI_GUID \
{ 0x36E835BB, 0x661D, 0x4D37, 0x8D, 0xE5, 0x88, 0x53, 0x25, 0xDA, 0xE9, 0x10 }

#define FLASH_EMPTY_BYTE (UINT8)(-FLASH_ERASE_POLARITY)

//<AMI_SHDR_START>
//----------------------------------------------------------------------------
// Name:        HOB_ROM_IMAGE
//
// Description: This structure contains information for ROM Image HOB.
//
// Referrals:
//
//----------------------------------------------------------------------------
//<AMI_SHDR_END>
typedef struct {
  UINT32                FvAddress;
  UINT32                FvLength;
  UINT32                UsedBytes;
  UINT32                MemAddress;
  UINT16                NumOfPages;
  UINT8                 FvMemReady;
  UINT8                 IsBootFv;
} FV_INFO;

typedef struct {
#if PEI_RAM_BOOT_S3_SUPPORT == 2
    UINT32                PeimAddress;
    UINT32                PeimLength;
#else    
    UINT32                FfsAddress;
    UINT8                 FfsLength[3];
    UINT8                 FvIndex;
#endif    
} PEIM_FFS_INFO;

typedef struct {
  UINT32                FvAddress;
  UINT32                FvLength;
  UINT32                MemAddress;
} NESTED_FV_INFO;

typedef struct {
  EFI_HOB_GUID_TYPE     EfiHobGuidType;
  BOOLEAN               HobValid;
  UINT32                SmbiosFlashData;
  EFI_PHYSICAL_ADDRESS  StolenHobMemory;    
  UINT8                 NumOfFv;    
  FV_INFO               FvInfo[8];
  UINT8                 NumOfPeim;
#if PEI_RAM_BOOT_S3_SUPPORT == 2
  PEIM_FFS_INFO         PeimFfsInfo[16];
#else
  PEIM_FFS_INFO         RsvdFfsInfo[16];
#endif  
  UINT8                 NestedFvValid;
  UINT8                 NumOfNestedFv;    
  NESTED_FV_INFO        NestedFvInfo[4];
} HOB_ROM_IMAGE;

//*************************************************************************
//*************************************************************************
//**                                                                     **
//**        (C)Copyright 1985-2010, American Megatrends, Inc.            **
//**                                                                     **
//**                       All Rights Reserved.                          **
//**                                                                     **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093           **
//**                                                                     **
//**                       Phone: (770)-246-8600                         **
//**                                                                     **
//*************************************************************************
//*************************************************************************