]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassCache.h
0ae8ed993bcef988c57a47186ae1b9f008f5058b
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / DataHubRecords / DataHubSubClassCache.h
1 /*++
2
3 Copyright (c) 2004 - 2011, 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 Module Name:
13
14 DataHubSubClassCache.h
15
16 Abstract:
17
18 Definitions for Cache sub class data records
19
20 Revision History
21
22 --*/
23
24 #ifndef _DATAHUB_SUBCLASS_CACHE_H_
25 #define _DATAHUB_SUBCLASS_CACHE_H_
26
27 #define EFI_CACHE_SUBCLASS_VERSION 0x00010000
28
29 #define EFI_CACHE_SUBCLASS_GUID \
30 { 0x7f0013a7, 0xdc79, 0x4b22, {0x80, 0x99, 0x11, 0xf7, 0x5f, 0xdc, 0x82, 0x9d} }
31
32 typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA;
33
34 typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA;
35
36 typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA;
37
38 typedef STRING_REF EFI_CACHE_SOCKET_DATA;
39
40 typedef struct {
41 UINT32 Other :1;
42 UINT32 Unknown :1;
43 UINT32 NonBurst :1;
44 UINT32 Burst :1;
45 UINT32 PipelineBurst :1;
46 //
47 // Inconsistent between CacheSubclass 0.9 and SMBIOS specifications here:
48 // In CacheSubclass specification 0.9, the sequence of Asynchronous and Synchronous fileds
49 // are opposite to SMBIOS specification.
50 //
51 UINT32 Asynchronous :1;
52 UINT32 Synchronous :1;
53 UINT32 Reserved :25;
54 } EFI_CACHE_SRAM_TYPE_DATA;
55
56 typedef enum {
57 EfiCacheErrorOther = 1,
58 EfiCacheErrorUnknown = 2,
59 EfiCacheErrorNone = 3,
60 EfiCacheErrorParity = 4,
61 EfiCacheErrorSingleBit = 5,
62 EfiCacheErrorMultiBit = 6
63 } EFI_CACHE_ERROR_TYPE_DATA;
64
65 typedef enum {
66 EfiCacheTypeOther = 1,
67 EfiCacheTypeUnknown = 2,
68 EfiCacheTypeInstruction = 3,
69 EfiCacheTypeData = 4,
70 EfiCacheTypeUnified = 5
71 } EFI_CACHE_TYPE_DATA;
72
73 typedef enum {
74 EfiCacheAssociativityOther = 0x01,
75 EfiCacheAssociativityUnknown = 0x02,
76 EfiCacheAssociativityDirectMapped = 0x03,
77 EfiCacheAssociativity2Way = 0x04,
78 EfiCacheAssociativity4Way = 0x05,
79 EfiCacheAssociativityFully = 0x06,
80 EfiCacheAssociativity8Way = 0x07,
81 EfiCacheAssociativity16Way = 0x08,
82 EfiCacheAssociativity12Way = 0x09,
83 EfiCacheAssociativity24Way = 0x0A,
84 EfiCacheAssociativity32Way = 0x0B,
85 EfiCacheAssociativity48Way = 0x0C,
86 EfiCacheAssociativity64Way = 0x0D
87 } EFI_CACHE_ASSOCIATIVITY_DATA;
88
89 typedef struct {
90 UINT32 Level :3;
91 UINT32 Socketed :1;
92 UINT32 Reserved2 :1;
93 UINT32 Location :2;
94 UINT32 Enable :1;
95 UINT32 OperationalMode :2;
96 UINT32 Reserved1 :22;
97 } EFI_CACHE_CONFIGURATION_DATA;
98
99 #define EFI_CACHE_L1 1
100 #define EFI_CACHE_L2 2
101 #define EFI_CACHE_L3 3
102 #define EFI_CACHE_L4 4
103 #define EFI_CACHE_LMAX EFI_CACHE_L4
104
105 #define EFI_CACHE_SOCKETED 1
106 #define EFI_CACHE_NOT_SOCKETED 0
107
108 typedef enum {
109 EfiCacheInternal = 0,
110 EfiCacheExternal = 1,
111 EfiCacheReserved = 2,
112 EfiCacheUnknown = 3
113 } EFI_CACHE_LOCATION;
114
115 #define EFI_CACHE_ENABLED 1
116 #define EFI_CACHE_DISABLED 0
117
118 typedef enum {
119 EfiCacheWriteThrough = 0,
120 EfiCacheWriteBack = 1,
121 EfiCacheDynamicMode = 2,
122 EfiCacheUnknownMode = 3
123 } EFI_CACHE_OPERATIONAL_MODE;
124
125
126
127 typedef enum {
128 CacheSizeRecordType = 1,
129 MaximumSizeCacheRecordType = 2,
130 CacheSpeedRecordType = 3,
131 CacheSocketRecordType = 4,
132 CacheSramTypeRecordType = 5,
133 CacheInstalledSramTypeRecordType = 6,
134 CacheErrorTypeRecordType = 7,
135 CacheTypeRecordType = 8,
136 CacheAssociativityRecordType = 9,
137 CacheConfigRecordType = 10
138 } EFI_CACHE_VARIABLE_RECORD_TYPE;
139
140
141 typedef union {
142 EFI_CACHE_SIZE_DATA CacheSize;
143 EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;
144 EFI_CACHE_SPEED_DATA CacheSpeed;
145 EFI_CACHE_SOCKET_DATA CacheSocket;
146 EFI_CACHE_SRAM_TYPE_DATA CacheSramType;
147 EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;
148 EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;
149 EFI_CACHE_TYPE_DATA CacheType;
150 EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;
151 EFI_CACHE_CONFIGURATION_DATA CacheConfig;
152 EFI_CACHE_ASSOCIATION_DATA CacheAssociation;
153 } EFI_CACHE_VARIABLE_RECORD;
154
155 typedef struct {
156 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
157 EFI_CACHE_VARIABLE_RECORD VariableRecord;
158 } EFI_CACHE_DATA_RECORD;
159
160
161 #endif