Re: another Cyrix/mtrr problem?

David Wragg
2001-03-14T22:58:35Z

rct@gherkin.sa.wlk.com (Bob_Tracy) writes:
> Unfortunately, when I execute
>
> echo "base=0xd8000000 size=0x100000 type=write-combining" >| /proc/mtrr
>
> I get a 2MB region instead of the 1MB region I expected...

Oops, it got broken by the MTRR >32-bit support in 2.4.0-testX. The
patch below should fix it.

Joerg, I think this might well fix your Cyrix mtrr problem also.

Let me know how it goes,
Dave Wragg

diff -uar linux-2.4.2/arch/i386/kernel/mtrr.c linux-2.4.2.cyrix/arch/i386/kernel/mtrr.c
--- linux-2.4.2/arch/i386/kernel/mtrr.c Thu Feb 22 15:24:53 2001
+++ linux-2.4.2.cyrix/arch/i386/kernel/mtrr.c Wed Mar 14 22:28:02 2001
@@ -538,7 +538,7 @@
* Note: shift==0xf means 4G, this is unsupported.
*/
if (shift)
- *size = (reg < 7 ? 0x1UL : 0x40UL) << shift;
+ *size = (reg < 7 ? 0x1UL : 0x40UL) << (shift - 1);
else
*size = 0;