January 15, 2003
Overview
Release 3.5.0 of the Empack software includes Version 3.5.0 of the host libraries and Version 3.5.0 of the Embedded Firmware and FPGA configurations.
The following changes are introduced in this release:
- Support for new EM6XVC33 mezzanine.
- Software and hardware version compatibility issues.
- The current TDM Map is now read by the EmOpenModule function.
- New system resource register macros for EM6X32C and EM6XC33 mezzanines.
- Modification to API function for finding DSP labels.
- Changes to host API library.
- Changes to support and diagnostic programs.
- Changes to embedded code.
- Support for using GCC 3.2 to compile Solaris 64-bit device driver.
Note:
This release includes a new embedded code and FPGA configurations. Customers should run the emflash utility after installation.
Support for New EM6XVC33 Mezzanine
The EM6XVC33 mezzanine provides 6 Texas Instruments TMS320VC33 DSPs each with 1 MB of external SRAM. Is designed as a replacement for the EM6X32C mezzanine and in many respects, the interface to the EM6XVC33 is identical to that of the EM6X32C. However, there are enough differences to warrant recognizing and treating it as a different mezzanine. Most of the differences are handled by the API and embedded code for operations such as initialization, data transfer and TDM map building. The primary differences that must be handled by application programs are:
Software and Hardware Version Compatibility Issues
The version compatibility checking mechanism built into the API will complain about a version mismatch if an Empack running version 3.4.x embedded code is accessed by version 3.5.x of the API or vice-versa. The function EmSetVersionChecking, added in version 3.5.0 of the API, will disable the version checking mechanism and allow the host software version 3.5.x to access Empacks running earlier versions of the embedded code.
It must be called immediately after calling the EmAttachApi function. For example:
if (EmAttachApi() != EM_STATUS_SUCCESS) {
fprintf(stderr, "Failed to attach Empack API\n");
exit(1);
}
EmSetVersionChecking (FALSE);
The empack diagnostic programs all have a new -V option which allows
the diagnostics of version 3.5.0 or higher to be run with Empacks running
embedded code versions 3.4.x.
Note that version checking should not be disabled for Empacks with
embedded code versions below 3.4.0.
The Current TDM Map is Now Read by the EmOpenModule Function
New System Resource Register Macros for EM6X32C and EM6XC33 Mezzanines
| Macro | Register Access |
| EM_DSP32C_BCR0 | Board Control Register 0 |
| EM_DSP32C_BCR1 | Board Control Register 1 |
| EM_DSP32C_PISR | PIO Interrupt Status Register |
| EM_DSP32C_PIMR | PIO Interrupt Mask Register |
| EM_DSP32C_FIFO | TDM Map FIFO Data |
| EM_DSPC33_BCR0 | Board Control Register 0 |
| EM_DSPC33_BCR1 | Board Control Register 1 |
| EM_DSPC33_PISR | PIO Interrupt Status Register |
| EM_DSPC33_PIMR | PIO Interrupt Mask Register |
| EM_DSPC33_FIFO | TDM Map FIFO Data |
The values for the DSP32C and DSPC33 macros are interchangeable for use with either the EM6X32C or EM6XVC33 mezzanines.
Modification to API Function for Finding DSP Labels
The EmLabelNameToAddress API function, used to determine the DSP memory address for a named global label in a DSP program, is modified to provide label name compatibility for DSP programs that have versions for both DSP32C and C33 DSPs. When a search for a label name fails to find an exact match, it performs a second pass search for the requested name prepended with an underscore. This allows program written for DSP32C and C33 DSPs to use the same names for variables and the host API can find the addresses of those labels using the same names.
Using the previous example, a host program searching for the label named "framecount" will find the label in a DSP32C program on the first pass. For a C33 DSP program it will find the label named "_framecount" on the second pass and return the memory address of the variable known as "framecount".
Note that although the variables have the same name for both DSP programs, the memory addresses will not be the same. Host programs that are expected to support Empacks with a combination of EM6X32C and EM6XVC33 mezzanines will need to keep track of the memory addresses for DSP variables separately for each DSP type.
Modifications are made to some DSP32C register-level memory access code to avoid unnecessary memory pre-fetches.
The API initialization code that stores information about the available resources is modified to only use the information stored in the serialization EEROM to register the existence of DSP32 resources. It no longer tests DSP32C register access to verify that the DSPs respond. This change allows diagnostic programs to access and debug DSP resources that may not be functioning properly.
Changes to Support and Diagnostic Programs
The emfind program now reports when information cannot be read from Empacks that are in use by another program and checks that the serialized and configured framer types (T1 or E1) match. This program also includes a fix to avoid possible hung SCSI accesses.
The emflash program now has a -r option used to specify the revision level of flash flash files to use.
The emserial program (command line version) now reports full serial numbers for mezzanines.
The emcpvalid program is no longer supported as a diagnostic program. It has been moved to the demo section of the software release.
All of the diagnostic programs are upgraded to support the new EM6XVC33 mezzanine. The code files for the DSP32C processors have all been renamed to start with "32c" rather then "dsp" to better distinguish them from the code files for C33 DSPs which have names beginning with "c33".
Diagnostic programs also have the new -V option to disable version checking as described above. Some of the less often used command line options are no longer displayed by default in the usage messages. Use the -v option to request a complete list of command line option descriptions.
The emdiag program now rotates the DSP chips and mezzanines used to test E1 and T1 interfaces and Codec mezzanines and uses rotating parameters for the TDM and memory (emroundmem) tests. A new -r option is provided to disable this feature. Other new command line options for emdiag include:
| -n cycles | number of test cycles to run |
| -t time | number run time for adjustable tests |
| -p | display rotated test parameters |
Note that the -n and -t options override the corresponding values specified in the configuration file (if used).
The emdiag program also has a new configuration file entry and corresponding "interview" question for treating EM6X32C and EM6XVC33 mezzanines as equivalent in Empack systems.
The emburn program now rotates the DSP chips and mezzanines used to test E1 and T1 interfaces and Codec mezzanines. A new -M option is provided to disable this feature.
The empiomem program is modified to limit the size of uploads from base-board memory to 1K words at a time. This is done to avoid problems that may occur with slow computers. A new -L option is provided to disable the upload limit, if desired.
Some minor bugs are fixed in the emroundmem program. It is now able to detect stopped TDM transfers when started by the emburn program.
The emchip program is modified to poll for DSP interrupt status rather than using the EmPendIstat function. This is to avoid system hang problems that may occur if the DSP fails to generate an interrupt and the EmPendIstat function times out. The serial I/O dma test in emchip is now called "Serial I/O" or "sio".
The eme1t1loop program has the following new command line options:
| -p dsp_dev | specify DSP chip to use (formerly -P |
| -B busses | specify TDM bus numbers for transmit and receive data |
| -W | wait for user input before data transmission begins |
The emscp program now has a -M option to specify which DSP mezzanine to use.
The emc12warning program has a new -M option used to specify which DSP module to use for sending the warning message.
A new diagnostic program, emdsptest, provides low-level testing of register access, data transfer and control operations for EM6X32C and EM6XVC33 DSP mezzanines.
Changes to Empack Embedded Code
Modifications are made to DSP32C data transfer routines to avoid unnecessary memory pre-fetches.
A bug is fixed in the function used to set DSP supply voltage on EM6X32C mezzanines.
Support for Using GCC 3.2 to Compile Solaris 64-bit Device Driver
The Solaris device driver installation is modified to copy the empack.conf only to the /kernel/drv directory for 32-bit and 64-bit installations.