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 for algorithms
implementing the IDMA3 interface.
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.ecpy - High-Performance Functional
DMA Interface and Common Library for EDMA3-based devices for algorithms
implementing the IRES EDMA3CHAN2 interface.
ti.sdo.fc.memutils - Utilities for managing Cache and
to obtain Physical addresses for algorithms that need to program
accelarators.
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).
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.
Some distributions of this product include an "fctools" directory
containing some dependent products for convenience. Products included in this release are:
XDAIS 7.21.00.02
IPC 1.23.01.26
OSAL 1.21.01.08
EDMA3 Resource Manager 02.11.02.04 (from the EDMA3 Low Level Driver product available here ).
The following significant changes have been made since 1.00
3.21.03.34
The following defects were resolved:
ID
Headline
The following enhancements were resolved:
ID
Headline
SDOCM00086217
Add makefile to build Linux ARM libraries without XDC tools
3.21.02.32
The following defects were resolved:
ID
Headline
SDOCM00084278
ECPY doesn't support a 3d transfer in the last link of a set of linked transfers
The following enhancements were resolved:
ID
Headline
SDOCM00084373
Enable 3Ps (e.g. SDKs) to clean/rebuild/redistribute a subset of the FC libraries
3.21.01.26
The following defects were resolved:
ID
Headline
SDOCM00083400
DMAN3 with useExternalRM set to true, causing symbol redefinition error.
The following enhancements were resolved:
ID
Headline
3.21.00.25
The following defects were resolved:
ID
Headline
SDOCM00057313
Memory leak in DSKT2
SDOCM00046359
Issues with supporting multiple IRES/IRESMAN versions of the same resource manage with RMAN
SDOCM00060773
Issue with DMAN3 (and ACPY3) if Param 0 is used by a non-DMAN3 user and QDMA channels are in their default state
SDOCM00076054
ecpy trace missing ccnt information
SDOCM00083206
fc/utils/api/alg_malloc has wrong order of arguments for the memAlign function.
The following enhancements were resolved:
ID
Headline
SDOCM00082850
Provide makefiles to rebuild Linux-side libraries without XDC dependency
SDOCM00046390
RMAN should support request for resources from non-algorithms
SDOCM00080292
Lite-edma3chan for use for small data memory platforms such as Arctic.
3.20.00.22
New features
IRES EDMA3CHAN enhanced with new IRES EDMA3CHAN2 Object type to support new DMA functional library.
Added ECPY, a new DMA functional library for performing EDMA-based DMA transfers. Uses enhancements in IRES EDMA3CHAN2 interface to support APIs that can help prevent MDMA/SDMA deadlock bug through clever scheduling of transfers on different Transfer controllers
Updated Dependencies
SYS/BIOS 6.30
OSAL 1.20
XDC 3.20
EDMA3LLD 2.10.04.01
The following defects were resolved:
ID
Headline
SDOCM00066872
FC IRES Tiler allocated wrong buffer size to codec internal buffer
The following enhancements were resolved:
ID
Headline
SDOCM00046898
DSKT2 should be configurable to disable lazy-deactivation
SDOCM00066466
RcmServer thread pool for out-of-band message processing
3.00
New features
Added IRES HDVICP2 and IRES TILER Beta interfaces
EDMA3 LLD support was REMOVED in this release.
Updated Dependencies
SYS/BIOS 6.21
OSAL 1.00
XDC 3.16.01
The following defects were resolved:
ID
Headline
SDOCM00046136
DMAN3 create channels calls fail if IDMA3 interface returns '0' for numChannels
SDOCM00064304
SCPY has incorrect licenses in some files
The following enhancements were resolved:
ID
Headline
SDOCM00061313
IRES HDVICP2 resource should have support for plugging in an external scheduler
SDOCM00056474
IRES HDVICP2 late acquire/release APIs need an efficient way of saving/restoring HDVICP2 context
SDOCM00046268
ACPY3 support needed for devices that does not support GEM IDMA or Internal Memory
SDOCM00060861
Enable auto register for ires.tiledmemory and ires.hdvicp.HDVICP2
SDOCM00051671
DMAN3 does not have cpu copy configuration parameter
2.25.00.04
Updated Dependencies
Updated to LinuxUtils 2.25
Updated to EDMA3 LLD 1.11.00.02
The following defects were resolved:
ID
Headline
SDOCM00062645
FC addrspace and memtcm fails to link with DVTb at configuro stage
SDOCM00057990
DMAN3's package.xs:validate function crashes if built for an unsupported target (should simply return NULL)
SDOCM00061534
ti.sdo.fc.utils.gtinfra pkg needs to ship gt_dais.h header
SDOCM00063576
ti.sdo.ce.alg's package.xs always plugs in Sem_* functions for RMAN, MP use-cases would need SemMP_* functions.
SDOCM00060500
DMAN3.useExternalRM has an issue when used within a CE + BIOS context
The following enhancements were resolved:
ID
Headline
SDOCM00060272
Add/validate support for OMAP-L138 for ACPY3, DMAN3, DSKT2
SDOCM00061271
Means to release and reacquire scratch group locks in the middle of a "process()" call using IRES Handles
SDOCM00061269
Add IRES_LATEACQUIRE support for EDMA3, VICP, HDVICP resources
SDOCM00060307
Add support for access to multiple EDMA3 devices in FC (For Freon etc)
2.24
New features
WinCE support
Updated Dependencies
Updated to LinuxUtils 2.24.01
Updated to XDAIS 6.24
The following defects were resolved:
ID
Headline
SDOCM00055647
Clean up FC's package dependencies
SDOCM00055687
ti.sdo.fc.ires.edma3chan doesn't declare its depedency on the ti.sdo.fc.edma3.Settings module
SDOCM00056099
Template-generated RMAN and DMAN3 fxns generate remarks
SDOCM00056368
RMAN_assignResources() returns success when underlying IRESMGR_ indicates resource allocation failure
SDOCM00057717
IRES VICP2 (smgr) gives error granting resources
SDOCM00057720
Multiple Deletion Creation sequence of MPEG4 encoder results in failure in Framework Components resource allocation
SDOCM00057723
_vicpsync.h missing from product
SDOCM00058267
EDMA3 Resource Manager overshoots the maximum limit when multiple encoders are created and deleted
The following enhancements were resolved:
ID
Headline
2.23
New features
RMAN auto-register/unregister feature for XDC cfg built executables
that use RMAN.
Updated Dependencies
Updated to LinuxUtils 2.23
Updated to XDAIS 6.23
The following defects were resolved:
ID
Headline
SDOCM00046548
All example codecs should pass qualiTI
SDOCM00053331
RMAN fails to allocate multiple HDVICP resource requests on Linux builds.
SDOCM00053484
DMAN3 example fcpy lib build failure in CCS
SDOCM00054062
fastcopytest.pjt should include EDMA3_LLD_INSTALL_DIR explicity in the pjt's build options
SDOCM00055054
RMAN_assignResources in the VISA_create call through DVTB fails when the engine instance is closed and opened once again
SDOCM00055397
Framework Components fastcopy example cleanup for new OMAPL137 platform
The following enhancements were resolved:
ID
Headline
SDOCM00046397
Enhance FC resource managers to autogenerate RMAN_register() calls
SDOCM00053546
Change EDMA3_LLD location var to EDMA3_LLD_INSTALL_DIR in examples/Makefile
SDOCM00053802
DMAN3 doesn't check if number of TCCs is correct as per the SOC's cccfg register
2.22
New features
IRES EDMA3CHAN supported for DM355, DM365 target
IRES VICP supported for DM365 target
IRES HDVICP supported for DM365 target
HDVICPSYNC module supports synchronization between algorithms and
HDVICP coprocessor usage
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.
Note, if you're upgrading from a release earlier than Framework Components 3.20, be
sure to review the Upgrade section for each of the releases between
your current Codec Engine release and this one. Previous release notes are
available in the relnotes_archive directory.
The following packages that were in the previous release have been removed
from this release.
Package
Compatibility key
khronos.opencl
1, 0, 0
If migrating from a release prior to FC 3.21, 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.
single-processor ARM device, running Linux (All except DSKT2 and ACPY3)
C64+ simulators, single processor configuration:
C64+ DSP/BIOS
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_nullPaRam, _DMAN3_edma3Addr and _DMAN3_paRamAddr (_DMAN3_paRamAddr for non-C64P targets) symbols in their application "C"
files
This release was built and validated against using the following software
components. Please use the versions below or any other that are compatible with the below:
XDAIS 7.21.00.02
Linux Utils 3.21.00.04
IPC 1.23.01.26
OSAL 1.21.01.08
XDCtools 3.22.01.21
DSP/BIOS 6.32.02.39
EDMA3 Resource Manager 02.11.02.04
Pre-built binaries were built with the following toolchains:
gnu.targets.Linux86 - 4.1.0
gnu.targets.UCArm9 - 4.2.1
gnu.targets.arm.GCArmv5T - 4.2.0
ti.targets.C64P - 7.0.0
ti.targets.C674 - 7.0.0
ti.targets.arm.elf.A8F - 4.9.0
ti.targets.arm.elf.M3 - 4.9.0
ti.targets.elf.C64P - 7.2.0
ti.targets.elf.C64T - 7.2.0
ti.targets.elf.C674 - 7.2.0
ti.targets.elf.arp32.ARP32 - 1.0.0
This release was validated using the following hardware platforms:
For the TI816X platform, there are issues when performing internal memory
transfers using DMA on the C674. The internal memory addresses seem to be
wrongly interpreted when the Channel Controller queue priorities (or the QUEPRI register)
are set to either 3 or 7. When using DMAN3 or the ti.sdo.fc.edma3.Settings
module, make sure you configure priorities to be something other than 3 or 7.
ECPY
ECPY, the APIs for thew new function library for performing DMA
transfers using the IRES EDMA3CHAN2 handle are "experimental".
New APIs/features will likely be added in upcoming releases/patches.
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.
EDMA3
The level of support for devices that have multiple EDMA3 hardware
instances is limited. For e.g, Freon and Primus devices have 2 EDMA3
hardware instances, the dma related modules of Framework Components
let you configure/access only one of those devices at a time. No
support is available, as yet, for concurrent management/access to mutiple
EDMA3 Transfer Controllers.
When using the low level driver (EDMA3LLD 1.11.00.02) via DMAN3 or IRES
EDMA3CHAN interface, sometimes, requesting more contiguous PaRams than are
available on the hardware (or with the resource manager), causes an assert
to go off in the EDMA3LLD.
Track CQ:- SDOCM00063765
DMAN3
In DMAN3, when using the DMAN3_createChannels API with the useExternalRM
mode set for DMAN3's config, multiple calls will result in discreet
resources being granted even though each call has the same scratch group.
This issue is not present when not using External Resource Manager.
Track CQ:- SDOCM00063763
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_3_21_03_34.
Subsequent releases of patch upgrades will be identified by the patch
number, ex. FC 3.21.03.XX with directory framework_components_3_21_03_XX.
Typically, these patches only include critical bug fixes.