March 8, 2006
Overview
Items Specific to LightParser:
Items Specific to LightParser2:
Items Specific to DPL3:
General Items:
LightParser: Modified Handling of Status Errors in the cac_if_set_rx_mode Function
Previously, this flag only meant that the function would ignore loss of lock or signal when checking status prior to setting the configuration modes but it would return an error if there were errors after the modes were set.
LightParser: Fixed Problem with Clearing Simulation Modes
LightParser2: New and Fixed Optical Port Status and Interrupts
The framer and payload aligner status is now implemented in the FPGA and the lp2_portstat program. In addition, new latched status information is available for the CDR and SFP components of the optical ports. The latched status bits remain set until cleared by writing to the register with the bits to be cleared set to 1 in the data written. A new function, cac_if_clr_status is provided in the API for this purpose.
New FAS error monitoring is implemented similar to the B1 and B2 error rate monitor. Logic in the FPGA counts the number of FAS errors and frames. Their values can be read and cleared using the API functions, cac_get_faserr and cac_clr_faserr.
The lp2_portstat program is modified to support the new status information. Modifications to the lp2_portstat program include:
New host interrupt sources are added to provide notification of optical port status events. The FPGA provides separate interrupts for the two optical ports. For each port there is a mask register to specify which of the latched port status events are eligible to generate a host interrupt. The new cac_if_irq_enable function provides the ability to set and read the port interrupt mask and enable notification of an interrupt via software signal.
LightParser2: Improvements to the PCI Interface
The PCI master logic now supports read access, allowing DMA transfers from the host. This is a preliminary step toward supporting transmit channels.
LightParser2: Reorganization of Host Control Memory Regions
The I/O port registers are rearranged to provide for more consistent expansion as feature implementations are added to the design. The division between level 1 and higher level channel descriptors is moved to allow for more level 1 streams (E1, DS1, etc) as those streams are supported. The number of buffer page table entries is reduced to make the FPGA resources available for other purposes. There are still enough entries to handle up to a total of 2 gigabytes for channel buffers.
LightParser2: Initial Support for Packet Mode Channels
Currently, the only use of the packet channels is the test and demonstration logic in the FPGA. It is used by the new lp2_pktest demonstration program and the lp2_queuetest program includes a command to test the flush queue entries.
DPL3: Minor Modifications to the dpl_framercfg Program
Modifications to the API Headers and Function Library
The cac_format_decimal_32 function converts numbers represented in 32 bits (eg uint_32) and cac_format_decimal_64 converts numbers represented in 64 bits (eg uint64_t). Both functions are passed a pointer to a character, to which the converted string is written, and a size to specify how many bytes are available in the array.
Renamed Interrupt Mask / Status Macros:
Renamed error code macro:
Work-around in LightParser2 I2C Functions::
The lp2_flashup program can now use the -N option in conjunction with e-u option to update an existing directory entry with a new FPGA type.
The dplp_chantest program is modified to support gapped payload stream ID numbering for raw E1 and DS1 streams.
The lp2_memtest program now allows burst transfer mode for the MMC buffer region.
The lp2_dmatest program is modified to support the DMA transfers to the host (from the board) and does so by default.
The lp2_vtmon program has a new display format and checks readings against user-settable voltage tolerance and maximum temperatures. It also has a new option to blink the LEDs for visual testing.
The dpl_alloctest, dplp_alloctest and lp2_alloctest programs are modified to support limited readline capability. Command line editing and history is supported but the programs do not save command history across sessions.
Updates to Software Configuration and Installation
For 64-bit Solaris only the device driver is compiled as 64-bit code. If it is desired to compile the API and applications as 64-bit code on 64-bit Solaris platforms, the CFLAGS environment variable must be set to specify the appropriate compiler flags to over-ride the defaults.
These 64-bit compilation issues are described in the 64-bit compatibility section of the installation instructions which are available on the CDROM or the CAC website.
The software configuration option for Linux or Solaris to specify using the readline library installed on the system is changed. The new command line argument to the configure script for this option is --with-readline=system.
Component Versions for This Release
The API and device driver components have the same major and minor version numbers. Similarly, the "HW Support" versions have the same major and minor version numbers as the corresponding FPGA or FPGA type. However the update version number of each component may vary depending on the number of changes and iterations each component has gone through between general distribution releases.
The component versions for Software Release 0.8.1 are:
| Software Components | Version | ||
| API Library and Programs | 0.8.1 | ||
| Solaris Device Driver | 0.8.1 | ||
| Linux Device Driver | 0.8.1 | ||
| Hardware Components | FPGA Version | Support Version | |
| LightParser Spartan FPGA Configuration | 0.7.1 | 0.7.1 | |
| LightParser Virtex FPGA Configurations | |||
| Standard SDH/PDH variation | 0.7.0 | 0.7.0 | |
| ATM variation | 0.7.3 | 0.7.3 | |
| SDH/PDH Transmit variation | n/a | n/a | |
| LightParser2 Virtex FPGA Configurations | |||
| Standard SDH variation | 0.2.1 | 0.2.1 | |
| LightParser2 Boot FPGA Configuration | 0.0.1 | 0.0.1 | |
| DPL3 Main FPGA Configuration | 0.7.3 | 0.7.3 | |
| DPL3 Expansion FPGA Configurations | |||
| E3 G751 E1 variation | 0.7.2 | 0.7.2 | |
| DS3 T1 variation | 0.7.2 | 0.7.2 | |
| E3 G832 Bulk variation | 0.7.0 | 0.7.0 | |
| Generic variation | 0.7.1 | 0.7.3 |
NDFs, announced and unannounced, are not properly handled in TU-12s. This problem is resolved in an experimental, pre-release FPGA configuration, version f.28, included in the distribution. To load this configuration run the dplp_flashup program as shown below:dplp_flashup -uv -xf dplp0Data corruption has been reported when recording raw, descrambled STM-1 signals that include AU3s.
Using the clock extracted from the electrical (CMI) port in STM-1 mode causes some data corruption. Work-around is to use the local clock reference when receiving electrical STM-1.
The ATM version of the Virtex is not able to frame DS3 streams from SDH streams. A work-around is to route the raw DS3 streams from SDH input through the Quad-T3 port, loop the signal back in and frame the DS3s from the Quad-T3 input.
Detection of ATM client channel overflow (pointers to the bulk ATM buffer that are no longer valid) is not yet implemented in the ATM service of the device driver.
The command fifo for PCI-to-SDRAM transfers is susceptible to overflows during high-rate transfers. In addition PCI-to-SDRAM writes can interfered with DMA transfers. These problems are being investigated and the host interface to SDRAM is currently only used for diagnostic purposes.
ESF framing is not yet supported for transmitting DS1 streams multiplexed to the output DS3 signal.Possible failure of framing logic for embedded E1 or DS1 streams after configuration of Expansion FPGA. See the discussion of this topic for details.
The device driver for DPL3, LightParser and LightParser2 boards does not work on the Intel variant of Solaris 10. The problem involves allocating DMA memory for channel buffers.Solaris is currently supported on Intel platforms up through Solaris 9. Solaris 10 is supported on Sparc platforms.