summaryrefslogtreecommitdiff
path: root/Include/CacheSubClass.h
blob: cfa5475aa18e39ea0ca299ea02a481cc39e477cc (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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2005, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**             6145-F Northbelt Pkwy, Norcross, GA 30071            **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************

//**********************************************************************
// $Header: /Alaska/BIN/Core/Include/CacheSubClass.h 2     6/29/10 2:05a Felixp $
//
// $Revision: 2 $
//
// $Date: 6/29/10 2:05a $
//**********************************************************************
// Revision History
// ----------------
// $Log: /Alaska/BIN/Core/Include/CacheSubClass.h $
// 
// 2     6/29/10 2:05a Felixp
// EFI_CACHE_ASSOCIATIVITY_DATA enum is extended with 32, 48, and 64 way
// values.
// 
// 1     10/10/05 4:45p Markw
// 
// 1     10/10/05 4:25p Markw
// 
//**********************************************************************
//<AMI_FHDR_START>
//
// Name: CacheSubClass.h
//
// Description:	CacheSubClass definitions.
//
//<AMI_FHDR_END>
//**********************************************************************

#ifndef __CACHE_SUBCLASS_H__
#define __CACHE_SUBCLASS_H__

#include <efi.h>
#include <DataHubSubClass.h>

#ifdef __cplusplus
extern "C" {
#endif

#define EFI_CACHE_SUBCLASS_GUID \
	{0x7f0013a7,0xdc79,0x4b22,0x80,0x99,0x11,0xf7,0x5f,0xdc,0x82,0x9d}
#define EFI_CACHE_CLASS EFI_DATA_CLASS_DATA
#define EFI_CACHE_SUBCLASS_VERSION	0x00010000

//Size
#define EFI_CACHE_SIZE_RECORD_NUMBER			0x00000001
typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;

//Maximum Size
#define EFI_MAXIMUM_CACHE_SIZE_RECORD_NUMBER	0x00000002
typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;

//Speed
#define EFI_CACHE_SPEED_RECORD_NUMBER			0x00000003
typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;

//Socket
#define EFI_CACHE_SOCKET_RECORD_NUMBER			0x00000004
typedef STRING_REF EFI_CACHE_SOCKET_DATA;

//SRAM Type Supported
#define EFI_CACHE_SRAM_SUPPORT_RECORD_NUMBER	0x00000005
typedef struct {
	UINT16 Other		:1;
	UINT16 Unknown		:1;
	UINT16 NonBurst		:1;
	UINT16 Burst		:1;
	UINT16 PipelineBurst:1;
	UINT16 Asynchronous	:1;
	UINT16 Synchronous	:1;
	UINT16 Reserved		:9;
} EFI_CACHE_SRAM_TYPE_DATA;

//SRAM Type Installed
#define EFI_CACHE_SRAM_INSTALL_RECORD_NUMBER	0x00000006
typedef EFI_CACHE_SRAM_TYPE_DATA EFI_CACHE_SRAM_INSTALL_DATA;

//Error Correction Type Supported
#define EFI_CACHE_ERROR_SUPPORT_RECORD_NUMBER	0x00000007
typedef enum {
	EfiCacheErrorOther		= 1,
	EfiCacheErrorUnknown	= 2,
	EfiCacheErrorNone		= 3,
	EfiCacheErrorParity		= 4,
	EfiCacheErrorSingleBit	= 5,
	EfiCacheErrorMultiBit	= 6
} EFI_CACHE_ERROR_TYPE_DATA;

//Type
#define EFI_CACHE_TYPE_RECORD_NUMBER			0x00000008
typedef enum {
	EfiCacheTypeOther		= 1,
	EfiCacheTypeUnknown		= 2,
	EfiCacheTypeInstruction	= 3,
	EfiCacheTypeData		= 4,
	EfiCacheTypeUnified		= 5	
} EFI_CACHE_TYPE_DATA;

//Associativity
#define EFI_CACHE_ASSOCIATIVITY_RECORD_NUMBER	0x00000009
typedef enum {
	EfiCacheAssociativityOther			= 1,
	EfiCacheAssociativityUnknown		= 2,
	EfiCacheAssociativityDirectMapped	= 3,
	EfiCacheAssociativity2Way			= 4,
	EfiCacheAssociativity4Way			= 5,
	EfiCacheAssociativityFully			= 6,
	EfiCacheAssociativity8Way			= 7,
	EfiCacheAssociativity16Way			= 8,
	EfiCacheAssociativity32Way			= 9,
	EfiCacheAssociativity48Way			= 10,
	EfiCacheAssociativity64Way			= 11
} EFI_CACHE_ASSOCIATIVITY_DATA;


//Configuration
#define EFI_CACHE_CONFIGURATION_RECORD_NUMBER	0x0000000A;

//The following constants are associated with Level:
#define EFI_CACHE_L1 1
#define EFI_CACHE_L2 2
#define EFI_CACHE_L3 3

//The following constants are associated with Socketed:
#define EFI_CACHE_SOCKETED		1
#define EFI_CACHE_NOT_SOCKETED	0

//The following enumeration is associated with Location:
typedef enum {
	EfiCacheInternal = 0,
	EfiCacheExternal = 1,
	EfiCacheReserved = 2,
	EfiCacheUnknown  = 3
} EFI_CACHE_LOCATION;

//The following constants are associated with Enabled:
#define EFI_CACHE_ENABLED  1
#define EFI_CACHE_DISABLED 0

//The following enumeration is associated with OperationalMode:
typedef enum {
	EfiCacheWriteThrough	= 0,
	EfiCacheWriteBack		= 1,
	EfiCacheDynamicMode		= 2,
	EfiCacheUnknownMode		= 3
} EFI_CACHE_OPERATIONAL_MODE;


typedef struct {
	UINT32 Level		:3;
	UINT32 Socketed		:1;
	UINT32 Reserved2	:1;
	UINT32 Location		:2;
	UINT32 Enable		:1;
	UINT32 OperationalMode:2;
	UINT32 Reserved1	:22;
} EFI_CACHE_CONFIGURATION_DATA;


/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif
#endif

//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2005, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**             6145-F Northbelt Pkwy, Norcross, GA 30071            **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************