2846 static const char l3_cache_str[] = "l3-cache"; |
2846 static const char l3_cache_str[] = "l3-cache"; |
2847 static const char itlb4k_str[] = "itlb-4K"; |
2847 static const char itlb4k_str[] = "itlb-4K"; |
2848 static const char dtlb4k_str[] = "dtlb-4K"; |
2848 static const char dtlb4k_str[] = "dtlb-4K"; |
2849 static const char itlb4M_str[] = "itlb-4M"; |
2849 static const char itlb4M_str[] = "itlb-4M"; |
2850 static const char dtlb4M_str[] = "dtlb-4M"; |
2850 static const char dtlb4M_str[] = "dtlb-4M"; |
|
2851 static const char dtlb24_str[] = "dtlb0-2M-4M"; |
2851 static const char itlb424_str[] = "itlb-4K-2M-4M"; |
2852 static const char itlb424_str[] = "itlb-4K-2M-4M"; |
|
2853 static const char itlb24_str[] = "itlb-2M-4M"; |
2852 static const char dtlb44_str[] = "dtlb-4K-4M"; |
2854 static const char dtlb44_str[] = "dtlb-4K-4M"; |
2853 static const char sl1_dcache_str[] = "sectored-l1-dcache"; |
2855 static const char sl1_dcache_str[] = "sectored-l1-dcache"; |
2854 static const char sl2_cache_str[] = "sectored-l2-cache"; |
2856 static const char sl2_cache_str[] = "sectored-l2-cache"; |
2855 static const char itrace_str[] = "itrace-cache"; |
2857 static const char itrace_str[] = "itrace-cache"; |
2856 static const char sl3_cache_str[] = "sectored-l3-cache"; |
2858 static const char sl3_cache_str[] = "sectored-l3-cache"; |
|
2859 static const char sh_l2_tlb4k_str[] = "shared-l2-tlb-4k"; |
2857 |
2860 |
2858 static const struct cachetab { |
2861 static const struct cachetab { |
2859 uint8_t ct_code; |
2862 uint8_t ct_code; |
2860 uint8_t ct_assoc; |
2863 uint8_t ct_assoc; |
2861 uint16_t ct_line_size; |
2864 uint16_t ct_line_size; |
2862 size_t ct_size; |
2865 size_t ct_size; |
2863 const char *ct_label; |
2866 const char *ct_label; |
2864 } intel_ctab[] = { |
2867 } intel_ctab[] = { |
2865 /* maintain descending order! */ |
2868 /* maintain descending order! */ |
|
2869 { 0xe4, 16, 64, 8*1024*1024, l3_cache_str}, |
|
2870 { 0xe3, 16, 64, 4*1024*1024, l3_cache_str}, |
|
2871 { 0xe2, 16, 64, 2*1024*1024, l3_cache_str}, |
|
2872 { 0xde, 12, 64, 6*1024*1024, l3_cache_str}, |
|
2873 { 0xdd, 12, 64, 3*1024*1024, l3_cache_str}, |
|
2874 { 0xdc, 12, 64, ((1*1024*1024)+(512*1024)), l3_cache_str}, |
|
2875 { 0xd8, 8, 64, 4*1024*1024, l3_cache_str}, |
|
2876 { 0xd7, 8, 64, 2*1024*1024, l3_cache_str}, |
|
2877 { 0xd6, 8, 64, 1*1024*1024, l3_cache_str}, |
|
2878 { 0xd2, 4, 64, 2*1024*1024, l3_cache_str}, |
|
2879 { 0xd1, 4, 64, 1*1024*1024, l3_cache_str}, |
|
2880 { 0xd0, 4, 64, 512*1024, l3_cache_str}, |
|
2881 { 0xca, 4, 0, 512, sh_l2_tlb4k_str}, |
2866 { 0xb4, 4, 0, 256, dtlb4k_str }, |
2882 { 0xb4, 4, 0, 256, dtlb4k_str }, |
2867 { 0xb3, 4, 0, 128, dtlb4k_str }, |
2883 { 0xb3, 4, 0, 128, dtlb4k_str }, |
|
2884 { 0xb2, 4, 0, 64, itlb4k_str }, |
2868 { 0xb0, 4, 0, 128, itlb4k_str }, |
2885 { 0xb0, 4, 0, 128, itlb4k_str }, |
2869 { 0x87, 8, 64, 1024*1024, l2_cache_str}, |
2886 { 0x87, 8, 64, 1024*1024, l2_cache_str}, |
2870 { 0x86, 4, 64, 512*1024, l2_cache_str}, |
2887 { 0x86, 4, 64, 512*1024, l2_cache_str}, |
2871 { 0x85, 8, 32, 2*1024*1024, l2_cache_str}, |
2888 { 0x85, 8, 32, 2*1024*1024, l2_cache_str}, |
2872 { 0x84, 8, 32, 1024*1024, l2_cache_str}, |
2889 { 0x84, 8, 32, 1024*1024, l2_cache_str}, |
2888 { 0x66, 4, 64, 8*1024, sl1_dcache_str}, |
2905 { 0x66, 4, 64, 8*1024, sl1_dcache_str}, |
2889 { 0x60, 8, 64, 16*1024, sl1_dcache_str}, |
2906 { 0x60, 8, 64, 16*1024, sl1_dcache_str}, |
2890 { 0x5d, 0, 0, 256, dtlb44_str}, |
2907 { 0x5d, 0, 0, 256, dtlb44_str}, |
2891 { 0x5c, 0, 0, 128, dtlb44_str}, |
2908 { 0x5c, 0, 0, 128, dtlb44_str}, |
2892 { 0x5b, 0, 0, 64, dtlb44_str}, |
2909 { 0x5b, 0, 0, 64, dtlb44_str}, |
|
2910 { 0x5a, 4, 0, 32, dtlb24_str}, |
|
2911 { 0x55, 0, 0, 7, itlb24_str}, |
2893 { 0x52, 0, 0, 256, itlb424_str}, |
2912 { 0x52, 0, 0, 256, itlb424_str}, |
2894 { 0x51, 0, 0, 128, itlb424_str}, |
2913 { 0x51, 0, 0, 128, itlb424_str}, |
2895 { 0x50, 0, 0, 64, itlb424_str}, |
2914 { 0x50, 0, 0, 64, itlb424_str}, |
2896 { 0x4d, 16, 64, 16*1024*1024, l3_cache_str}, |
2915 { 0x4d, 16, 64, 16*1024*1024, l3_cache_str}, |
2897 { 0x4c, 12, 64, 12*1024*1024, l3_cache_str}, |
2916 { 0x4c, 12, 64, 12*1024*1024, l3_cache_str}, |
2915 { 0x2c, 8, 64, 32*1024, l1_dcache_str}, |
2934 { 0x2c, 8, 64, 32*1024, l1_dcache_str}, |
2916 { 0x29, 8, 64, 4096*1024, sl3_cache_str}, |
2935 { 0x29, 8, 64, 4096*1024, sl3_cache_str}, |
2917 { 0x25, 8, 64, 2048*1024, sl3_cache_str}, |
2936 { 0x25, 8, 64, 2048*1024, sl3_cache_str}, |
2918 { 0x23, 8, 64, 1024*1024, sl3_cache_str}, |
2937 { 0x23, 8, 64, 1024*1024, sl3_cache_str}, |
2919 { 0x22, 4, 64, 512*1024, sl3_cache_str}, |
2938 { 0x22, 4, 64, 512*1024, sl3_cache_str}, |
|
2939 { 0x0d, 4, 32, 16*1024, l1_dcache_str}, |
2920 { 0x0c, 4, 32, 16*1024, l1_dcache_str}, |
2940 { 0x0c, 4, 32, 16*1024, l1_dcache_str}, |
2921 { 0x0b, 4, 0, 4, itlb4M_str}, |
2941 { 0x0b, 4, 0, 4, itlb4M_str}, |
2922 { 0x0a, 2, 32, 8*1024, l1_dcache_str}, |
2942 { 0x0a, 2, 32, 8*1024, l1_dcache_str}, |
2923 { 0x08, 4, 32, 16*1024, l1_icache_str}, |
2943 { 0x08, 4, 32, 16*1024, l1_icache_str}, |
2924 { 0x06, 4, 32, 8*1024, l1_icache_str}, |
2944 { 0x06, 4, 32, 8*1024, l1_icache_str}, |