On Thu, 3 Nov 2005, Zachary Amsden wrote:
disables code to retrieve the actual value of CR4 on 486-class systemsThis 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.
(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.
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.