Re: Cyrix bug: the (un)official solution from Cyrix

Linux Developer (kernel@chaos.pagannet.org)
Thu, 13 Nov 1997 16:43:30 -0500 (EST)


On Thu, 13 Nov 1997, Andre Derrick Balsa wrote:

> Meanwhile, I received an official answer from Cyrix. They sent me a
> 140-byte DOS utility, *without the source*. Yes, they followed Intel's
> diselegant example :-(

Well, what do you expect from Cyrix? ;P They're not too big on releasing
source, but at least they give you full CPU specs. ;)

> Of course I disassembled it. What this utility does is that it
> selectively disables the pipelines only for the xchg instruction, which
> was causing the Cyrix COMA (similar to the Pentium DEATH).
> It makes use of a few 6x86 undocumented registers. A very simple set6x86
> script will take care of that:
> WITH MAPEN ENABLED:
> set6x86 -p 0x31 -s 0xF8
> set6x86 -p 0x32 -s 0x7f
> set6x86 -p 0x33 -c 0xFF
> set6x86 -p 0x3c -s 0x87

This can also be done using the ms-dos utility of the same name. However,
I have noticed one small problem; this problem is inconsistent on my
PR200L+, Step 2, Rev 7. The COMA bug only works about half, maybe three
quarters of the time. Anyways, it might be an idea to add this into the
Cyrix patches for the 2.1.x kernels. Shouldn't be too hard to do this at
boot in the kernel, I wouldn't think. It's just a matter of enabling and
disabling a few opcodes. :)

-Phillip R. Jaenke [InterNIC Handle: PRJ5] (kernel@prj.pcimporters.com)
MIS Department, PC Importers, Inc. 800.319.9284, x4262
Head of Development, The Improvement Linux Project.
Penguin0: Cyrix Cx6x86 PR200L+, 64M, 1.6G, 1.2G, 4.3G, EE/Pro, 2.0.30
Penguin1: Intel P5-100, 32M, 4G, NE2k, 2.1.60-Improvement