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
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.
14 DataHubSubClassCache.h
18 Definitions for Cache sub class data records
24 #ifndef _DATAHUB_SUBCLASS_CACHE_H_
25 #define _DATAHUB_SUBCLASS_CACHE_H_
27 #define EFI_CACHE_SUBCLASS_VERSION 0x00010000
29 #define EFI_CACHE_SUBCLASS_GUID \
30 { 0x7f0013a7, 0xdc79, 0x4b22, {0x80, 0x99, 0x11, 0xf7, 0x5f, 0xdc, 0x82, 0x9d} }
32 typedef EFI_EXP_BASE2_DATA EFI_CACHE_SIZE_DATA
;
34 typedef EFI_EXP_BASE2_DATA EFI_MAXIMUM_CACHE_SIZE_DATA
;
36 typedef EFI_EXP_BASE10_DATA EFI_CACHE_SPEED_DATA
;
38 typedef STRING_REF EFI_CACHE_SOCKET_DATA
;
45 UINT32 PipelineBurst
:1;
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.
51 UINT32 Asynchronous
:1;
52 UINT32 Synchronous
:1;
54 } EFI_CACHE_SRAM_TYPE_DATA
;
57 EfiCacheErrorOther
= 1,
58 EfiCacheErrorUnknown
= 2,
59 EfiCacheErrorNone
= 3,
60 EfiCacheErrorParity
= 4,
61 EfiCacheErrorSingleBit
= 5,
62 EfiCacheErrorMultiBit
= 6
63 } EFI_CACHE_ERROR_TYPE_DATA
;
66 EfiCacheTypeOther
= 1,
67 EfiCacheTypeUnknown
= 2,
68 EfiCacheTypeInstruction
= 3,
70 EfiCacheTypeUnified
= 5
71 } EFI_CACHE_TYPE_DATA
;
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
;
95 UINT32 OperationalMode
:2;
97 } EFI_CACHE_CONFIGURATION_DATA
;
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
105 #define EFI_CACHE_SOCKETED 1
106 #define EFI_CACHE_NOT_SOCKETED 0
109 EfiCacheInternal
= 0,
110 EfiCacheExternal
= 1,
111 EfiCacheReserved
= 2,
113 } EFI_CACHE_LOCATION
;
115 #define EFI_CACHE_ENABLED 1
116 #define EFI_CACHE_DISABLED 0
119 EfiCacheWriteThrough
= 0,
120 EfiCacheWriteBack
= 1,
121 EfiCacheDynamicMode
= 2,
122 EfiCacheUnknownMode
= 3
123 } EFI_CACHE_OPERATIONAL_MODE
;
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
;
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
;
156 EFI_SUBCLASS_TYPE1_HEADER DataRecordHeader
;
157 EFI_CACHE_VARIABLE_RECORD VariableRecord
;
158 } EFI_CACHE_DATA_RECORD
;