[PlanetCCRMA] alsa-kernel on a VIA C3 Centaur
Fernando Pablo Lopez-Lezcano
nando at ccrma.Stanford.EDU
Tue Oct 28 09:46:01 PST 2003
> I run the Planet on a homebrew machine with a VIA EPIA M9000 mini-ITX
> motherboard, which has a C3 "Centaur" processor. This is an i686
> without the optional CMOV (conditional move) instruction. When you
> specify "C3" in a LInux kernel build, it compiles with march=i586, which
> less than optimal but still OK.
>
> I have been running with a 6-month-old planetdev kernel and alsa-driver:
>
> http://www-ccrma.stanford.edu/planetccrma/mirror/redhat/linux/planetdev/8.0/en/os/i386/
> kernel-up-2.4.20-1.12.ll.acpi.i386.rpm
> alsa-driver-2.4.20-1.12.ll.acpi-0.9.0-45.i386.rpm
> (there was no i586 specific build of this)
>
> When I do a dist-upgrade, apt-get correctly installs the i586 versions of
> packages when their available. The newer kernels boot up, but anything that
> touches code in the alsa-kernel modules gets a segfault or SIGILL (illegal
> instruction) indicating that there are CMOV instructions in the compiled code.
> This can be confirmed with objdump -d. For example on the new RH9 alsa-kernel
> (I upgraded hoping the problem would be fixed):
>
> [root at blumlein sound]# cd /lib/modules/2.4.22-6.ll.rh90/kernel/sound/
> [root at blumlein sound]# objdump -d snd-ice1712.o |grep cmov
> 482: 0f 44 f8 cmove %eax,%edi
> a5d: 0f 45 44 24 04 cmovne 0x4(%esp,1),%eax
> a6d: 0f 45 44 24 04 cmovne 0x4(%esp,1),%eax
> a98: 0f 43 e8 cmovae %eax,%ebp
> ba6: 0f 45 44 24 10 cmovne 0x10(%esp,1),%eax
> bb6: 0f 45 44 24 10 cmovne 0x10(%esp,1),%eax
> bdb: 0f 43 e8 cmovae %eax,%ebp
> ebf: 0f 44 c2 cmove %edx,%eax
> f52: 0f 44 c2 cmove %edx,%eax
> (lots more ....)
Thanks for the detailed report. I'll check asap to see what can be done
so that alsa compiles for the right architecture.
-- Fernando
More information about the PlanetCCRMA
mailing list