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
|
/** @file
Interface definition details for MBP during DXE phase.
@copyright
Copyright (c) 2006 - 2012 Intel Corporation. All rights reserved
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.
This file contains a 'Sample Driver' and is licensed as such
under the terms of your license agreement with Intel or your
vendor. This file may be modified by the user, subject to
the additional terms of the license agreement
**/
#ifndef _MBP_DATA_PROTOCOL_H_
#define _MBP_DATA_PROTOCOL_H_
#include "CoreBiosMsg.h"
///
/// MBP Protocol for DXE phase
///
#define ME_BIOS_PAYLOAD_DATA_PROTOCOL_GUID \
{ \
0x71a19494, 0x2ab6, 0x4e96, 0x85, 0x81, 0xcf, 0x34, 0x25, 0x42, 0x73, 0xfe \
}
///
/// Revision 1: Original version
///
#define DXE_MBP_DATA_PROTOCOL_REVISION_1 1
#define DXE_MBP_DATA_PROTOCOL_REVISION_2 2
extern EFI_GUID gMeBiosPayloadDataProtocolGuid;
#pragma pack(push, 1)
typedef struct _MBP_FW_VERSION_NAME {
UINT32 MajorVersion : 16;
UINT32 MinorVersion : 16;
UINT32 HotfixVersion : 16;
UINT32 BuildVersion : 16;
} MBP_FW_VERSION_NAME;
typedef struct _MBP_ICC_PROFILE {
UINT8 NumIccProfiles;
UINT8 IccProfileSoftStrap;
UINT8 IccProfileIndex;
UINT8 Reserved;
ICC_LOCK_REGS_INFO IccLockRegInfo;
} MBP_ICC_PROFILE;
typedef struct _MBP_FW_CAPS_SKU {
MEFWCAPS_SKU FwCapabilities;
BOOLEAN Available;
} MBP_FW_CAPS_SKU;
typedef struct _MBP_FW_FEATURES_STATE {
MEFWCAPS_SKU FwFeatures;
BOOLEAN Available;
} MBP_FW_FEATURES_STATE;
typedef struct _MBP_ROM_BIST_DATA {
UINT16 DeviceId;
UINT16 FuseTestFlags;
UINT32 UMCHID[4];
} MBP_ROM_BIST_DATA;
typedef struct _MBP_PLATFORM_KEY {
UINT32 Key[8];
} MBP_PLATFORM_KEY;
typedef struct _MBP_PLAT_TYPE {
PLATFORM_TYPE_RULE_DATA RuleData;
BOOLEAN Available;
} MBP_PLAT_TYPE;
typedef union _HWA_DATA {
UINT32 Raw;
struct {
UINT32 MediaTablePush : 1;
UINT32 Reserved : 31;
} Fields;
} HWA_DATA;
typedef struct _MBP_HWA_REQ {
HWA_DATA Data;
BOOLEAN Available;
} MBP_HWA_REQ;
typedef struct _MBP_PERF_DATA {
UINT32 PwrbtnMrst;
UINT32 MrstPltrst;
UINT32 PltrstCpurst;
} MBP_PERF_DATA;
typedef struct _PLAT_BOOT_PERF_DATA {
MBP_PERF_DATA MbpPerfData;
BOOLEAN Available;
} PLAT_BOOT_PERF_DATA;
typedef struct _MBP_NFC_DATA {
UINT32 DeviceType :2;
UINT32 Reserved : 29;
UINT32 Hide :1;
} MBP_NFC_DATA;
typedef struct _MBP_NFC_SUPPORT {
MBP_NFC_DATA NfcData;
BOOLEAN Available;
} MBP_NFC_SUPPORT;
typedef struct {
MBP_FW_VERSION_NAME FwVersionName;
MBP_FW_CAPS_SKU FwCapsSku;
MBP_FW_FEATURES_STATE FwFeaturesState;
MBP_ROM_BIST_DATA RomBistData;
MBP_PLATFORM_KEY PlatformKey;
MBP_PLAT_TYPE FwPlatType;
MBP_ICC_PROFILE IccProfile;
AT_STATE_INFO AtState;
UINT32 MFSIntegrity;
MBP_HWA_REQ HwaRequest;
PLAT_BOOT_PERF_DATA PlatBootPerfData;
MBP_NFC_SUPPORT NfcSupport;
} ME_BIOS_PAYLOAD;
#pragma pack(pop)
///
/// MBP DXE Protocol
///
typedef struct _DXE_MBP_DATA_PROTOCOL {
EFI_HANDLE Handle;
UINT8 Revision;
ME_BIOS_PAYLOAD MeBiosPayload;
} DXE_MBP_DATA_PROTOCOL;
#endif
|