2003-02-07 13:44:28

by c1cc10

[permalink] [raw]
Subject: Cyrix III processor and kernel boot problem

Hello,
I made an unsuccessfull search on the m-l archive about this problem, so
now I'm going to report it in the developing m-l.
I own a Cyrix III processor (400 Mhz up to 800Mhz) on a via chipset
motherboard. When I boot with a kernel compiled for Cyrix processor or
with a 686 pentium the lilo gets the images, put it on memory and
decompress it, but when it has to boot (after the "Loading
mlinuz..........") it always reboot the computer.
I've found out that the Cyrix III has no CMOV instruction and that this
could be the problem.
So I compiled a pentium mmx version (after mrproper and dep) and all
worked fine.
My question is: ok, it can't work if 686 compiled, but why does not it
work also for the Cyrix III version?

I tried a "vanilla" kernel and some htb pathced one.
kernel versions: 2.4.19 and 2.4.20.
hope my report will help

keep up the good work

feel free to contact me

bye

c1cc10
--
pub 1024D/76A9AC52 2002-12-13 ciunociciunozero (PORCODIO) <[email protected]>
Key fingerprint = 64A9 9498 B297 B49F D676 AAA1 9DA9 CABA 76A9 AC52
sub 2048g/F248FA79 2002-12-13 [expires: 2004-12-12]



2003-02-07 14:04:57

by Dave Jones

[permalink] [raw]
Subject: Re: Cyrix III processor and kernel boot problem

On Fri, Feb 07, 2003 at 02:50:02PM +0000, c1cc10 wrote:
> I've found out that the Cyrix III has no CMOV instruction and that this
> could be the problem.
> So I compiled a pentium mmx version (after mrproper and dep) and all
> worked fine.
> My question is: ok, it can't work if 686 compiled, but why does not it
> work also for the Cyrix III version?

The CyrixIII compile option should not generate cmov.
If you can objdump -D vmlinuz and grep for cmov, and find out
where thats being generated to confirm that it is that could be useful.

Which gcc did you use? And (silly question), did you make mrproper
before building the cyrix3 kernel ? If there were left behind .o
files, that could confuse it. Possibly ccache too.
if you were using that rm -rf ~/.ccache to be sure.

as a sidenote, the new C3s (Nehemiah) now have CMOV.

Dave

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2003-02-07 14:11:31

by Pádraig Brady

[permalink] [raw]
Subject: Re: Cyrix III processor and kernel boot problem

Dave Jones wrote:
> On Fri, Feb 07, 2003 at 02:50:02PM +0000, c1cc10 wrote:
> > I've found out that the Cyrix III has no CMOV instruction and that this
> > could be the problem.
> > So I compiled a pentium mmx version (after mrproper and dep) and all
> > worked fine.
> > My question is: ok, it can't work if 686 compiled, but why does not it
> > work also for the Cyrix III version?
>
> The CyrixIII compile option should not generate cmov.
> If you can objdump -D vmlinuz and grep for cmov, and find out
^^^^^^^ -> vmlinux-2.4.20

> as a sidenote, the new C3s (Nehemiah) now have CMOV.

but no 3dnow so older C3 specific kernels don't work!

P?draig.

2003-02-07 14:14:41

by Alan

[permalink] [raw]
Subject: Re: Cyrix III processor and kernel boot problem

On Fri, 2003-02-07 at 14:50, c1cc10 wrote:
> I've found out that the Cyrix III has no CMOV instruction and that this
> could be the problem.

It is

gcc told to build for i686 assumes that cmov is present. Much of the
code advantage for i686 comes from cmov so it makes sense to do that
I guess.

The optimal kernel for the CyrixIII/VIA-C3 is the the Cyrix III/VIA-C3
option in current kernel menus, or i486

Alan

2003-02-07 14:51:23

by Dave Jones

[permalink] [raw]
Subject: Re: Cyrix III processor and kernel boot problem

On Fri, Feb 07, 2003 at 02:17:39PM +0000, [email protected] wrote:

> >as a sidenote, the new C3s (Nehemiah) now have CMOV.
> but no 3dnow so older C3 specific kernels don't work!

Yep. Dropped in favour of SSE. I have a patch to add an extra
config option for the C3-2. It's going to Linus/Marcelo later
this afternoon.

Dave

--
| Dave Jones. http://www.codemonkey.org.uk
| SuSE Labs

2003-02-07 16:26:24

by c1cc10

[permalink] [raw]
Subject: Re: Cyrix III processor and kernel boot problem

Dave Jones wrote:

> Which gcc did you use? And (silly question), did you make mrproper
> before building the cyrix3 kernel ? If there were left behind .o
> files, that could confuse it. Possibly ccache too.
> if you were using that rm -rf ~/.ccache to be sure.

ok, I'll jump directly to the point: I did not make any mrproper.
after your answer I tried and it worked.
sorry for the false alarm

c1cc10
--
pub 1024D/76A9AC52 2002-12-13 ciunociciunozero (PORCODIO) <[email protected]>
Key fingerprint = 64A9 9498 B297 B49F D676 AAA1 9DA9 CABA 76A9 AC52
sub 2048g/F248FA79 2002-12-13 [expires: 2004-12-12]


2003-02-09 21:13:04

by H. Peter Anvin

[permalink] [raw]
Subject: Re: Cyrix III processor and kernel boot problem

Followup to: <[email protected]>
By author: Alan Cox <[email protected]>
In newsgroup: linux.dev.kernel
>
> On Fri, 2003-02-07 at 14:50, c1cc10 wrote:
> > I've found out that the Cyrix III has no CMOV instruction and that this
> > could be the problem.
>
> It is
>
> gcc told to build for i686 assumes that cmov is present. Much of the
> code advantage for i686 comes from cmov so it makes sense to do that
> I guess.
>

Yep. The other name for the option, -mach=pentiumpro, really is the
more proper name.

-hpa
--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
Architectures needed: cris ia64 m68k mips64 ppc ppc64 s390 s390x sh v850 x86-64