| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: cacheinfo.h,v 1.15 2013/07/17 15:26:38 msaitoh Exp $ */ | | 1 | /* $NetBSD: cacheinfo.h,v 1.16 2013/09/14 17:21:19 msaitoh Exp $ */ |
2 | | | 2 | |
3 | #ifndef _X86_CACHEINFO_H_ | | 3 | #ifndef _X86_CACHEINFO_H_ |
4 | #define _X86_CACHEINFO_H_ | | 4 | #define _X86_CACHEINFO_H_ |
5 | | | 5 | |
6 | struct x86_cache_info { | | 6 | struct x86_cache_info { |
7 | uint8_t cai_index; | | 7 | uint8_t cai_index; |
8 | uint8_t cai_desc; | | 8 | uint8_t cai_desc; |
9 | uint8_t cai_associativity; | | 9 | uint8_t cai_associativity; |
10 | u_int cai_totalsize; /* #entries for TLB, bytes for cache */ | | 10 | u_int cai_totalsize; /* #entries for TLB, bytes for cache */ |
11 | u_int cai_linesize; /* or page size for TLB */ | | 11 | u_int cai_linesize; /* or page size for TLB */ |
12 | #ifndef _KERNEL | | 12 | #ifndef _KERNEL |
13 | const char *cai_string; | | 13 | const char *cai_string; |
14 | #endif | | 14 | #endif |
| @@ -20,28 +20,30 @@ struct x86_cache_info { | | | @@ -20,28 +20,30 @@ struct x86_cache_info { |
20 | #define CAI_DTLB2 3 /* Data TLB (2/4M pages) */ | | 20 | #define CAI_DTLB2 3 /* Data TLB (2/4M pages) */ |
21 | #define CAI_ICACHE 4 /* Instruction cache */ | | 21 | #define CAI_ICACHE 4 /* Instruction cache */ |
22 | #define CAI_DCACHE 5 /* Data cache */ | | 22 | #define CAI_DCACHE 5 /* Data cache */ |
23 | #define CAI_L2CACHE 6 /* Level 2 cache */ | | 23 | #define CAI_L2CACHE 6 /* Level 2 cache */ |
24 | #define CAI_L3CACHE 7 /* Level 3 cache */ | | 24 | #define CAI_L3CACHE 7 /* Level 3 cache */ |
25 | #define CAI_L1_1GBITLB 8 /* L1 1GB Page instruction TLB */ | | 25 | #define CAI_L1_1GBITLB 8 /* L1 1GB Page instruction TLB */ |
26 | #define CAI_L1_1GBDTLB 9 /* L1 1GB Page data TLB */ | | 26 | #define CAI_L1_1GBDTLB 9 /* L1 1GB Page data TLB */ |
27 | #define CAI_L2_1GBITLB 10 /* L2 1GB Page instruction TLB */ | | 27 | #define CAI_L2_1GBITLB 10 /* L2 1GB Page instruction TLB */ |
28 | #define CAI_L2_1GBDTLB 11 /* L2 1GB Page data TLB */ | | 28 | #define CAI_L2_1GBDTLB 11 /* L2 1GB Page data TLB */ |
29 | #define CAI_L2_ITLB 12 /* L2 Instruction TLB (4K pages) */ | | 29 | #define CAI_L2_ITLB 12 /* L2 Instruction TLB (4K pages) */ |
30 | #define CAI_L2_ITLB2 13 /* L2 Instruction TLB (2/4M pages) */ | | 30 | #define CAI_L2_ITLB2 13 /* L2 Instruction TLB (2/4M pages) */ |
31 | #define CAI_L2_DTLB 14 /* L2 Data TLB (4K pages) */ | | 31 | #define CAI_L2_DTLB 14 /* L2 Data TLB (4K pages) */ |
32 | #define CAI_L2_DTLB2 15 /* L2 Data TLB (2/4M pages) */ | | 32 | #define CAI_L2_DTLB2 15 /* L2 Data TLB (2/4M pages) */ |
| | | 33 | #define CAI_L2_STLB 16 /* Shared L2 TLB (4K pages) */ |
| | | 34 | #define CAI_L2_STLB2 17 /* Shared L2 TLB (4K/2M pages) */ |
33 | | | 35 | |
34 | #define CAI_COUNT 16 | | 36 | #define CAI_COUNT 18 |
35 | | | 37 | |
36 | /* | | 38 | /* |
37 | * AMD Cache Info: | | 39 | * AMD Cache Info: |
38 | * | | 40 | * |
39 | * Barcelona, Phenom: | | 41 | * Barcelona, Phenom: |
40 | * | | 42 | * |
41 | * Function 8000.0005 L1 TLB/Cache Information | | 43 | * Function 8000.0005 L1 TLB/Cache Information |
42 | * EAX -- L1 TLB 2/4MB pages | | 44 | * EAX -- L1 TLB 2/4MB pages |
43 | * EBX -- L1 TLB 4K pages | | 45 | * EBX -- L1 TLB 4K pages |
44 | * ECX -- L1 D-cache | | 46 | * ECX -- L1 D-cache |
45 | * EDX -- L1 I-cache | | 47 | * EDX -- L1 I-cache |
46 | * | | 48 | * |
47 | * Function 8000.0006 L2 TLB/Cache Information | | 49 | * Function 8000.0006 L2 TLB/Cache Information |
| @@ -199,106 +201,119 @@ struct x86_cache_info { | | | @@ -199,106 +201,119 @@ struct x86_cache_info { |
199 | | | 201 | |
200 | #ifdef _KERNEL | | 202 | #ifdef _KERNEL |
201 | #define __CI_TBL(a,b,c,d,e,f) { a, b, c, d, e } | | 203 | #define __CI_TBL(a,b,c,d,e,f) { a, b, c, d, e } |
202 | #else | | 204 | #else |
203 | #define __CI_TBL(a,b,c,d,e,f) { a, b, c, d, e, f } | | 205 | #define __CI_TBL(a,b,c,d,e,f) { a, b, c, d, e, f } |
204 | #endif | | 206 | #endif |
205 | | | 207 | |
206 | /* | | 208 | /* |
207 | * XXX Currently organized mostly by cache type, but would be | | 209 | * XXX Currently organized mostly by cache type, but would be |
208 | * XXX easier to maintain if it were in descriptor type order. | | 210 | * XXX easier to maintain if it were in descriptor type order. |
209 | */ | | 211 | */ |
210 | #define INTEL_CACHE_INFO { \ | | 212 | #define INTEL_CACHE_INFO { \ |
211 | __CI_TBL(CAI_ITLB, 0x01, 4, 32, 4 * 1024, NULL), \ | | 213 | __CI_TBL(CAI_ITLB, 0x01, 4, 32, 4 * 1024, NULL), \ |
212 | __CI_TBL(CAI_ITLB, 0xb0, 4,128, 4 * 1024, NULL), \ | | | |
213 | __CI_TBL(CAI_ITLB2, 0x02, 0xff, 2, 4 * 1024 * 1024, NULL), \ | | 214 | __CI_TBL(CAI_ITLB2, 0x02, 0xff, 2, 4 * 1024 * 1024, NULL), \ |
214 | __CI_TBL(CAI_DTLB, 0x03, 4, 64, 4 * 1024, NULL), \ | | 215 | __CI_TBL(CAI_DTLB, 0x03, 4, 64, 4 * 1024, NULL), \ |
215 | __CI_TBL(CAI_DTLB, 0xb3, 4,128, 4 * 1024, NULL), \ | | | |
216 | __CI_TBL(CAI_DTLB, 0xb4, 4,256, 4 * 1024, NULL), \ | | | |
217 | __CI_TBL(CAI_DTLB2, 0x04, 4, 8, 4 * 1024 * 1024, NULL), \ | | 216 | __CI_TBL(CAI_DTLB2, 0x04, 4, 8, 4 * 1024 * 1024, NULL), \ |
218 | __CI_TBL(CAI_DTLB2, 0x05, 4, 32, 4 * 1024 * 1024, NULL), \ | | 217 | __CI_TBL(CAI_DTLB2, 0x05, 4, 32, 4 * 1024 * 1024, NULL), \ |
| | | 218 | __CI_TBL(CAI_ITLB2, 0x0b, 4, 4, 4 * 1024 * 1024, NULL), \ |
| | | 219 | __CI_TBL(CAI_ITLB, 0x4f, 0xff, 32, 4 * 1024, NULL), \ |
219 | __CI_TBL(CAI_ITLB, 0x50, 0xff, 64, 4 * 1024, "4K/4M: 64 entries"), \ | | 220 | __CI_TBL(CAI_ITLB, 0x50, 0xff, 64, 4 * 1024, "4K/4M: 64 entries"), \ |
220 | __CI_TBL(CAI_ITLB, 0x51, 0xff, 64, 4 * 1024, "4K/4M: 128 entries"),\ | | 221 | __CI_TBL(CAI_ITLB, 0x51, 0xff, 64, 4 * 1024, "4K/4M: 128 entries"),\ |
221 | __CI_TBL(CAI_ITLB, 0x52, 0xff, 64, 4 * 1024, "4K/4M: 256 entries"),\ | | 222 | __CI_TBL(CAI_ITLB, 0x52, 0xff, 64, 4 * 1024, "4K/4M: 256 entries"),\ |
222 | __CI_TBL(CAI_ITLB, 0x55, 0xff, 64, 4 * 1024, "2M/4M: 7 entries"), \ | | 223 | __CI_TBL(CAI_ITLB, 0x55, 0xff, 64, 4 * 1024, "2M/4M: 7 entries"), \ |
223 | __CI_TBL(CAI_DTLB2, 0x56, 4, 16, 4 * 1024 * 1024, NULL), \ | | 224 | __CI_TBL(CAI_DTLB2, 0x56, 4, 16, 4 * 1024 * 1024, NULL), \ |
224 | __CI_TBL(CAI_DTLB2, 0x57, 4, 16, 4 * 1024, NULL), \ | | 225 | __CI_TBL(CAI_DTLB2, 0x57, 4, 16, 4 * 1024, NULL), \ |
225 | __CI_TBL(CAI_DTLB2, 0x59, 0xff, 16, 4 * 1024, NULL), \ | | 226 | __CI_TBL(CAI_DTLB2, 0x59, 0xff, 16, 4 * 1024, NULL), \ |
226 | __CI_TBL(CAI_DTLB, 0x5a, 0xff, 64, 4 * 1024, "2M/4M: 32 entries (L0)"), \ | | 227 | __CI_TBL(CAI_DTLB, 0x5a, 0xff, 64, 4 * 1024, "2M/4M: 32 entries (L0)"), \ |
227 | __CI_TBL(CAI_DTLB, 0x5b, 0xff, 64, 4 * 1024, "4K/4M: 64 entries"), \ | | 228 | __CI_TBL(CAI_DTLB, 0x5b, 0xff, 64, 4 * 1024, "4K/4M: 64 entries"), \ |
228 | __CI_TBL(CAI_DTLB, 0x5c, 0xff, 64, 4 * 1024, "4K/4M: 128 entries"),\ | | 229 | __CI_TBL(CAI_DTLB, 0x5c, 0xff, 64, 4 * 1024, "4K/4M: 128 entries"),\ |
229 | __CI_TBL(CAI_DTLB, 0x5d, 0xff, 64, 4 * 1024, "4K/4M: 256 entries"),\ | | 230 | __CI_TBL(CAI_DTLB, 0x5d, 0xff, 64, 4 * 1024, "4K/4M: 256 entries"),\ |
| | | 231 | __CI_TBL(CAI_ITLB, 0x61, 0xff, 48, 4 * 1024, NULL), \ |
| | | 232 | __CI_TBL(CAI_L1_1GBDTLB,0x63, 4, 4,1024*1024 * 1024, NULL), \ |
| | | 233 | __CI_TBL(CAI_ITLB2, 0x76, 0xff, 8, 4 * 1024 * 1024, "2M/4M: 8 entries"), \ |
| | | 234 | __CI_TBL(CAI_ITLB, 0xb0, 4,128, 4 * 1024, NULL), \ |
230 | __CI_TBL(CAI_ITLB, 0xb1, 4, 64, 0, "8 2M/4 4M entries"), \ | | 235 | __CI_TBL(CAI_ITLB, 0xb1, 4, 64, 0, "8 2M/4 4M entries"), \ |
231 | __CI_TBL(CAI_ITLB, 0xb2, 4, 64, 4 * 1024, NULL), \ | | 236 | __CI_TBL(CAI_ITLB, 0xb2, 4, 64, 4 * 1024, NULL), \ |
| | | 237 | __CI_TBL(CAI_DTLB, 0xb3, 4,128, 4 * 1024, NULL), \ |
| | | 238 | __CI_TBL(CAI_DTLB, 0xb4, 4,256, 4 * 1024, NULL), \ |
| | | 239 | __CI_TBL(CAI_ITLB, 0xb5, 8, 64, 4 * 1024, NULL), \ |
| | | 240 | __CI_TBL(CAI_ITLB, 0xb6, 8,128, 4 * 1024, NULL), \ |
| | | 241 | __CI_TBL(CAI_DTLB, 0xba, 4, 64, 4 * 1024, NULL), \ |
| | | 242 | __CI_TBL(CAI_DTLB, 0xc0, 4, 8, 4 * 1024, "4K/4M: 8 entries"), \ |
| | | 243 | __CI_TBL(CAI_L2_STLB2, 0xc1, 8,1024, 4 * 1024, "4K/2M: 1024 entries"), \ |
| | | 244 | __CI_TBL(CAI_DTLB, 0xc2, 4, 16, 4 * 1024, "2M/4M: 16 entries"), \ |
| | | 245 | __CI_TBL(CAI_L2_STLB, 0xca, 4,512, 4 * 1024, "4K/4M: 512 entries"), \ |
232 | __CI_TBL(CAI_ICACHE, 0x06, 4, 8 * 1024, 32, NULL), \ | | 246 | __CI_TBL(CAI_ICACHE, 0x06, 4, 8 * 1024, 32, NULL), \ |
233 | __CI_TBL(CAI_ICACHE, 0x08, 4, 16 * 1024, 32, NULL), \ | | 247 | __CI_TBL(CAI_ICACHE, 0x08, 4, 16 * 1024, 32, NULL), \ |
234 | __CI_TBL(CAI_ICACHE, 0x09, 4, 32 * 1024, 64, NULL), \ | | 248 | __CI_TBL(CAI_ICACHE, 0x09, 4, 32 * 1024, 64, NULL), \ |
235 | __CI_TBL(CAI_ICACHE, 0x30, 8, 32 * 1024, 64, NULL), \ | | | |
236 | __CI_TBL(CAI_DCACHE, 0x0a, 2, 8 * 1024, 32, NULL), \ | | 249 | __CI_TBL(CAI_DCACHE, 0x0a, 2, 8 * 1024, 32, NULL), \ |
237 | __CI_TBL(CAI_DCACHE, 0x0c, 4, 16 * 1024, 32, NULL), \ | | 250 | __CI_TBL(CAI_DCACHE, 0x0c, 4, 16 * 1024, 32, NULL), \ |
238 | __CI_TBL(CAI_DCACHE, 0x0d, 4, 16 * 1024, 64, NULL), \ | | 251 | __CI_TBL(CAI_DCACHE, 0x0d, 4, 16 * 1024, 64, NULL), \ |
239 | __CI_TBL(CAI_DCACHE, 0x0e, 6, 24 * 1024, 64, NULL), \ | | 252 | __CI_TBL(CAI_DCACHE, 0x0e, 6, 24 * 1024, 64, NULL), \ |
240 | __CI_TBL(CAI_L2CACHE, 0x21, 8, 256 * 1024, 64, NULL), /* L2 (MLC) */ \ | | 253 | __CI_TBL(CAI_L2CACHE, 0x21, 8, 256 * 1024, 64, NULL), /* L2 (MLC) */ \ |
| | | 254 | __CI_TBL(CAI_L3CACHE, 0x22, 0xff, 512 * 1024, 64, "sectored, 4-way "), \ |
| | | 255 | __CI_TBL(CAI_L3CACHE, 0x23, 0xff, 1 * 1024 * 1024, 64, "sectored, 8-way "), \ |
| | | 256 | __CI_TBL(CAI_L2CACHE, 0x24, 16, 1 * 1024 * 1024, 64, NULL), \ |
| | | 257 | __CI_TBL(CAI_L3CACHE, 0x25, 0xff, 2 * 1024 * 1024, 64, "sectored, 8-way "), \ |
| | | 258 | __CI_TBL(CAI_L3CACHE, 0x29, 0xff, 4 * 1024 * 1024, 64, "sectored, 8-way "), \ |
| | | 259 | __CI_TBL(CAI_DCACHE, 0x2c, 8, 32 * 1024, 64, NULL), \ |
| | | 260 | __CI_TBL(CAI_ICACHE, 0x30, 8, 32 * 1024, 64, NULL), \ |
241 | __CI_TBL(CAI_L2CACHE, 0x39, 4, 128 * 1024, 64, NULL), \ | | 261 | __CI_TBL(CAI_L2CACHE, 0x39, 4, 128 * 1024, 64, NULL), \ |
242 | __CI_TBL(CAI_L2CACHE, 0x3a, 6, 192 * 1024, 64, NULL), \ | | 262 | __CI_TBL(CAI_L2CACHE, 0x3a, 6, 192 * 1024, 64, NULL), \ |
243 | __CI_TBL(CAI_L2CACHE, 0x3b, 2, 128 * 1024, 64, NULL), \ | | 263 | __CI_TBL(CAI_L2CACHE, 0x3b, 2, 128 * 1024, 64, NULL), \ |
244 | __CI_TBL(CAI_L2CACHE, 0x3c, 4, 256 * 1024, 64, NULL), \ | | 264 | __CI_TBL(CAI_L2CACHE, 0x3c, 4, 256 * 1024, 64, NULL), \ |
245 | __CI_TBL(CAI_L2CACHE, 0x3d, 6, 384 * 1024, 64, NULL), \ | | 265 | __CI_TBL(CAI_L2CACHE, 0x3d, 6, 384 * 1024, 64, NULL), \ |
246 | __CI_TBL(CAI_L2CACHE, 0x3e, 4, 512 * 1024, 64, NULL), \ | | 266 | __CI_TBL(CAI_L2CACHE, 0x3e, 4, 512 * 1024, 64, NULL), \ |
247 | __CI_TBL(CAI_L2CACHE, 0x40, 0, 0, 0, "not present"), \ | | 267 | __CI_TBL(CAI_L2CACHE, 0x40, 0, 0, 0, "not present"), \ |
248 | __CI_TBL(CAI_L2CACHE, 0x41, 4, 128 * 1024, 32, NULL), \ | | 268 | __CI_TBL(CAI_L2CACHE, 0x41, 4, 128 * 1024, 32, NULL), \ |
249 | __CI_TBL(CAI_L2CACHE, 0x42, 4, 256 * 1024, 32, NULL), \ | | 269 | __CI_TBL(CAI_L2CACHE, 0x42, 4, 256 * 1024, 32, NULL), \ |
250 | __CI_TBL(CAI_L2CACHE, 0x43, 4, 512 * 1024, 32, NULL), \ | | 270 | __CI_TBL(CAI_L2CACHE, 0x43, 4, 512 * 1024, 32, NULL), \ |
251 | __CI_TBL(CAI_L2CACHE, 0x44, 4, 1 * 1024 * 1024, 32, NULL), \ | | 271 | __CI_TBL(CAI_L2CACHE, 0x44, 4, 1 * 1024 * 1024, 32, NULL), \ |
252 | __CI_TBL(CAI_L2CACHE, 0x45, 4, 2 * 1024 * 1024, 32, NULL), \ | | 272 | __CI_TBL(CAI_L2CACHE, 0x45, 4, 2 * 1024 * 1024, 32, NULL), \ |
| | | 273 | __CI_TBL(CAI_L3CACHE, 0x46, 4, 4 * 1024 * 1024, 64, NULL), \ |
| | | 274 | __CI_TBL(CAI_L3CACHE, 0x47, 8, 8 * 1024 * 1024, 64, NULL), \ |
253 | __CI_TBL(CAI_L2CACHE, 0x48, 12, 3 * 1024 * 1024, 64, NULL), \ | | 275 | __CI_TBL(CAI_L2CACHE, 0x48, 12, 3 * 1024 * 1024, 64, NULL), \ |
254 | \ | | 276 | \ |
255 | /* 0x49 Is L2 on Xeon MP (Family 0f, Model 06), L3 otherwise */ \ | | 277 | /* 0x49 Is L2 on Xeon MP (Family 0f, Model 06), L3 otherwise */ \ |
256 | __CI_TBL(CAI_L2CACHE, 0x49, 16, 4 * 1024 * 1024, 64, NULL), \ | | 278 | __CI_TBL(CAI_L2CACHE, 0x49, 16, 4 * 1024 * 1024, 64, NULL), \ |
| | | 279 | __CI_TBL(CAI_L3CACHE, 0x49, 16, 4 * 1024 * 1024, 64, NULL), \ |
| | | 280 | __CI_TBL(CAI_L3CACHE, 0x4a, 12, 6 * 1024 * 1024, 64, NULL), \ |
| | | 281 | __CI_TBL(CAI_L3CACHE, 0x4b, 16, 8 * 1024 * 1024, 64, NULL), \ |
| | | 282 | __CI_TBL(CAI_L3CACHE, 0x4c, 12,12 * 1024 * 1024, 64, NULL), \ |
| | | 283 | __CI_TBL(CAI_L3CACHE, 0x4d, 16,16 * 1024 * 1024, 64, NULL), \ |
257 | __CI_TBL(CAI_L2CACHE, 0x4e, 24, 6 * 1024 * 1024, 64, NULL), \ | | 284 | __CI_TBL(CAI_L2CACHE, 0x4e, 24, 6 * 1024 * 1024, 64, NULL), \ |
258 | __CI_TBL(CAI_DCACHE, 0x60, 8, 16 * 1024, 64, NULL), \ | | 285 | __CI_TBL(CAI_DCACHE, 0x60, 8, 16 * 1024, 64, NULL), \ |
259 | __CI_TBL(CAI_DCACHE, 0x66, 4, 8 * 1024, 64, NULL), \ | | 286 | __CI_TBL(CAI_DCACHE, 0x66, 4, 8 * 1024, 64, NULL), \ |
260 | __CI_TBL(CAI_DCACHE, 0x67, 4, 16 * 1024, 64, NULL), \ | | 287 | __CI_TBL(CAI_DCACHE, 0x67, 4, 16 * 1024, 64, NULL), \ |
261 | __CI_TBL(CAI_DCACHE, 0x2c, 8, 32 * 1024, 64, NULL), \ | | | |
262 | __CI_TBL(CAI_DCACHE, 0x68, 4, 32 * 1024, 64, NULL), \ | | 288 | __CI_TBL(CAI_DCACHE, 0x68, 4, 32 * 1024, 64, NULL), \ |
263 | __CI_TBL(CAI_ICACHE, 0x70, 8, 12 * 1024, 64, "12K uOp cache"), \ | | 289 | __CI_TBL(CAI_ICACHE, 0x70, 8, 12 * 1024, 64, "12K uOp cache"), \ |
264 | __CI_TBL(CAI_ICACHE, 0x71, 8, 16 * 1024, 64, "16K uOp cache"), \ | | 290 | __CI_TBL(CAI_ICACHE, 0x71, 8, 16 * 1024, 64, "16K uOp cache"), \ |
265 | __CI_TBL(CAI_ICACHE, 0x72, 8, 32 * 1024, 64, "32K uOp cache"), \ | | 291 | __CI_TBL(CAI_ICACHE, 0x72, 8, 32 * 1024, 64, "32K uOp cache"), \ |
266 | __CI_TBL(CAI_ICACHE, 0x73, 8, 64 * 1024, 64, "64K uOp cache"), \ | | 292 | __CI_TBL(CAI_ICACHE, 0x73, 8, 64 * 1024, 64, "64K uOp cache"), \ |
267 | __CI_TBL(CAI_L2CACHE, 0x78, 4, 1 * 1024 * 1024, 64, NULL), \ | | 293 | __CI_TBL(CAI_L2CACHE, 0x78, 4, 1 * 1024 * 1024, 64, NULL), \ |
268 | __CI_TBL(CAI_L2CACHE, 0x79, 8, 128 * 1024, 64, NULL), \ | | 294 | __CI_TBL(CAI_L2CACHE, 0x79, 8, 128 * 1024, 64, NULL), \ |
269 | __CI_TBL(CAI_L2CACHE, 0x7a, 8, 256 * 1024, 64, NULL), \ | | 295 | __CI_TBL(CAI_L2CACHE, 0x7a, 8, 256 * 1024, 64, NULL), \ |
270 | __CI_TBL(CAI_L2CACHE, 0x7b, 8, 512 * 1024, 64, NULL), \ | | 296 | __CI_TBL(CAI_L2CACHE, 0x7b, 8, 512 * 1024, 64, NULL), \ |
271 | __CI_TBL(CAI_L2CACHE, 0x7c, 8, 1 * 1024 * 1024, 64, NULL), \ | | 297 | __CI_TBL(CAI_L2CACHE, 0x7c, 8, 1 * 1024 * 1024, 64, NULL), \ |
272 | __CI_TBL(CAI_L2CACHE, 0x7d, 8, 2 * 1024 * 1024, 64, NULL), \ | | 298 | __CI_TBL(CAI_L2CACHE, 0x7d, 8, 2 * 1024 * 1024, 64, NULL), \ |
273 | __CI_TBL(CAI_L2CACHE, 0x7f, 2, 512 * 1024, 64, NULL), \ | | 299 | __CI_TBL(CAI_L2CACHE, 0x7f, 2, 512 * 1024, 64, NULL), \ |
274 | __CI_TBL(CAI_L2CACHE, 0x80, 8, 512 * 1024, 64, NULL), \ | | 300 | __CI_TBL(CAI_L2CACHE, 0x80, 8, 512 * 1024, 64, NULL), \ |
275 | __CI_TBL(CAI_L2CACHE, 0x82, 8, 256 * 1024, 32, NULL), \ | | 301 | __CI_TBL(CAI_L2CACHE, 0x82, 8, 256 * 1024, 32, NULL), \ |
276 | __CI_TBL(CAI_L2CACHE, 0x83, 8, 512 * 1024, 32, NULL), \ | | 302 | __CI_TBL(CAI_L2CACHE, 0x83, 8, 512 * 1024, 32, NULL), \ |
277 | __CI_TBL(CAI_L2CACHE, 0x84, 8, 1 * 1024 * 1024, 32, NULL), \ | | 303 | __CI_TBL(CAI_L2CACHE, 0x84, 8, 1 * 1024 * 1024, 32, NULL), \ |
278 | __CI_TBL(CAI_L2CACHE, 0x85, 8, 2 * 1024 * 1024, 32, NULL), \ | | 304 | __CI_TBL(CAI_L2CACHE, 0x85, 8, 2 * 1024 * 1024, 32, NULL), \ |
279 | __CI_TBL(CAI_L2CACHE, 0x86, 4, 512 * 1024, 64, NULL), \ | | 305 | __CI_TBL(CAI_L2CACHE, 0x86, 4, 512 * 1024, 64, NULL), \ |
280 | __CI_TBL(CAI_L2CACHE, 0x87, 8, 1 * 1024 * 1024, 64, NULL), \ | | 306 | __CI_TBL(CAI_L2CACHE, 0x87, 8, 1 * 1024 * 1024, 64, NULL), \ |
281 | __CI_TBL(CAI_L3CACHE, 0x22, 0xff, 512 * 1024, 64, "sectored, 4-way "), \ | | | |
282 | __CI_TBL(CAI_L3CACHE, 0x23, 0xff, 1 * 1024 * 1024, 64, "sectored, 8-way "), \ | | | |
283 | __CI_TBL(CAI_L3CACHE, 0x25, 0xff, 2 * 1024 * 1024, 64, "sectored, 8-way "), \ | | | |
284 | __CI_TBL(CAI_L3CACHE, 0x29, 0xff, 4 * 1024 * 1024, 64, "sectored, 8-way "), \ | | | |
285 | __CI_TBL(CAI_L3CACHE, 0x46, 4, 4 * 1024 * 1024, 64, NULL), \ | | | |
286 | __CI_TBL(CAI_L3CACHE, 0x47, 8, 8 * 1024 * 1024, 64, NULL), \ | | | |
287 | __CI_TBL(CAI_L3CACHE, 0x49, 16, 4 * 1024 * 1024, 64, NULL), \ | | | |
288 | __CI_TBL(CAI_L3CACHE, 0x4a, 12, 6 * 1024 * 1024, 64, NULL), \ | | | |
289 | __CI_TBL(CAI_L3CACHE, 0x4b, 16, 8 * 1024 * 1024, 64, NULL), \ | | | |
290 | __CI_TBL(CAI_L3CACHE, 0x4c, 12,12 * 1024 * 1024, 64, NULL), \ | | | |
291 | __CI_TBL(CAI_L3CACHE, 0x4d, 16,16 * 1024 * 1024, 64, NULL), \ | | | |
292 | __CI_TBL(CAI_L3CACHE, 0xd0, 4, 512 * 1024, 64, NULL), \ | | 307 | __CI_TBL(CAI_L3CACHE, 0xd0, 4, 512 * 1024, 64, NULL), \ |
293 | __CI_TBL(CAI_L3CACHE, 0xd1, 4, 1 * 1024 * 1024, 64, NULL), \ | | 308 | __CI_TBL(CAI_L3CACHE, 0xd1, 4, 1 * 1024 * 1024, 64, NULL), \ |
294 | __CI_TBL(CAI_L3CACHE, 0xd2, 4, 2 * 1024 * 1024, 64, NULL), \ | | 309 | __CI_TBL(CAI_L3CACHE, 0xd2, 4, 2 * 1024 * 1024, 64, NULL), \ |
295 | __CI_TBL(CAI_L3CACHE, 0xd6, 8, 1 * 1024 * 1024, 64, NULL), \ | | 310 | __CI_TBL(CAI_L3CACHE, 0xd6, 8, 1 * 1024 * 1024, 64, NULL), \ |
296 | __CI_TBL(CAI_L3CACHE, 0xd7, 8, 2 * 1024 * 1024, 64, NULL), \ | | 311 | __CI_TBL(CAI_L3CACHE, 0xd7, 8, 2 * 1024 * 1024, 64, NULL), \ |
297 | __CI_TBL(CAI_L3CACHE, 0xd8, 8, 4 * 1024 * 1024, 64, NULL), \ | | 312 | __CI_TBL(CAI_L3CACHE, 0xd8, 8, 4 * 1024 * 1024, 64, NULL), \ |
298 | __CI_TBL(CAI_L3CACHE, 0xdc, 12, 3 * 512 * 1024, 64, NULL), \ | | 313 | __CI_TBL(CAI_L3CACHE, 0xdc, 12, 3 * 512 * 1024, 64, NULL), \ |
299 | __CI_TBL(CAI_L3CACHE, 0xdd, 12, 3 * 1024 * 1024, 64, NULL), \ | | 314 | __CI_TBL(CAI_L3CACHE, 0xdd, 12, 3 * 1024 * 1024, 64, NULL), \ |
300 | __CI_TBL(CAI_L3CACHE, 0xde, 12, 6 * 1024 * 1024, 64, NULL), \ | | 315 | __CI_TBL(CAI_L3CACHE, 0xde, 12, 6 * 1024 * 1024, 64, NULL), \ |
301 | __CI_TBL(CAI_L3CACHE, 0xe2, 16, 2 * 1024 * 1024, 64, NULL), \ | | 316 | __CI_TBL(CAI_L3CACHE, 0xe2, 16, 2 * 1024 * 1024, 64, NULL), \ |
302 | __CI_TBL(CAI_L3CACHE, 0xe3, 16, 4 * 1024 * 1024, 64, NULL), \ | | 317 | __CI_TBL(CAI_L3CACHE, 0xe3, 16, 4 * 1024 * 1024, 64, NULL), \ |
303 | __CI_TBL(CAI_L3CACHE, 0xe4, 16, 8 * 1024 * 1024, 64, NULL), \ | | 318 | __CI_TBL(CAI_L3CACHE, 0xe4, 16, 8 * 1024 * 1024, 64, NULL), \ |
304 | __CI_TBL(CAI_L3CACHE, 0xea, 24,12 * 1024 * 1024, 64, NULL), \ | | 319 | __CI_TBL(CAI_L3CACHE, 0xea, 24,12 * 1024 * 1024, 64, NULL), \ |