In the cpu/x86/mtrr/mtrr.c
#warning "FIXME I do not properly handle address more than 36 physical address bits" #ifdef k8 # define ADDRESS_BITS 40 #else # define ADDRESS_BITS 36 #endif #define ADDRESS_BITS_HIGH (ADDRESS_BITS - 32) #define ADDRESS_MASK_HIGH ((1u << ADDRESS_BITS_HIGH) - 1)
It seems someone already remove k8 from Option.lb
Then ....
Regards
YH
-----Original Message----- From: YhLu Sent: Thursday, November 11, 2004 6:00 PM To: YhLu; ebiederman@lnxi.com; Ronald G. Minnich Cc: linuxbios@clustermatic.org Subject: RE: mtrr
On 2.4.22 it becomes to ~ # cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size=32768MB: write-back, count=1 reg01: base=0x80000000 (2048MB), size=16384MB: write-back, count=1 reg02: base=0xc0000000 (3072MB), size=4096MB: write-back, count=1
x 16
-----Original Message----- From: YhLu Sent: Thursday, November 11, 2004 5:24 PM To: ebiederman@lnxi.com; Ronald G. Minnich Cc: linuxbios@clustermatic.org Subject: mtrr
I just found the mtrr after booting is not right.
~ # cat /proc/mtrr reg00: base=0x00000000 ( 0MB), size=985088MB: write-back, count=1 reg01: base=0x80000000 (2048MB), size=984064MB: write-back, count=1 reg02: base=0xc0000000 (3072MB), size=983296MB: write-back, count=1
and it should be
reg00: base=0x00000000 ( 0MB), size=2048MB: write-back, count=1 reg01: base=0x80000000 (2048MB), size=1024MB: write-back, count=1 reg02: base=0xc0000000 (3072MB), size=256MB: write-back, count=1
and it is has 98340MB more = 0xf0 0000 0000.
Regards
YH _______________________________________________ Linuxbios mailing list Linuxbios@clustermatic.org http://www.clustermatic.org/mailman/listinfo/linuxbios
YhLu YhLu@tyan.com writes:
In the cpu/x86/mtrr/mtrr.c
#warning "FIXME I do not properly handle address more than 36 physical address bits" #ifdef k8 # define ADDRESS_BITS 40 #else # define ADDRESS_BITS 36 #endif #define ADDRESS_BITS_HIGH (ADDRESS_BITS - 32) #define ADDRESS_MASK_HIGH ((1u << ADDRESS_BITS_HIGH) - 1)
It seems someone already remove k8 from Option.lb
Then ....
Regards
Interesting. The mtrr's actually work and the kernel is confused.
However what we need to do is call the appropriate cpuid function to compute it or pass in the number of address bits. It should not be a compile time option, at least not in the generic code. What happens when we get can plug in cpus with different address bit limits.
Eric