May 29, 2001
Overview
Release 3.4.2 of the Empack software includes Version 3.4.2 of the host libraries and Version 3.4.2 of the Embedded Firmware and FPGA configurations.
The following changes are introduced in this release:
- Modified API functions to check for API Attach errors.
- New EmSetPath API function.
- New TDM connection functions.
- Bug fixed in the EmClearTdmMap function.
- Bug fixed in the EmIsResourceStarted function.
- Modified EmSetCodecLevels function to account for input voltage clamp.
- Fixed problems in Solaris device driver installation.
- Bug fixes in the EmPack Embedded code.
- Modified Empack support programs.
- New and modified Empack diagnostic programs.
Notes:
This release includes new embedded code. Customers should run the emflash utility after installation in order to avoid version mismatch errors.
Modified API Functions to Check for API Attach Errors
The Solaris version of EmAttachApi function is fixed to check the result of the EmGetPath function. If it fails, an error message is displayed and EmAttachApi fails with an error code of EM_STATUS_OPEN_FILE, meaning that it was unable to open or find the Empack name map file (emnames.map).
char *EmSetPath ( char *dir )
The dir argument specifies the CAC software installation directory
(e.g. "/usr/cac").
The directory name is stored so that subsequent calls to the EmGetPath
function can access it as the specified path name.
The returned pointer is the address of the stored path name or NULL if
memory to store it could not be allocated.
Note that EmSetPath must be called to store the path name before calling EmAttachApi.
Although it is available, this function should not be required by
Windows applications.
When running under Microsoft Windows, the CAC software path is read from
the system registry if it is not specified as a CAC environment variable.
New TDM Connection API functions
A new, TDM Application Note describes Empack's TDM connectivity options and these new functions in detail. Brief synopses of the new functions are provided below.
The connections configured with these functions are made effective by calling EmWriteTdmMap.
The EmSetScsaOutput function selects the data path to be sent out to SCSA and chooses the operational mode for outgoing SCSA data.
EM_STATUS EmSetScsaOutput (
EMPACK_HANDLE Empack,
int Bus,
int Mode )
Empack identifies the Empack whose SCSA connection is to be configured.
Bus specifies the data source to be connected to the outgoing SCSA bus. Valid values for Bus are:
TDM_BUSA, B, C, D, E or F - One of mezzanine TDM busses A - F TDM_BUS_FRAMER - Incoming E1 or T1 framer data TDM_BUS_LOOPBACK - SCSA input bus
Mode specifies the operational mode for SCSA output. Valid values are:
TDM_DATA - Normal operation TDM_SCSA_VALID - Multiplex TDM data and valid onto SCSA TDM_SCSA_COMB - Multiplex the selected mezzanine TDM bus with incoming framer data
The EmSetScsaInput function selects which one, if any, of the mezzanine TDM busses to route incoming SCSA data to and chooses the operational mode for incoming SCSA data.
EM_STATUS EmSetScsaInput (
EMPACK_HANDLE Empack,
int Bus,
int Mode )
Empack identifies the Empack whose SCSA connection is to be configured.
Bus specifies which TDM bus is to be driven from the incoming SCSA bus. Valid values for Bus are:
TDM_BUSA, B, C, D, E or F - One of mezzanine TDM busses A - F TDM_BUS_NONE - Incoming SCSA data is not connected to any TDM bus
Mode specifies the operational mode for SCSA output. Valid values are:
TDM_DATA - Normal operation TDM_SCSA_VALID - De-multiplex incoming SCSA data onto TDM data and valid lines
The EmSetFramerOutput function selects the data path to be sent out to E1 or T1 framers.
EM_STATUS EmSetFramerOutput (
EMPACK_HANDLE Empack,
int Bus,
int Mode )
Empack identifies the Empack whose SCSA connection is to be configured.
Bus specifies the data source to be connected to the outgoing framer bus. Valid values for Bus are:
TDM_BUSA, B, C, D, E or F - One of mezzanine TDM busses A - F TDM_BUS_SCSA - Incoming SCSA data TDM_BUS_LOOPBACK - Framer input bus
Mode specifies the operational mode for SCSA output. There is currently only one valid option:
TDM_DATA - Normal operation
The EmSetFramerInput function selects which one, if any, of the mezzanine TDM busses to route incoming E1 or T1 framer data to and chooses the operational mode for incoming framer data.
EM_STATUS EmSetFramerInput (
EMPACK_HANDLE Empack,
int Bus,
int Mode )
Empack identifies the Empack whose SCSA connection is to be configured.
Bus specifies which TDM bus is to be driven from the incoming framer bus. Valid values for Bus are:
TDM_BUSA, B, C, D, E or F - One of mezzanine TDM busses A - F TDM_BUS_NONE - Incoming framer data is not connected to any TDM bus
Mode specifies the operational mode for SCSA output. Valid values are:
TDM_DATA - Normal operation TDM_MERGE_STATUS - Merge framer status bytes from time slots 0 -3 into slot 3
Bug Fixed in the EmClearTdmMap Function
Bug Fixed in the EmIsResourceStarted Function
Modified EmSetCodecLevels Function to Account for Input Voltage Clamp
Without the -20 dbV attenuator enabled, the clamping diodes begin clipping when the differential input reaches approximately 9.6 volts, peak-to-peak. This corresponds to a level approximately 10.7 dbV above the codec's full scale input. EmSetCodecLevels will enable the attenuator when the Input parameter is -10.25 or lower (providing a little headroom).
Fixed Problems in Solaris Device Driver Installation
The Makefile no longer tests for the empack entry in /etc/devlink.tab to determine whether or not the device driver needs to be installed. This check was unreliable because the rem_drv program does not delete the entry from /etc/devlink.tab.
The shell script embedded in the Solaris device driver Makefile for creating the emnames.map file is fixed so that inaccessible empack entries in the /dev directory are ignored without causing an error and so that the name entries (emp00, emp002, etc) end up in order of their empack device numbers.
Bug Fixes in the EmPack Embedded Code
The embedded code no longer attempts to initialize the SC4000 chip used to E1 and T1 connections during reset. When this was done prior to the host configuring the Empack's TDM clock, the initialization would fail causing the embedded code to have to time out. This, in turn caused empack accesses to either be delayed or even hang the host if attempted during the first 10-15 seconds after power-on or reset.
Modified Empack Support Programs
This program is modified to include the hardware revision number of each mezzanine found.
emflash
This program has two new command line options. The -l option has the program display the versions of the objects currently stored in the flash. These flash objects include the front-end and back-end embedded code and the FPGA configuration data. The -L option does the same thing but it includes the versions of the OEM code and FPGA configurations which are used for initial configuration and boot-strapping Empacks by the manufacturer. Using either of these options performs the version report only and disables the other functionality of emflash.emflash is also modified to restart the Empack embedded code when the FPGA configuration data is updated but the code is not. This causes the FPGA's to be reconfigured with the new data. Previous versions of the program would only restart the embedded code if the code was updated.
New and Modified Empack Diagnostic Programs
The following diagnostic programs have been added or modified in this software release. Please review the updated Utility and Diagnostic Manual for more information about these and other diagnostic programs.
emdiag
This new diagnostic allow provides an interactive and automated "shell" for specifying Empack interface connections and running selected diagnostic programs.emc12warningThe program first determines and reports the Empacks and mezzanines found on the system. It then asks the user a series of questions to describe the SCSA connections and loop-back connections for E1, T1 and audio interfaces.
Once the hardware and connection configuration has been determined, the user is asked which Empacks and subsystems to test and/or which specific diagnostic programs to run. The user may elect to run all relevant diagnostic programs.
A detailed report of the diagnostics is written to a log file and a summary of the results is provided at the end of the tests.
The program may be used to create a configuration file which specifies the Empack and mezzanine hardware that should be present, the SCSA connections and external loop-back connections, and what Empacks, subsystems and specific diagnostics to test.
When run later and told to read a saved configuration file, emdiag compares the installed hardware with the configuration specified in the file and runs the tests as specified in the file.
This new program is not technically a diagnostic program but is used in conjunction with diagnostics that are to be run on systems that may be in use.emroundmem and eme1t1loopUse this program prior to running the diagnostics to send a pre-recorded warning message to anyone who may be listening to the EMC12 audio outputs. The message is repeated several times at increasing output levels.
These two programs have a new -i option used to specify that the test should terminate after a specified number of cycles. This option was added primarily to support the new emdiag program.emfftFor emroundmem the parameter given with -i refers to the number of DSP memory test iterations. For eme1t1loop the parameter given with -i refers to the number of E1 or T1 frames processed.
emroundmem is also modified to detect if a DSP memory test is stopped or TDM messages stopped.
Bugs were fixed having to do with using two different EMC12 modules in the test. The peak-noise error threshold was increased for portions of the test using low signal levels. Some error report codes and explanations were incorrect and have been fixed.emchip
Some error messages were fixed that were missing new-line characters.emtim, emscsaloop and emchan
These three diagnostics have a new -T command line option to have the programs create a trace file in the current working directory. This file is named "trace" and contains reports of any API errors that occur.The programs used to create this file by default but now will only do so if given the -T option.
The emchan program is modified to change its -R and -T command line options to -r and -t, respectively.