2008-08-05 07:12:43

by David Wilson

[permalink] [raw]
Subject: What is the best way to identify a new x86 processor that does not implement the CPUID instruction?

I recently bought a Norhtec MicroClient JrSX which uses the Vortex86sx
System on Chip processor (see http://vortex86sx.com/ for more
details). This is identified as a Cyrix 486SLC by the Linux kernel due
to the lack of a CPUID instruction. While this may be seen as a
cosmetic defect, if the kernel can identify the processor correctly it
could, for example, use the clock divisor code provided by the
manufacturer to slow down and speed up the CPU when required.

The question is: how to differentiate this chip from the Cyrix part?
The freely available "brief data sheet" does not provide much detail.

I have thought of a couple of schemes but am not really keen on either:

1) Clock speed - the SoC runs at 300+ MHz while the Cyrix part is < 100 MHz
2) Look at the PCI VID/PID for the north bridge as this is part of the CPU die.

Does anyone have any suggestions? Thanks.


2008-08-05 09:27:09

by David Newall

[permalink] [raw]
Subject: Re: What is the best way to identify a new x86 processor that does not implement the CPUID instruction?

David Wilson wrote:
> I recently bought a Norhtec MicroClient JrSX which uses the Vortex86sx
> System on Chip processor (see http://vortex86sx.com/ for more
> details). This is identified as a Cyrix 486SLC by the Linux kernel due
> to the lack of a CPUID instruction.

Consider creating a new boot-time parameter to identify it.

2008-08-06 02:33:31

by Jike Song

[permalink] [raw]
Subject: Re: What is the best way to identify a new x86 processor that does not implement the CPUID instruction?

On Tue, Aug 5, 2008 at 3:08 PM, David Wilson <[email protected]> wrote:
> I have thought of a couple of schemes but am not really keen on either:
>
> 1) Clock speed - the SoC runs at 300+ MHz while the Cyrix part is < 100 MHz
at which speed this Soc is running when being recognized as Cyrix part by Linux?

> 2) Look at the PCI VID/PID for the north bridge as this is part of the CPU die.
>

As you said, since the manufacturer has provided some codes to tune
the CPU speed, did they provide any method to identify the CPU without
a cpuid function?

2008-08-06 12:02:27

by Bill Davidsen

[permalink] [raw]
Subject: Re: What is the best way to identify a new x86 processor that does not implement the CPUID instruction?

David Wilson wrote:
> I recently bought a Norhtec MicroClient JrSX which uses the Vortex86sx
> System on Chip processor (see http://vortex86sx.com/ for more
> details). This is identified as a Cyrix 486SLC by the Linux kernel due
> to the lack of a CPUID instruction. While this may be seen as a
> cosmetic defect, if the kernel can identify the processor correctly it
> could, for example, use the clock divisor code provided by the
> manufacturer to slow down and speed up the CPU when required.
>
> The question is: how to differentiate this chip from the Cyrix part?
> The freely available "brief data sheet" does not provide much detail.
>
> I have thought of a couple of schemes but am not really keen on either:
>
> 1) Clock speed - the SoC runs at 300+ MHz while the Cyrix part is < 100 MHz
> 2) Look at the PCI VID/PID for the north bridge as this is part of the CPU die.
>
> Does anyone have any suggestions? Thanks.

Your (2) sounds reasonable.

--
Bill Davidsen <[email protected]>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot

2008-08-08 11:00:46

by Andi Kleen

[permalink] [raw]
Subject: Re: What is the best way to identify a new x86 processor that does not implement the CPUID instruction?

"David Wilson" <[email protected]> writes:

> I recently bought a Norhtec MicroClient JrSX which uses the Vortex86sx
> System on Chip processor (see http://vortex86sx.com/ for more
> details). This is identified as a Cyrix 486SLC by the Linux kernel due
> to the lack of a CPUID instruction. While this may be seen as a
> cosmetic defect, if the kernel can identify the processor correctly it
> could, for example, use the clock divisor code provided by the
> manufacturer to slow down and speed up the CPU when required.
>
> The question is: how to differentiate this chip from the Cyrix part?
> The freely available "brief data sheet" does not provide much detail.
>
> I have thought of a couple of schemes but am not really keen on either:
>
> 1) Clock speed - the SoC runs at 300+ MHz while the Cyrix part is < 100 MHz
> 2) Look at the PCI VID/PID for the north bridge as this is part of the CPU die.
>
> Does anyone have any suggestions? Thanks.

I would suggest asking the CPU vendor. Surely they have some method.
Then submit a patch to detect that CPU based on that method.

-Andi