Subject: Re: LoFI (DEcaudio) documentation?
To: Aaron J. Grier <email@example.com>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
Date: 06/16/1998 14:36:51
>> Anyone know where to find documentation for writing a LoFi driver?
>> ISTR someone said documentation was available. Could someone give me a
>> refresher to it? (I looked for the archive cgd use to maintain, but
>> that's gone.)
Aaron J. grier writes:
> techreports/abstracts/93_9.html -- for the abstract
>ftp://crl.dec.com/pub/DEC/CRL/tech-reports/93.9.ps.Z -- the paper
>I've got a copy at http://www.reed.edu/~agrier/93.9.ps.gz as well...
Thanks. That's what I was looking for -- block-diagram and
programming info on the LoFi, not the 56K per se.
I have a driver that sorta works, but using the DEC CRL AudioFile (AF)
API. Doing anything with the stereo output requires some DSP code; AF
handled all of that at userlevel. I _think_ we can embed their 56k
binary code in a kernel (its redistributable even for charge as long
as it's for DEC hardware, which this is.) otherwise -- ugh.
Obviously, the goal is to eventually support audio(4) and audio(9) on
all channels, plus ISDN support "somehow" (bsdisdn?). For now I'm only
aiming at the phone-quality "monitor" port via one of the am73c90s.
The loFi is totally PIO-driven (to and from onboard RAM) and access to
the onboard RAM can stargve out the DSP, which will make this gly.
And it has lots of channels:
* stereo Line out L/R (44Khz DAC)
* stereo headphones L/R (44Khz DAC)
* Mic in (codec 1)
* Line in (codec 1)
* line out (codec 1 )
* local box speaker (codec 1)
* monitor speaker (codec 0)
* ISDN-S with DTMF/dialtone hardware (codec 0)
* POTS (US/canada) (codec 0, external D2249, mitel8870)
* 56001 DSP serial output (claimed semi-standard in early 90s;
works with Ariel ProPort hardware, whatever that is).
The LoFi support could be something like:
lofi0 at tc
audioamd0 at lofi0
audio* at audoiamd0
audioamd1 at lofi0
audio* at audoiamd1 # really phone/ISDN
dsp56k0 at lofi0 # Moto 56001 DSP
audio* at dsp56k0 # stereo output
or it could be more like
lofi0 at tc
audio* at lofi0 # hides all the channels internally
What's the best way to do this?