All of lore.kernel.org
 help / color / mirror / Atom feed
* EMU10K1 DSP programs
@ 2002-09-16 13:57 Martin Soto
  2002-09-17  9:49 ` Jaroslav Kysela
  2002-09-18  2:48 ` torben hohn
  0 siblings, 2 replies; 6+ messages in thread
From: Martin Soto @ 2002-09-16 13:57 UTC (permalink / raw)
  To: alsa-devel

Hi all!

Is it possible to load DSP programs to the EMU10K1 chip?  The alsa-tools
package contains a modified as10k1 that allows you to assemble such
programs, but there's no information about how to upload them to the
processor.

Thanks a lot,

M. S.
-----------------------------------------------------------------
Martin Soto

AG Software Engineering
Universitaet Kaiserslautern              Tel:  +49 (631) 205-3449
Kaiserslautern, Germany         E-mail: soto@informatik.uni-kl.de
-----------------------------------------------------------------



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: EMU10K1 DSP programs
  2002-09-16 13:57 EMU10K1 DSP programs Martin Soto
@ 2002-09-17  9:49 ` Jaroslav Kysela
  2002-09-17 11:37   ` Martin Soto
  2002-09-18  2:48 ` torben hohn
  1 sibling, 1 reply; 6+ messages in thread
From: Jaroslav Kysela @ 2002-09-17  9:49 UTC (permalink / raw)
  To: Martin Soto; +Cc: alsa-devel@lists.sourceforge.net

On 16 Sep 2002, Martin Soto wrote:

> Hi all!
> 
> Is it possible to load DSP programs to the EMU10K1 chip?  The alsa-tools
> package contains a modified as10k1 that allows you to assemble such
> programs, but there's no information about how to upload them to the
> processor.

The work has not been finished at all. The changes in assembler are 
incomplete and the user space linker/loader program is missing at all.

						Jaroslav

-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project  http://www.alsa-project.org
SuSE Linux    http://www.suse.com



-------------------------------------------------------
Sponsored by: AMD - Your access to the experts on Hammer Technology! 
Open Source & Linux Developers, register now for the AMD Developer 
Symposium. Code: EX8664 http://www.developwithamd.com/developerlab

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: EMU10K1 DSP programs
  2002-09-17  9:49 ` Jaroslav Kysela
@ 2002-09-17 11:37   ` Martin Soto
  2002-09-17 14:38     ` Jaroslav Kysela
  0 siblings, 1 reply; 6+ messages in thread
From: Martin Soto @ 2002-09-17 11:37 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: alsa-devel@lists.sourceforge.net

On Tue, 2002-09-17 at 11:49, Jaroslav Kysela wrote:
> On 16 Sep 2002, Martin Soto wrote:
> > Is it possible to load DSP programs to the EMU10K1 chip?  The alsa-tools
> > package contains a modified as10k1 that allows you to assemble such
> > programs, but there's no information about how to upload them to the
> > processor.
> 
> The work has not been finished at all. The changes in assembler are 
> incomplete and the user space linker/loader program is missing at all.

Thanks for the answer.  I actually discovered part of it yesterday after
I wrote my original mail, by looking directly at the driver code.  I'm
actually interested in writing a patch loader/manager, and as far as I
can see, the driver interface is already there.  I haven't tested it
thoroughly though, so I'm not sure it is completely operational.  But it
looks good.

And, by the way, I have a question regarding it.  In the hardware
dependant ioctl interface to the EMU10K1 there are two ioctls,
SNDRV_EMU10K1_IOCTL_CODE_PEEK and SNDRV_EMU10K1_IOCTL_CODE_POKE, that
allow you to read the DSP code and to actually upload new code.  Part of
what SNDRV_EMU10K1_IOCTL_CODE_POKE does is defining new (mixer) controls
and eventually deleting those that are not needed any more.

However, I didn't find a way to know which current mixer controls are
*actually* associated to general purpose registers in the FX8010.  Of
course, I could read the code in emufx.c and determine it from there,
but that would make my code very sensible to changes in the driver.  I
just though of using the mixer/control interface in alsalib to find all
controls, and try to delete them with CODE_POKE, hoping that the driver
will only delete those that are connected to GPRs, but that looks too
much like a hack.  Is there a more elegant way to handle that?

Cheers,

M. S.
-----------------------------------------------------------------
Martin Soto

AG Software Engineering
Universitaet Kaiserslautern              Tel:  +49 (631) 205-3449
Kaiserslautern, Germany         E-mail: soto@informatik.uni-kl.de
-----------------------------------------------------------------



-------------------------------------------------------
Sponsored by: AMD - Your access to the experts on Hammer Technology! 
Open Source & Linux Developers, register now for the AMD Developer 
Symposium. Code: EX8664 http://www.developwithamd.com/developerlab

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: EMU10K1 DSP programs
  2002-09-17 11:37   ` Martin Soto
@ 2002-09-17 14:38     ` Jaroslav Kysela
  2002-09-17 16:38       ` Martin Soto
  0 siblings, 1 reply; 6+ messages in thread
From: Jaroslav Kysela @ 2002-09-17 14:38 UTC (permalink / raw)
  To: Martin Soto; +Cc: alsa-devel@lists.sourceforge.net

On 17 Sep 2002, Martin Soto wrote:

> On Tue, 2002-09-17 at 11:49, Jaroslav Kysela wrote:
> > On 16 Sep 2002, Martin Soto wrote:
> > > Is it possible to load DSP programs to the EMU10K1 chip?  The alsa-tools
> > > package contains a modified as10k1 that allows you to assemble such
> > > programs, but there's no information about how to upload them to the
> > > processor.
> > 
> > The work has not been finished at all. The changes in assembler are 
> > incomplete and the user space linker/loader program is missing at all.
> 
> Thanks for the answer.  I actually discovered part of it yesterday after
> I wrote my original mail, by looking directly at the driver code.  I'm
> actually interested in writing a patch loader/manager, and as far as I
> can see, the driver interface is already there.  I haven't tested it
> thoroughly though, so I'm not sure it is completely operational.  But it
> looks good.
> 
> And, by the way, I have a question regarding it.  In the hardware
> dependant ioctl interface to the EMU10K1 there are two ioctls,
> SNDRV_EMU10K1_IOCTL_CODE_PEEK and SNDRV_EMU10K1_IOCTL_CODE_POKE, that
> allow you to read the DSP code and to actually upload new code.  Part of
> what SNDRV_EMU10K1_IOCTL_CODE_POKE does is defining new (mixer) controls
> and eventually deleting those that are not needed any more.
> 
> However, I didn't find a way to know which current mixer controls are
> *actually* associated to general purpose registers in the FX8010.  Of
> course, I could read the code in emufx.c and determine it from there,
> but that would make my code very sensible to changes in the driver.  I
> just though of using the mixer/control interface in alsalib to find all
> controls, and try to delete them with CODE_POKE, hoping that the driver
> will only delete those that are connected to GPRs, but that looks too
> much like a hack.  Is there a more elegant way to handle that?

I've added gpr_list_control* variables to emu10k1_fx8010_code_t.
The SNDRV_EMU10K1_IOCTL_CODE_PEEK will fill these variables for you. Note 
that all this code in emufx.c is mostly untested, so give me feedback, 
what features/functions need to be corrected.

						Jaroslav

-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project  http://www.alsa-project.org
SuSE Linux    http://www.suse.com





-------------------------------------------------------
Sponsored by: AMD - Your access to the experts on Hammer Technology! 
Open Source & Linux Developers, register now for the AMD Developer 
Symposium. Code: EX8664 http://www.developwithamd.com/developerlab

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: EMU10K1 DSP programs
  2002-09-17 14:38     ` Jaroslav Kysela
@ 2002-09-17 16:38       ` Martin Soto
  0 siblings, 0 replies; 6+ messages in thread
From: Martin Soto @ 2002-09-17 16:38 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: alsa-devel@lists.sourceforge.net

On Tue, 2002-09-17 at 16:38, Jaroslav Kysela wrote:
> On 17 Sep 2002, Martin Soto wrote:
> > And, by the way, I have a question regarding it.  In the hardware
> > dependant ioctl interface to the EMU10K1 there are two ioctls,
> > SNDRV_EMU10K1_IOCTL_CODE_PEEK and SNDRV_EMU10K1_IOCTL_CODE_POKE, that
> > allow you to read the DSP code and to actually upload new code.  Part of
> > what SNDRV_EMU10K1_IOCTL_CODE_POKE does is defining new (mixer) controls
> > and eventually deleting those that are not needed any more.
> > 
> > However, I didn't find a way to know which current mixer controls are
> > *actually* associated to general purpose registers in the FX8010.  Of
> > course, I could read the code in emufx.c and determine it from there,
> > but that would make my code very sensible to changes in the driver.  I
> > just though of using the mixer/control interface in alsalib to find all
> > controls, and try to delete them with CODE_POKE, hoping that the driver
> > will only delete those that are connected to GPRs, but that looks too
> > much like a hack.  Is there a more elegant way to handle that?
> 
> I've added gpr_list_control* variables to emu10k1_fx8010_code_t.
> The SNDRV_EMU10K1_IOCTL_CODE_PEEK will fill these variables for you. Note 
> that all this code in emufx.c is mostly untested, so give me feedback, 
> what features/functions need to be corrected.

That was exactly what I was looking for, thanks!  I'll try to write at
least a simple loader in the following days to see if everything works
properly.

Cheers,

M. S.
-----------------------------------------------------------------
Martin Soto

AG Software Engineering
Universitaet Kaiserslautern              Tel:  +49 (631) 205-3449
Kaiserslautern, Germany         E-mail: soto@informatik.uni-kl.de
-----------------------------------------------------------------



-------------------------------------------------------
This SF.NET email is sponsored by: AMD - Your access to the experts
on Hammer Technology! Open Source & Linux Developers, register now
for the AMD Developer Symposium. Code: EX8664
http://www.developwithamd.com/developerlab

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: EMU10K1 DSP programs
  2002-09-16 13:57 EMU10K1 DSP programs Martin Soto
  2002-09-17  9:49 ` Jaroslav Kysela
@ 2002-09-18  2:48 ` torben hohn
  1 sibling, 0 replies; 6+ messages in thread
From: torben hohn @ 2002-09-18  2:48 UTC (permalink / raw)
  To: Martin Soto; +Cc: alsa-devel

On 16 Sep 2002 15:57:52 +0200, Martin Soto wrote:
> Hi all!
> 
> Is it possible to load DSP programs to the EMU10K1 chip?  The alsa-tools
> package contains a modified as10k1 that allows you to assemble such
> programs, but there's no information about how to upload them to the
> processor.

i have not tried it out but there are some ioctl which allow you to poke
and peek
the dsp instruction memory.

ALSA uses a fair amount of dsp code for its own. I am not quite sure
what has to be done to remove the alsa dsp code (remove the mixers
controling
the gprs etc)

have a look at
alsa-kernel/pci/emu10k1/emufx.c

And if you have any success tell me.
I would like to load up patches into the DSP too.





-------------------------------------------------------
This SF.NET email is sponsored by: AMD - Your access to the experts
on Hammer Technology! Open Source & Linux Developers, register now
for the AMD Developer Symposium. Code: EX8664
http://www.developwithamd.com/developerlab

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2002-09-18  2:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-09-16 13:57 EMU10K1 DSP programs Martin Soto
2002-09-17  9:49 ` Jaroslav Kysela
2002-09-17 11:37   ` Martin Soto
2002-09-17 14:38     ` Jaroslav Kysela
2002-09-17 16:38       ` Martin Soto
2002-09-18  2:48 ` torben hohn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.