Re: 2.6.14: CR4 not needed to be inspected on the 486 anymore?

From: Zachary Amsden
Date: Thu Nov 03 2005 - 18:52:05 EST


Maciej W. Rozycki wrote:

On Thu, 3 Nov 2005, Zachary Amsden wrote:



disables code to retrieve the actual value of CR4 on 486-class systems
(which may or may not implement the register, depending on the exact CPU
type and stepping). This seems suspicious to me, but I have to admit I
haven't followed the discussion on the issue if there was any.




This was deliberate. CR4 doesn't exist on standard 486 class systems, and I'm not sure how you could make use of it anyway, since the features used by Linux - machine check, page size extensions, time stamp counter, global pages, are only available in Pentium and later class systems, and identified by CPUID, which also doesn't exist on 486.



Later Intel i486DX2 and i486DX4 processors (the so called "write-back
enhanced" ones) did support page size extensions (4MB pages) and as far as
I know we do use them on such chips. They did implement the CPUID
instruction, too (as well as late i486SX and i486SX2 chips that did not
support PSE). That's a counter-example that proves the actual value of
CR4 is going to be useful on these systems. These chips also implemented
the VME feature (the PVI and VME bits of CR4), but they may not be
terribly useful for us.

I used quite a few of such chips myself in mid 90s -- you may search
archives of various mailing lists for examples of "cpuinfo" dumps for such
processors.


Finally got the relevant information from Intel. The embedded i486DX-2/4 series does support CPUID, and PSE, and thus CR4. Ugh. Also just found this guy:

$ cat /proc/cpuinfo processor : 0
vendor_id : GenuineIntel
cpu family : 4
model : 7
model name : 486 DX/2-WB
stepping : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme pse
bogomips : 32.25


He won't like me too much. I'll write up a proper patch for this, a la mode de rdmsr_safe / wrmsr_safe. At least it's not a bug, just missing information.

Zach
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/