#ifndef __LINUXBIOS_CPU_P6_MTRR_H #define __LINUXBIOS_CPU_P6_MTRR_H /* These are the region types */ #define MTRR_TYPE_UNCACHEABLE 0 #define MTRR_TYPE_WRCOMB 1 /*#define MTRR_TYPE_ 2*/ /*#define MTRR_TYPE_ 3*/ #define MTRR_TYPE_WRTHROUGH 4 #define MTRR_TYPE_WRPROT 5 #define MTRR_TYPE_WRBACK 6 #define MTRR_NUM_TYPES 7 #define MTRRcap_MSR 0x0fe #define MTRRdefType_MSR 0x2ff #define MTRRphysBase_MSR(reg) (0x200 + 2 * (reg)) #define MTRRphysMask_MSR(reg) (0x200 + 2 * (reg) + 1) #define NUM_FIXED_RANGES 88 #define MTRRfix64K_00000_MSR 0x250 #define MTRRfix16K_80000_MSR 0x258 #define MTRRfix16K_A0000_MSR 0x259 #define MTRRfix4K_C0000_MSR 0x268 #define MTRRfix4K_C8000_MSR 0x269 #define MTRRfix4K_D0000_MSR 0x26a #define MTRRfix4K_D8000_MSR 0x26b #define MTRRfix4K_E0000_MSR 0x26c #define MTRRfix4K_E8000_MSR 0x26d #define MTRRfix4K_F0000_MSR 0x26e #define MTRRfix4K_F8000_MSR 0x26f #if !defined(ASSEMBLY) void set_var_mtrr(unsigned int reg, unsigned long base, unsigned long size, unsigned char type); void add_var_mtrr(unsigned long basek, unsigned long sizek, unsigned char type); #if defined(INTEL_PPRO_MTRR) struct mem_range; void setup_mtrrs(struct mem_range *mem); #endif #endif /* ASSEMBLY */ #endif /* __LINUXBIOS_CPU_P6_MTRR_H */