May 8, 2000
Overview
Release 3.3.3 of the EmPack software includes Version 3.3.3 of the host
libraries and Version 3.3.5 of the Embedded Firmware and FPGA configurations.
The following changes are introduced in this release:
Note:
This release includes new emedded code and FPGA configurations. Customers
should run emflash after installation to recieve the full benefit
of this update. Customers with DM12C549 modules types on EMPCI mezzanines
must also run empciflash to update the configuration stored in the
mezzanine's flash memory.
See the
EmPack Utility and Diagnostic Programs manual for complete information
about utility and diagnostic programs mentioned here.
Additions and Fixes to the EmPack Host API
Bug Fixes:
-
EmInitParams: fixed handling of EM_T1_RESET flag.
-
Channelization Functions:
- fill character insertion may now be stopped without closing channel.
- improved use of locks.
-
EmOpenChan/EmCloseChan: fixed slot allocation bug in all bond and no bond modes.
-
EmOpenChan: Properly returns an error if channel service is in read only mode
and an open for write is attempted.
-
EmStopChannelService:
- fixed possible hang if channel service thread does not exit cleanly.
- no longer frees resources allocated by EmInitChannelService (see
EmDestroyChannelService below) allowing the channel service to be
stopped and restarted while keeping channels open.
-
EmSynchronizeChannel: Ensures all channels are on same framer.
-
EmInitParams: Fixed bug clearing EM_E1_RCV_CRC4 mode.
New Functionality:
-
EmInitParams: Changed E1 framer parameter defaults:
- EBITS is off.
- Receive HDB3 is on.
- LOTCMC is on.
-
EmInitChannelService:
- preallocates all buffers and CHANNEL structures in locked memory to
improve performance.
- supports multiple calls to change modes (implicitly closes all open
channels).
- ensures all buffers are suitably aligned for DMA to improve performance.
- Framer-type-specific channel modes are depricated in favor of generic modes:
| Old E1 Mode | Old T1 Mode | New Mode |
| EM_CHAN_E1_ALL_BOND |
EM_CHAN_T1_ALL_BOND |
EM_CHAN_ALL_BOND |
| EM_CHAN_E1_ANY_BOND |
EM_CHAN_T1_ANY_BOND |
EM_CHAN_ANY_BOND |
| EM_CHAN_E1_NO_BOND |
EM_CHAN_T1_NO_BOND |
EM_CHAN_NO_BOND |
| EM_CHAN_E1_ONE_SLOT |
EM_CHAN_T1_ONE_SLOT |
EM_CHAN_ONE_SLOT |
The macros for the old modes still exist but are defined to be equal to the
new mode. This should not require changes to exisiting source code unless the
application checks the channel mode to differentiate between E1 and T1 modes.
In this case the resource type should be checked instead. New applications
should use the new macros.
-
EmDestroyChannelService: Frees resources allocated by
EmInitChannelService (previously done in EmStopChannelService).
This allows the user to start and stop the channel service as necessary without
needing to reinitialize.
-
EmSetChannelFillChar: Allows channel fill character usage to be controlled
independently of EmWriteChannel calls.
-
EmChannelScatterGather: Used to read/write multiple channels in a single
library call. This may be used to ensure that multiple channels remain
synchronized or to reduce/eliminate the need for explicit multithreading in
simple multi-channel applications.
-
Channel Read/Write Functions: May now be called with a NULL
BytesRead/BytesWritten pointer.
-
Added extern "C" wrapper around declarations in emapi.h for use with
C++ applications.
Solaris Device Driver:
Several changes to the Solaris device driver build process were made to
reduce the number of files distributed and to support building on Solaris 2.5.1
systems. No functional changes were made to the driver itself:
- Removed add_driver.csh script (functionality absorbed into makefile).
- Removed makemap.csh script (functionality absorbed into makefile).
- Removed remshm.c (not needed in cutomer applications).
- Changes to declarations and type casts to build under Solaris 2.5.1.
New Revision of Em6x32C DSP module
Several changes were made to the host library and embedded code to support a
new revision of the Em6x32C DSP module. The Em6x32C Rev 2 offers
reduced power consumption and improved reliability at a cost savings over the
older Em6x32C revisions.
New and Modified EmPack Utility Programs
The emfind utility now displays serial numbers for mini-PCI modules.
Added support for the new revision Em6x32C module to
emserial, EmWinSerial, and EmWinFlash.
Added support for Soft ID feature to to emsetscsi (use -t option to
set SCSI ID or revert to switch/jumper setting).
New and Modified EmPack Diagnostic Programs
The embasediag diagnostic now uses the EmInitParams function.
A new diagnostic reporting utility, embuildtime has been added. This
utility reports the compilation timestamp for the embedded code modules. This
information may be requested by CAC technical support to help diagnose customer
issues.
The emburn diagnostic has new options including -T, -f,
-X, -d, and -D. A bug in the -S (no SCSA) option
is fixed. The DM12C549 and DM4C51 mini-PCI modules are now supported for
eme1t1loop and emroundmem tests.
The emchan diagnostic now has a -q switch to run in quiet mode
and has improved error messages. It also uses the new channel service mode
flags (see new functionality for
EmInitChannelService).
The eme1t1loop diagnostic now sets the idle code for T1 loopback tests
and dumps framer register contents if an error occurs. Bugs in DM4C51 support
are fixed. Error messages are improved. New options include -D,
-g, and -d.
The emroundmem diagnostic has improved error messages.
New and Modified EmPack Demonstration Programs
Updated eme1raw, eme1xmtraw, and emrec to use the new
channel service mode flags. (see new functionality for
EmInitChannelService).