my own tree have
#if CacheSize < 0x8000 /* enable caching for 16K/8K/4K using fixed mtrr */ movl $0x269, %ecx /* fix4k_cc000*/ #if CacheSize == 0x4000 movl $0x06060606, %edx /* WB IO type */ #endif #if CacheSize == 0x2000 movl $0x06060000, %edx /* WB IO type */ #endif #if CacheSize == 0x1000 movl $0x06000000, %edx /* WB IO type */ #endif xorl %eax, %eax wrmsr #endif
maybe i didn't post sth...
normally we can use 4k only at first.
run_time decide is not good. for example REV E, you could use 64k. for for REV F you can only use 48K.
Family 10h need more tricks.
YH