Notes on using the Voice Engine (aka Voice Processor Module, "VPM".)

VPM support is a little different than other optional kernel/
user-space capabilities, since the standard uClinux source tree
is missing both the device driver and the ZSP firmware.

There are two directories of interest:

    o uClinux/linux/drivers/brecis/vpm
      This directory is where the driver source resides, if present.

    o uClinux/brecis/zsp-ldr
      This directory is where the ZSP firmware & associated files
      reside, if present.

These may be populated in tarballs released to customers, but will
usually be empty directories in an unmodified uClinux cvs tree. Under
cvs, use the following steps to populate these directories correctly:

    1. cd <wherever>/uClinux/drivers/brecis
    2. rm -rf vpm
    3. cvs checkout vpm
    4. cd <wherever>/uClinux/brecis
    5. rm -rf zsp-ldr
    6. cvs checkout zsp-ldr

You should only need to do this once for a given cvs tree, cvs will
then automatically handle update/commit/tag operations. The reason for
the remove operations is to remove & replace directories whose contents
were moved to the uClinux-special tree; these steps selectively
reinstate the contents into the uClinux tree.

Once installed, the build process (probably starting with a
"make linuxall", should automatically build and install onto
the romdisk both the driver and the processed ZSP firmware
images. There is no need to modify kernel/user configuration
files to ensure the driver & firmware are built.

You may trim unneeded firmware images from your romdisk to
reduce the memory footprint (e.g. removing MSP5000 files
"/etc/zsp/mspLoadFile.vpm" and "/etc/zsp/mspLoadFileG723.vpm"
from an MSP4000-only product) by any suitable means (direct
manipulation of romdisk/root/etc/zsp, modification of the
build procedure, etc.)

As shipped the driver currently requires the following other
kernel capabilities:

    o CONFIG_ZLIB_INFLATE
      The zsp firmware images are deflated before storage
      on the romdisk, the device driver automatically inflates
      these when the file is read, using the same functionality
      as the gzip-compressed-executable capability.

    o brecis_slac_dvr
      The brecis_vpm driver relies on direct calls to the
      slac driver to (crudely) manipulate hook status. To
      work on an EVM4000/5000 it is enough to load the slac
      driver module before loading the vpm driver module.
      On customer hardware, suitable replacement functionality
      may need to be implemented.

    o phonedev (optional)
      It is an optional build parameter to include a phonedev
      interface (requires phonedev module to be built and installed),
      or a stand-alone character interface (phonedev not required.)
      The API presented to the application is identical in both cases.
--
$Id: VoiceEngine,v 1.1 2003/05/28 21:46:49 awarner Exp $
