[LinuxBIOS] Geode GX1/5530: How to forward SMI to a regular IRQ
juergen127 at kreuzholzen.de
Fri Sep 1 22:48:32 CEST 2006
On Friday 01 September 2006 15:02, you wrote:
> I am catching up on some LB threads in my Inbox, and found this one. I
> don't have anything technical to contribute, but am definitely interested
> in your progress! To have Kahlua audio without VSA would be fantastic!
> Good luck, and keep us updated on your progress.
Thanks, here it comes.
Its state is: "it works for me". I can play sounds and MP3s with it.
It was easier to poll the SMI status bits than to forward an SMI to a regular
IRQ. So I divide my driver into two parts: One for SMI polling, and one for
kahlua sound. The sound drivers registers itself by the SMI handler, to get
called whenever an SMI related to the sound chip occures. That does not work
very well under heavy load!
But: On a 233MHz Geode with VSA BIOS playing network radio the system has 50%
to 60% load (Sound Blaster Emulation with 2.4.x kernel). On my 300Mhz Geode
with LinuxBios and my native sound driver playing an MP3 has a load of 3% to
Some problems are still unresolved:
- very short sounds do not stop at the end. The stop command from the
ALSA framework is always to late, so a little piece of the last period
will be repeated like an echo (due to ring buffering)
- I'm not sure if the AC97 codec programming interface works correctly.
Sometimes the ALSA framework finds two codecs, sometime only one (but one
is correct). And most of the times the alsamixer "forgets" that the master
volume also has a "mute" bit. So I have to change the bit manually to hear
- capturing is completely untested, it only compiles yet.
- high system load increases the SMI polling latency. So some sound periods
Comments are welcome (and recommendations how to solve the increasing SMI
polling latency under heavy system load). Attached a quilt stack for a 2.6.17
PS: I'm on holiday next week, without email access ;-) Back Sun, 10th.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 12325 bytes
Desc: not available
More information about the coreboot