Framework Components 1.01
This Framework Components release is specifically targetted to
Joule devices.
This release note is divided into the following sections:
General Info,
Whats_New,
Device Support,
Known Issues,
Directory Contents,
Validation Info,
Documentation.
The Framework Components are a collection of framework-independent utility
libraries which other software frameworks can build upon.
The current scope of this Framework Components release is only to support
Joule devices, although the charter of Framework Components doesn't limit it
to Joule.
The Framework Components 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 (Joule
specific). A library for managing DMA hardware resources for xDAIS
algorithms. This includes the IDMA3 interface (Joule 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 OMAP2430, Davinci and Himalaya cores.
-
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 libraries, without sources.
Additionally, depending on your distribution, this release may include
an "fctools" directory containing xDAIS interface headers for
convenience. These headers are identical to the xDAIS 5.00 Beta 2
Release.
This is the initial Framework Components 1.00 release.
The DMAN3 package contains an example reference application along with a
complete xDAIS compliant algorithm (FCPY_TI) which implements the IDMA3 and
uses ACPY3 to exercise DMA services. The reference application is built in
two flavors:
- DAVINCISIM_BIOS: A DSP/BIOS application harness.
- DAVINCISIM_NOBIOS: A Non DSP/BIOS application harness (using RTS
instead.)
Both flavors link against the same DMAN3, ACPY3 and algorithm binaries,
and share common application layer code. However, the non-BIOS variant
includes a custom BIOS adaptation layer which provides the BIOS MEM and HWI
functionality needed by DMAN3 and ACPY3 libraries. This thin BIOS adaptation
layer is provided as reference only, and can be replaced or customized
by other non-BIOS based frameworks where DMAN3/ACPY3 functionality is needed.
This release supports and has been tested on the following devices:
-
Joule simulators
-
DaVinci EVM
-
OMAP2430 EVM
DMAN3 and ACPY3 can be configured to run on other Joule devices,
(e.g. Himalaya), by configuring DMAN3.qdmaPaRamBase via RTSC or
at runtime by setting DMAN3_PARAMS.qdmaPaRamBase.
Additionally, when DMAN3 is not configured as a RTSC 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 a RTSC package
will need to define DMAN3_EDMA3BASE symbol in their application linker
command file. For Davinci 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
DSKT2
-
There is no documentation on how to configure and integrate the
DSKT2 library into an application.
ACPY3
-
3D DMA transfers using Joule CCNT > 1 (i.e. numFrames > 1) are
not supported.
ACPY3
-
ACPY3 usage of IDMA0 does not provide any software workaround for
the newly found 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.)
The packages/ti/sdo/fc folder contains:
-
DMAN3: Unified DMA Resource Manager for interoperability and efficient
sharing of GEM/Joule system DMA resources.
DMAN3 Module manages Physical and Logical DMA resources for DSP
algorithms and drivers.
-
ACPY3: High-Performance Functional DMA Interface and Common Library for
OMAP2430, Davinci and Himalaya Cores.
This release contains an optimized C Language reference
implementation of ACPY3.
-
DSKT2: A library for managing memory for, and controlling, xDAIS algorithms.
-
DBC and DBG: Utilities for application developers. See the
documentation for more details.
The packages\ti\fc\dman3\examples folder contains:
-
fastcopytest example application:
The example illustrates how to configure DMA resources managed by DMAN3,
and uses DMAN3 APIs to create an IDMA3 compliant xDAIS algorithm which
exercises Joule DMA via ACPY3 APIs. The example app also contains
sample code to illustrate how a non-algorithm component can create
logical DMA channels and call ACPY3 APIs.
-
FCPY Algorithm: A 2D buffer copying algorithm which uses Joule DMA by
implementing IDMA3 to publish and acquire its DMA resources and
uses ACPY3 APIs to submit DMA transfers.
-
BIOS Adaptation layer:
As part of the example, we provide a custom BIOS adaptation layer
which provides the BIOS MEM and HWI functionality needed by DMAN3 and
ACPY3 libraries.
-
DAVINCISIM_BIOS: A DSP/BIOS application harness. Includes CCS Project files
and configuration needed to rebuild all dependent libraries to run the
the application using BIOS.
-
DAVINCISIM_NOBIOS: A Non DSP/BIOS application harness (using RTS instead.)
Includes the CCS Project files and configuration needed to rebuild all
dependent libraries to run the the example application without BIOS.
More details can be found in the included documentation in the 'docs' folder.
Note that TI has
plans on continually updating/optimizing this code. Users are encouraged to
take this code as a baseline for further optimization.
This release was built and validated against using the following components:
-
DSP/BIOS-5.21
-
C6x Code Generation Tools version 6.0.3
C64+
-
Limited sanity testing using CCS C64+ Simulator
-
Limited sanity testing using DaVinci EVM
-
Limited sanity testing using OMAP2430 EVM
The following documentation is available in this release:
- Framework Components Reference Guide
- Configuration Reference Guide
- Joule DMA Framework Design Spec
Last updated: June 19, 2006