Framework Components 2.00 Release Notes
October 2007
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.
This Framework Components release consists of the following packages:
-
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.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 libraries, without sources.
Additionally, some distributions of this release include an "fctools" directory
containing some dependent products for convenience. Products included in this release are:
- xDAIS 6.00
- EDMA3 Resource Manager 1.01.00.01 (from the EDMA3 Low Level Driver
product).
The following documentation is available:
-
Framework Components Reference Guide (HTML | CHM)
-
Configuration Reference Guide
-
Using DMA with Framework Components for 'C64x+ Application Note
-
DSKT2 User's Guide
Release notes from previous releases are also available in the relnotes_archive directory.
The following significant changes have been made since 1.00
2.00 (This Release)
- 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 (DMAN3 only)
- 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 (DMAN3 only)
- 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.
Additionally, when DMAN3 is not configured as an XDC package the
application must set the _DMAN3_EDMA3BASE in the linker cmd file
as shown in the DMAN3 fastcopytest example.
Applications which use ACPY3 but don't consume DMAN3 as an XDC package
will need to define DMAN3_EDMA3BASE symbol in their application linker
command file. For DM644x and 2430 this should be set as:
_DMAN3_EDMA3BASE = 0x01C00000;
An example of this usage is shown in
ti/sdo/fc/dman3/examples/davincisim_bios/fastcopytest.cmd
The details provided below describe each package's compatibility with the
previous release (1.20).
Note, the Configuration Reference Guide contains
further details about each package.
-
ti.sdo.fc.acpy2 - This package is compatible with the
previous release. (Compatibility key: 1,0,0,0 -> 1,0,0)
-
ti.sdo.fc.acpy3 - This package is compatible with the
previous release. Trace-enabled builds have been
added. (Compatibility key: 1,0,1,0 ->
1,0,2)
-
ti.sdo.fc.dman - This package is compatible with the
previous release. (Compatibility key: 1,0,0 -> 1,0,0)
-
ti.sdo.fc.dman3 - This package is compatible with the
previous release. ARM-Linux support and several config params
(including support for trace-enabled builds) have
been added. (Compatibility key: 1,0,2,0 ->
1,0,3)
-
ti.sdo.fc.dskt2 - This package is compatible with the
previous release. New APIs and trace-enabled builds have been added.
(Compatibility key: 1,0,2 ->
1,0,3)
-
ti.sdo.fc.utils - This package is compatible with the
previous release. (Compatibility key: 1,0,1,0 ->
1,0,1)
-
Compatibility with previous releases is not currently managed in
the examples.
The following packages are being introduced in this release, and therefore
have no compatibility with previous releases.
-
ti.sdo.fc.edma3 (Compatibility key:
1,0,0)
-
ti.sdo.fc.ires (Compatibility key:
1,0,0)
-
ti.sdo.fc.bufres (Compatibility key:
1,0,0)
-
ti.sdo.fc.edma3Chan (Compatibility key:
1,0,0)
-
ti.sdo.fc.nullresource (Compatibility key:
1,0,0)
-
ti.sdo.fc.vicp (Compatibility key:
1,0,0)
-
ti.sdo.fc.rman (Compatibility key:
1,0,0)
-
ti.sdo.fc.utils.gtinfra (Compatibility key:
1,0,0)
-
ti.sdo.utils.trace (Compatibility key:
1,0,0)
If migrating from a release prior to FC 1.20, consult previous
releases available in the relnotes_archive directory.
Compatibility Key Definitions
Compatibility keys are intentionally independent of Marketing product
numbers and are intended to:
- Enable tooling to identify incompatibilities between components,
and
- Convey a level of compatibility between different releases to
set end user expectations.
Compatibility keys are composed of 3 comma-delimited numbers - M,S,R
- where:
- M = Major. A difference in M indicates a break in
compatibility.
- S = Source. A difference in S indicates source
compability. That is, the user's source doesn't require change, but
does require rebuilding.
- R = Radix. A difference in R indicates an introduction
of new features, but compatibility with previous interfaces has not
broken. If libraries are provided by the package, an application
must re-link with the new libraries, but not rebuild from source.
This release was built and validated against using the following components:
- DSP/BIOS 5.31.08
- C6x Code Generation Tools version 6.0.8.
- C55 Code Generation Tools version 3.2.2.
- EDMA3 Resource Manager 1.01.00.01
C64+
- DM6446 EVM
- OMAP2430 SDP
- OMAP3430 SDP
- Limited sanity testing using CCS C64+ Simulator
C55
ARM 9 (DMAN3 only)
ACPY3
-
ACPY3 usage of IDMA0 does not provide any software workaround for
DaVinci silicon defect BTS_DAV_SIBUGS 75, titled:
"GEM IDMA can hang dependent on chip level implementation."
The defect only exists on Davinci Pg1.x silicon. (Fixed for
future Davinci Pg2.x, OMAP 2430 and 3430 silicon releases.)
There is no plan to address this issue in Framework Components.
-
3D DMA transfers using Joule CCNT > 1 (i.e. numFrames > 1) are
not supported. There is no plan to address this limitation.
Examples
-
The examples do not demonstrate enabling the new trace support. Tracing has
been explicitly disabled in the .pjt builds by setting the pre-processor
flags GT_ASSERT and GT_TRACE to 0 in the fastcopytest.pjt file.
Enabling trace requires these variables to be set to 1 AND
creating a variable of type GT_Config named "GT", and initialized
appropriately. In the absense of an appropriately configured variable,
if GT_ASSERT and/or GT_TRACE are set to 1, unexpected behavior will occur.
This will be addressed in a future release.
Framework Components examples and instructions are located in the
"examples" directory.
- Example Build Instructions
This product's version follows a version format, M.mm.pp.bb,
where M is a single digit Major number, mm is 2 digit
minor number, pp is a 2 digit patch number, and b is an
unrestricted set of digits used as an incrementing build counter.
To support multiple side-by-side installations of the product, the
product version is encoded in the top level directory,
ex. framework_components_2_00.
Subsequent releases of patch upgrades will be identified by the patch
number, ex. FC 2.00.01 with directory framework_components_2_00_01.
Typically, these patches only include critical bug fixes.
For technical support, contact softwaresupport@ti.com
Check the following web site for updates: https://www-a.ti.com/downloads/sds_support/targetcontent/FC/index.html
Last updated: October 17, 2007