Definitive Cyrix patch

Mike Jagdis (mike@roan.co.uk)
Mon, 21 Oct 1996 10:44:49 +0100 (GMT/BST)


Ok, I said this weekend and I meant, um, monday. Last minute testing
struck again...

This patch is against 2.1.5 *only*. I do not "believe in" putting
out development patches for release kernels. 2.0.x works quite well
enough without this, thank you.

This incorporates any good bits of the other Cyrix patches I found
useful. Recognition of Cyrix processors is added. If Cyrix recognition
is not selected in the kernel config the code will recognise the
chip as a Cyrix of some description but may get no further if the
BIOS doesn't enable CPUID. If Cyrix recognition is selected checks
are done to fully identify the chip. The /proc/cpuinfo description
is correct for 5x86 and 6x86 chips but not all flavours of Cx486
are fully described - there seems no way to build a compact description
table for them, sorry.

If the chip is a 6x86 the variable size paging mechanism is used
to map kernel space. Note that testing suggests that there is
strangeness related to VSPM (at least with my chip) - this would
toast previous patches with different sized memory banks (12MB, 24MB
etc. of memory for instance). This code contains workarounds (and
comments!) mixing VSPM and traditional paging if necessary. This
reduces the performance advantage slightly for people with memory
sizes that are not a power of two but most people get the full
benefit of VSPM.

Like the Pentium optimisations, VSPM usage is disabled for SMP
kernels. It seems only a slight reorganisation would be needed to
enable it (move the check for non-boot processor from _around_
the call to paging_init() to _within_ paging_init() after VSPM
is set up?). Can you use 6x86s on an SMP board?

Oh yeah, if Cyrix recognition is enabled the code also turns on
SUSP_HALT and DTE_EN as well as CPUID in case the BIOS didn't know
to or didn't bother to.

Anyway, the patch, Boss! The patch is coming!

begin 644 cx.patch.gz
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
7G39!F2:M-H>WA;K*\_\#X?$CA-$V``"/
`
end

-- 
.----------------------------------------------------------------------.
|  Mike Jagdis                  |  Internet:  mailto:mike@roan.co.uk   |
|  Roan Technology Ltd.         |                                      |
|  54A Peach Street, Wokingham  |  Telephone:  +44 118 989 0403        |
|  RG40 1XG, ENGLAND            |  Fax:        +44 118 989 1195        |
`----------------------------------------------------------------------'