Re: New Cyrix patch for 2.0.33 (correction)

Rafael R. Reilova (rreilova@ececs.uc.edu)
Mon, 25 May 1998 22:29:48 -0500 (EST)


Hi,

Regarding the CPU detection algorithm, I made a slight mistake when
transcribing the algorithm part (It goes into an infinite loop).
Corrections below (and sorry for the extra post).

> #OK, I basically followed the algorithm that you outlined in another
> #email:
> #
> #if has cpuid
> # do cpuid
> #else
> # if cyrix 6x86(L)
> # turn on cpuid/slop
> # else
> # do the 486/386 probe
> #endif
>
> Which is wrong. At least now, thanks to Intel's "ingenuity." *snort*
> Apparently, the BX chipset was DESIGNED to behave like that, to inform the
> computers that it's a "Genuine Intel" chipset. As if I gave a flying fsck;
> the box I type this on is a VIA VXpro+, and my real workstation is
> KR-859CF based. I don't want Intel. Anyways, back on topic. :)

The correct algorithm, which is implemented in the posted patch is:

1. if has cpuid
do cpuid
else
probe 486/386
if !386 && flags are preserved across divison
if 6x86L then ("dangerous" 0x22,0x23 port stuff)
enable cpuid (more 0x22,0x23)
goto 1
end if
end if
end if
2. if vendor == Cyrix
do cyrix DEVID detection stuff (more of 0x22,0x23)
end if

This should be fine now, hopefully this will make it to the 2.1.X
at some point. Even though I say "dangerous", it isn't anymore.

Cheers,

--
Rafael

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu