Framework Components 2.21 Release Notes
November 2008
Introduction,
Documentation,
What's New,
Upgrade Info,
Compatibility Information,
Validation Info,
Known Issues,
Device Support,
Examples,
Version Information,
Technical Support.
The Framework Components are a collection of framework-independent utility
libraries which other software frameworks can build upon.
Primary packages in this Framework Components release are briefly described here.
(There are others, see the Configuration Reference
Guide documentation for a complete package list.)
-
ti.sdo.fc.dskt2 - xDAIS utility library for
instantiating xDAIS algorithms, and managing their memory resources.
-
ti.sdo.fc.dman3 - DMA Manager library (EDMA3
specific). A library for managing DMA hardware resources for xDAIS
algorithms. This includes the IDMA3 interface (EDMA3 specific),
which xDAIS algorithms must implement to enable DMAN3 to manage their
DMA resources.
-
ti.sdo.fc.acpy3 - High-Performance Functional
DMA Interface and Common Library for EDMA3-based devices.
-
ti.sdo.fc.rman - Resource Manager for
IRES-implementing xDAIS algorithms.
-
ti.sdo.fc.scpy - Functional library for
IRES-SDMA implementing xDAIS algorithms to perform SDMA transfers.
-
ti.sdo.fc.memutils - Utilities for managing Cache and
to obtain Physical addresses for algorithms that need to program
accelarators.
-
ti.sdo.fc.vicpsync - APIs for synchronization between
codecs and VICP coprocessor usage on the DM355.
-
ti.sdo.fc.hdintc - APIs for registeration of non-BIOS,
non-dispatched interrupt service handles to synchronize with HDVICP
interrupts on the DM6467.
-
ti.sdo.fc.utils - Utilities which frameworks
can built upon, including Design By Contract (DBC)
and Debug tracing tools (DBG).
-
ti.sdo.utils.trace - Tracing utility functions
(GT).
The Framework Components are provided as non-rebuildable libraries. Source is
provided for debugging and educational value, but is not intended to be
modified. Modified sources will not be supported.
Additionally, some distributions of this release include an "fctools" directory
containing some dependent products for convenience. Products included in this release are:
- xDAIS 6.21
- EDMA3 Resource Manager 1.05.00 (from the EDMA3 Low Level Driver
product).
- LinuxUtils 2.21
The following documentation is available:
In addition, users are encouraged to monitor (and contribute to!) the
Framework Components content on the
TI eXpressDSP Software Wiki.
Release notes from previous releases are also available in the relnotes_archive directory.
The following significant changes have been made since 1.00
2.21 (This Release)
- New features
- IRES VICP supported for DM355 target
- Memutils module supports cache-related APIs and virt-to-phys mapping
- VICPSYNC module supports synchronization between algorithms and
VICP coprocessor usage
- Updated Dependencies
- Updated to LinuxUtils 2.21
- The following defects were resolved:
ID |
Headline |
SDOCM00046122 |
DMAN3 documentation needs more clarification of nullPaRamIndex |
- The following enhancements were resolved:
ID |
Headline |
SDOCM00046363 |
IRESMAN for managing IMCOP memories |
SDOCM00046378 |
rman examples need more support when building with xdc |
SDOCM00046050 |
Need to expose PSC addresses in the VICP handles to enable
codec access |
2.20.01
- New features
- Removed features
- Updated Dependencies
- The following defects were resolved:
ID |
Headline |
SDOCM00027568 |
HDINTC module doesn't return correct release libraries when used
with xdc |
SDOCM00027997 |
GT trace issue in the ires modules |
- The following enhancements were resolved:
ID |
Headline |
SDOCM00027617 |
Expose more SDMA related modes in scpy.h |
2.20
- New features
- Updated uClibc toolchain
- RMAN support for ARM targets
- New configuration option on DMAN3 allows resource management to be
handled by the EDMA3 Low Level Resource manager (BIOS-based
environments only)
- Support for OMAP3 devices
- Functional library and resource management for SDMA channels on
OMAP3
- Removed features
- Removed support for C55-based devices
- Updated Dependencies
- Updated to LinuxUtils 2.20
- Updated to XDC 3.10
- Updated to XDAIS 6.20
- Updated to BIOS 5.32.02
- Updated to EDMA3 LLD 1.05.00
- The following defects were resolved:
ID |
Headline |
SDSCM00019578 |
DMAN3 should support the persistent property in IDMA3 requests |
SDSCM00024229 |
DSKT2 scratch and persistent alloc/free functions not exposed in the
DSKT2 public headers |
SDSCM00025464 |
Some ACPY3 functions give out garbage trace even if GT_set is not
called |
SDSCM00025628 |
RMAN examples missing common.cfg file |
SDSCM00025631 |
RMAN examples need build instructions |
- The following enhancements were resolved:
ID |
Headline |
SDSCM00025515 |
HDINTC module hard codes Interrupt and Event number for the
BIOS-ISR |
SDSCM00025744 |
RMAN on ARM should support multi-process
|
SDSCM00025399 |
DMAN3 (and ACPY3) should have configuration for CPU copy
|
SDSCM00024890 |
Standardize lib directory for all FC libraries
|
2.10
- New features
- C64+ libraries built with CG 6.0.16
- Support for DM6467
- Introduced DSKT2 APIs for querying alg instance memory usage
at runtime
- Introduced IRES/RMAN app note (see documentation section above)
- Updated Dependencies
- EDMA3 Resource Manager 1.04.00
- The following defects were resolved:
ID |
Headline |
SDSCM00021022 |
In FC examples api.a64P should be picked up from FC not the CCS install |
- The following enhancements were resolved:
ID |
Headline |
SDSCM00015973 |
DMAN3's config parameter validation is required |
SDSCM00020192 |
DSKT2 debug builds should assert that algs that request IALG_SCRATCH implement algActivate()/algDeactivate() |
2.00
- New features
- Added ARM-based Linux support to DMAN3. This implementation
currently requires the Codec Engine to be configured into
the ARM-based Linux system.
- Initial RMAN implementation - supporting the new xDAIS IRES
interface.
- Introduced DSKT2_createAlgExt() to create algorithms
and provide external memory to them regardless of the memory they
asked for.
- Significant tracing rearchitecture. Many packages now include a
.trace config param which, when set to true, enables tracing
support.
- Updated Dependencies
- Updated to xDAIS 6.00
- Updated to XDC 3.00
- EDMA3 Resource Manager 1.01.00.01
- The following defects were resolved:
ID |
Headline |
SDSCM00015980 |
DMAN3's XDC config support fails when configuring
.scratchAllocFxn |
SDSCM00016134 |
ACPY3 build with ACPY3_INLINE_ALL flag gives build errors |
SDSCM00017450 |
DSKT2 can fail to correctly provide external scratch memory
to algorithms |
SDSCM00018734 |
DMAN3_grantDmaChannels() crashes in case of allocation
failures |
- The following enhancements were resolved:
ID |
Headline |
SDSCM00020198 |
DMAN3 should have the option of returning an error if alg requests
more resources than configured for its scratch group |
1.20
- C64+ libraries built with CG 6.0.8
- Updated fctools to xDAIS 5.20 release
- ACPY3_complete() inline support added.
- fastcopy example cleanup
- And the following MRs were resolved:
ID |
Headline |
SDSCM00002823 |
Remove dependency on BIOS types |
SDSCM00012024 |
DSKT2 User Guide documentation collateral should be provided for
Framework Components |
SDSCM00013086 |
FC DMAN3 example builds have poor out of box experience |
SDSCM00013781 |
Require instrumentation in ACPY3 library to support
DGT logging or any other kind of generic logging |
SDSCM00014395 |
DSKT2 scratch memory allocation & sharing is not optimal when
alignment is required |
SDSCM00014454 |
Hardlimit of DMAN3_MAXDMARECS to 32 not required in the dman3
library. Should be removed as a config option for DMAN3 |
SDSCM00014931 |
DMAN3_createChannels(), DMAN3_grantDMAChannels() memory overwrite
for non-ACPY3 channels |
1.10
- All libraries are built with CG 6.0.7
- Updated fctools to xDAIS 5.10 release
- And the following MRs were resolved:
ID |
Headline |
SDSCM00013041 |
ACPY3 susceptible to SDSCM00012367 (Silicon Errata) |
SDSCM00006288 |
Need to update the Joule DMA design guide |
SDSCM00012532 |
Source code does not line up when stepping through
debug libraries |
SDSCM00012770 |
ACPY3 specification changes are needed for
clarification and to match design and implementation changes |
SDSCM00012773 |
DMAN3 RTSC Configuration requires custom non-public
initialization call to configure DMAN3 heaps |
1.03
- All libraries are built with CG6x 6.0.5
1.02
- OMAPS00082651 - Allow IDMA3 channel env to be allocated in DSKT2
scratch memory
- Also tracked as SDSCM00005723 - FC ACPY3 needs to support scratch
environment memory for IDMA3 channel objects
- SDSCM00010132 - ACPY3 Changes Needed for Interoperability with Codecs
using QDMA Library
- SDSCM00010205 - DMAN3 uses wrong QCHMAP offsets
1.01
- OMAPS00081737 - Race condition can happen in DSKT2_freeAlg
- Also tracked as SDSCM00007366 - DSKT2_freeAlg and lazy
deactivate race condition
- OMAPS00079468 - ACPY3_activate causing DMA transfer when built
with -o3
- OMAPS00078941 - ACPY3_wait() inline version not inlining
- OMAPS00078784 - DSKT2 needs an API to deactivate all algs that have
been lazily deactivated
- Also tracked as SDSCM00006538 - DSKT2's lazy deactivate can cause
problems when power management is introduced
- This was satisfied with the introduction of
DSKT2_deactivateAll()
- OMAPS00079710 - DSKT2 should not try to deactivate an codec instance
that does not provide algDeactivate()
- OMAPS00076836 - DSKT2 can introduce some cache coherence issues
- Also tracked as SDSCM00005847 - DSKT2 doesn't BCACHE_flush
MEM_calloc initialized external, persistant data
- OMAPS00074261 - Support Visual Studio builds of dman3 and acpy3
libraries
- OMAPS00074262 - Fix CPU copy version of ACPY3 library
- Added DSKT2 documentation to the configuration reference guide
The Framework Components packages are available in the "packages/"
subdirectory of the product. If you have a previous release of the
Framework Components product, you can install this release next to it, and
modify your application and/or server builds to use this newer release.
If you're using the DVEVM, this can be done by setting the
FC_INSTALL_DIR variable in the Rules.make file at the
top of the DVEVM distribution directory.
This release supports the following devices:
- DM6446 EVM:
- single-processor C64+ device, running DSP/BIOS
- single-processor ARM9 device, running Linux (All except DSKT2 and ACPY3)
- DM6467 EVM:
- single-processor C64+ device, running DSP/BIOS
- single-processor ARM9 device, running Linux (All except DSKT2 and ACPY3)
- DM6437 EVM:
- single-processor C64+ device, running DSP/BIOS
- DM647/8 EVM:
- single-processor C64+ device, running DSP/BIOS
- DM355 EVM:
- single-processor ARM9 device, running Linux (All except DSKT2, ACPY3
and IRES EDMA3CHAN)
- OMAP2430 SDP:
- single-processor DSP-only configuration, running DSP/BIOS
- OMAP3430 SDP:
- single-processor, DSP-only configuration, running DSP/BIOS
- C64+ simulators, single processor configuration:
DMAN3 and ACPY3 can be configured to run on other EDMA3-based devices
by configuring DMAN3.qdmaPaRamBase via XDC config scripts or
at runtime by setting DMAN3_PARAMS.qdmaPaRamBase.
Applications which use ACPY3 but don't consume DMAN3 as an XDC package
will need to define _DMAN3_nullPaRam, _DMAN3_edma3Addr and _DMAN3_paRamAddr (_DMAN3_paRamAddr for non-C64P targets) symbols in their application "C"
files
The details provided below describe each package's compatibility with the
previous release (2.20).
Note, the Configuration Reference Guide contains
further details about each package.