]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Framework/Guid/DataHubRecords/DataHubSubClassCache.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Framework / Guid / DataHubRecords / DataHubSubClassCache.h
1 /*++
2
3 Copyright (c) 2004, Intel Corporation
4 All rights reserved. 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 UINT32 Asynchronous :1;
47 UINT32 Synchronous :1;
48 UINT32 Reserved :25;
49 } EFI_CACHE_SRAM_TYPE_DATA;
50
51 typedef enum {
52 EfiCacheErrorOther = 1,
53 EfiCacheErrorUnknown = 2,
54 EfiCacheErrorNone = 3,
55 EfiCacheErrorParity = 4,
56 EfiCacheErrorSingleBit = 5,
57 EfiCacheErrorMultiBit = 6
58 } EFI_CACHE_ERROR_TYPE_DATA;
59
60 typedef enum {
61 EfiCacheTypeOther = 1,
62 EfiCacheTypeUnknown = 2,
63 EfiCacheTypeInstruction = 3,
64 EfiCacheTypeData = 4,
65 EfiCacheTypeUnified = 5
66 } EFI_CACHE_TYPE_DATA;
67
68 typedef enum {
69 EfiCacheAssociativityOther = 1,
70 EfiCacheAssociativityUnknown = 2,
71 EfiCacheAssociativityDirectMapped = 3,
72 EfiCacheAssociativity2Way = 4,
73 EfiCacheAssociativity4Way = 5,
74 EfiCacheAssociativityFully = 6,
75 EfiCacheAssociativity8Way = 7,
76 EfiCacheAssociativity16Way = 8
77 } EFI_CACHE_ASSOCIATIVITY_DATA;
78
79 typedef struct {
80 UINT32 Level :3;
81 UINT32 Socketed :1;
82 UINT32 Reserved2 :1;
83 UINT32 Location :2;
84 UINT32 Enable :1;
85 UINT32 OperationalMode :2;
86 UINT32 Reserved1 :22;
87 } EFI_CACHE_CONFIGURATION_DATA;
88
89 #define EFI_CACHE_L1 1
90 #define EFI_CACHE_L2 2
91 #define EFI_CACHE_L3 3
92 #define EFI_CACHE_L4 4
93 #define EFI_CACHE_LMAX EFI_CACHE_L4
94
95 #define EFI_CACHE_SOCKETED 1
96 #define EFI_CACHE_NOT_SOCKETED 0
97
98 typedef enum {
99 EfiCacheInternal = 0,
100 EfiCacheExternal = 1,
101 EfiCacheReserved = 2,
102 EfiCacheUnknown = 3
103 } EFI_CACHE_LOCATION;
104
105 #define EFI_CACHE_ENABLED 1
106 #define EFI_CACHE_DISABLED 0
107
108 typedef enum {
109 EfiCacheWriteThrough = 0,
110 EfiCacheWriteBack = 1,
111 EfiCacheDynamicMode = 2,
112 EfiCacheUnknownMode = 3
113 } EFI_CACHE_OPERATIONAL_MODE;
114
115
116
117 typedef enum {
118 CacheSizeRecordType = 1,
119 MaximumSizeCacheRecordType = 2,
120 CacheSpeedRecordType = 3,
121 CacheSocketRecordType = 4,
122 CacheSramTypeRecordType = 5,
123 CacheInstalledSramTypeRecordType = 6,
124 CacheErrorTypeRecordType = 7,
125 CacheTypeRecordType = 8,
126 CacheAssociativityRecordType = 9,
127 CacheConfigRecordType = 10
128 } EFI_CACHE_VARIABLE_RECORD_TYPE;
129
130
131 typedef union {
132 EFI_CACHE_SIZE_DATA CacheSize;
133 EFI_MAXIMUM_CACHE_SIZE_DATA MaximumCacheSize;
134 EFI_CACHE_SPEED_DATA CacheSpeed;
135 EFI_CACHE_SOCKET_DATA CacheSocket;
136 EFI_CACHE_SRAM_TYPE_DATA CacheSramType;
137 EFI_CACHE_SRAM_TYPE_DATA CacheInstalledSramType;
138 EFI_CACHE_ERROR_TYPE_DATA CacheErrorType;
139 EFI_CACHE_TYPE_DATA CacheType;
140 EFI_CACHE_ASSOCIATIVITY_DATA CacheAssociativity;
141 EFI_CACHE_CONFIGURATION_DATA CacheConfig;
142 EFI_CACHE_ASSOCIATION_DATA CacheAssociation;
143 } EFI_CACHE_VARIABLE_RECORD;
144
145 typedef struct {
146 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader;
147 EFI_CACHE_VARIABLE_RECORD VariableRecord;
148 } EFI_CACHE_DATA_RECORD;
149
150
151 #endif