ecpy: minor doc updates
Remove "C64P" from ECPY doxygen comments as ECPY supports many other
ISAs.
Signed-off-by: Chris Ring <cring@ti.com>
Remove "C64P" from ECPY doxygen comments as ECPY supports many other
ISAs.
Signed-off-by: Chris Ring <cring@ti.com>
SDOCM00113389: Fix channel free exception.
* EdmaMgr_free() was attempting to free the lookup table memroy dispite this
being allocated external to EdmaMgr.
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
* EdmaMgr_free() was attempting to free the lookup table memroy dispite this
being allocated external to EdmaMgr.
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
SDOCM00113029: Fix issue with limited size of EdmaMgr's internal heap.
While the memory requirements for regular EdmaMgr channels are constrained
relative to HW resources, large channels may require arbitrarily large memory for
the lookup tables used in the chained transfers. Therefore this memory must come
from outside EdmaMgr. The function EdmaMgr_getSizesLarge is introduced to provide
the application with the buffer requirements for a large channel based on a
supplied configuration.
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
While the memory requirements for regular EdmaMgr channels are constrained
relative to HW resources, large channels may require arbitrarily large memory for
the lookup tables used in the chained transfers. Therefore this memory must come
from outside EdmaMgr. The function EdmaMgr_getSizesLarge is introduced to provide
the application with the buffer requirements for a large channel based on a
supplied configuration.
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
SDOCM00113018: Fix issue with using "large" channels to perform regular non-linked transfers.
When using large EdmaMgr channels for regular transfers, EdmaMgr would wait on
the chained EDMA channel even though it was not being used.
This corrects that by setting "xferPending" on the chained channel only when it
is being used, thus allowing large EdmaMgr channels to be used for regular
non-linked transfers.
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
When using large EdmaMgr channels for regular transfers, EdmaMgr would wait on
the chained EDMA channel even though it was not being used.
This corrects that by setting "xferPending" on the chained channel only when it
is being used, thus allowing large EdmaMgr channels to be used for regular
non-linked transfers.
Signed-off-by: Jacob Stiffler <j-stiffler@ti.com>
build: remove some old cut-n-paste strings
Remove errant cut-n-paste references to other products.
Signed-off-by: Chris Ring <cring@ti.com>
Remove errant cut-n-paste references to other products.
Signed-off-by: Chris Ring <cring@ti.com>
9 years agoEdmaMgr : Fix logic in Large xfer APIs to detect when chaining is necessary. 3.30 fc-3.30-next 3.30.01.08
EdmaMgr : Fix logic in Large xfer APIs to detect when chaining is necessary.
* Previous logic attempted to simplify detection using bit-wise logic on the
pitch size, but was incorrect due wrong assumptions on the size of integers.
* New log explicitly check whether or not the pitch size is on the interval
[-32768,32767].
* Previous logic attempted to simplify detection using bit-wise logic on the
pitch size, but was incorrect due wrong assumptions on the size of integers.
* New log explicitly check whether or not the pitch size is on the interval
[-32768,32767].
EdmaMgr : Added support for transfers with large pitch.
Because of HW limitations, transfers with a pitch exceeding 16-bit
representation cannot be accomplished in a single TCC. However, this may be
accomplished through chaining. This patch adds "Large" APIs to allocate the
necessary resources and perform 1D2D and 2D1D transfers when the pitch exceeds
the HW limitation.
Because of HW limitations, transfers with a pitch exceeding 16-bit
representation cannot be accomplished in a single TCC. However, this may be
accomplished through chaining. This patch adds "Large" APIs to allocate the
necessary resources and perform 1D2D and 2D1D transfers when the pitch exceeds
the HW limitation.
Added more documentation for EdmaMgr APIs.
- Added brief overview of EdmaMgr
- more details on EdmaMgr_init() and the EDMA3 Region Config.
- more details on fast transfers.
- Added brief overview of EdmaMgr
- more details on EdmaMgr_init() and the EDMA3 Region Config.
- more details on fast transfers.
EdmaMgr: Add doxygen documentation
The initial addition of doxygen-based API docs for EdmaMgr.
The initial addition of doxygen-based API docs for EdmaMgr.
EdmaMgr: Remove dead code
SDOCM00105754: EDMAMgr: Fix Local to Global addr
Local to Global address conversion is missing for copyFast &
linked_copyFast APIs.
Converting src and dst addresses with "EDMA_MGR_ADDR_LOC_TO_GLOB()" in
EdmaMgr_copyFast() and EdmaMgr_copyLinkedFast() APIs.
Local to Global address conversion is missing for copyFast &
linked_copyFast APIs.
Converting src and dst addresses with "EDMA_MGR_ADDR_LOC_TO_GLOB()" in
EdmaMgr_copyFast() and EdmaMgr_copyLinkedFast() APIs.
Build: Remove unnecessary dependencies
Remove OSAL_INSTALL_DIR from products.mak (OSAL is no longer
an FC dependency).
Remove OSAL, LINK and LINUXUTILS products from the XDCPATH.
Remove OSAL_INSTALL_DIR from products.mak (OSAL is no longer
an FC dependency).
Remove OSAL, LINK and LINUXUTILS products from the XDCPATH.
SDOCM00105604: Remove [internal] _DSKT2_ipcKeyBase
A nice side effect of this rework is that DSKT2 is now no longer
dependent on the osalsupport package (once we drop all
dependencies we can remove the osalsupport package altogether).
And a nice side effect of dropping the osalsupport dependency
is that the code size of apps that only use DSKT2 has reduced.
A nice side effect of this rework is that DSKT2 is now no longer
dependent on the osalsupport package (once we drop all
dependencies we can remove the osalsupport package altogether).
And a nice side effect of dropping the osalsupport dependency
is that the code size of apps that only use DSKT2 has reduced.
EdmaMgr: indent tool code reformatting
Reformat the EdmaMgr code to closer match the FC coding standards.
There is more to come, but this commit used the gnu indent tool with
settings "as close as I could get" for FC. Here's the cmd
used:
indent -T xdc_runtime_IHeap_Handle -T EdmaMgr_Handle -T IALG_Handle \
-T IRES_EDMA3CHAN2_Handle -T IRES_Handle -T IRES_ProtocolArgs \
-T EdmaMgr_Channel -T Int -T UInt32 -bad -br -nce -cdw -blf -i4 \
-ci8 -nut -npcs -nbbo -ncs -nbfda -nlp -npsl -sob -cp0 -brs \
--line-length80 <file-name>
The intent is that there is no functionality changed in this commit.
Reformat the EdmaMgr code to closer match the FC coding standards.
There is more to come, but this commit used the gnu indent tool with
settings "as close as I could get" for FC. Here's the cmd
used:
indent -T xdc_runtime_IHeap_Handle -T EdmaMgr_Handle -T IALG_Handle \
-T IRES_EDMA3CHAN2_Handle -T IRES_Handle -T IRES_ProtocolArgs \
-T EdmaMgr_Channel -T Int -T UInt32 -bad -br -nce -cdw -blf -i4 \
-ci8 -nut -npcs -nbbo -ncs -nbfda -nlp -npsl -sob -cp0 -brs \
--line-length80 <file-name>
The intent is that there is no functionality changed in this commit.
EdmaMgr: Cleanup unnecessary header inclusion
A few headers were unnecessarily being included; those have
been removed.
A few headers were unnecessarily being included; those have
been removed.
EdmaMgr: Remove printf-based debug statements
General code cleanup. If we want conditional log statements, we
probably should follow the FC convention and use xdc.runtime.Log().
General code cleanup. If we want conditional log statements, we
probably should follow the FC convention and use xdc.runtime.Log().
Overrides RMAN.maxAlgs with a value of 1
Internal memory usage scales with the value of RMAN.maxAlgs. This
change is to reduce the memory usage for users of EdmaMgr. As a
consequence, EdmaMgr_Alloc needed to be changed to provide a single
requestID to all RMAN requests.
Internal memory usage scales with the value of RMAN.maxAlgs. This
change is to reduce the memory usage for users of EdmaMgr. As a
consequence, EdmaMgr_Alloc needed to be changed to provide a single
requestID to all RMAN requests.
RMAN: Enable single alg to make multiple requests
This fix enhances the RMAN_VtableEntry structure to support multiple
allocations to a specific algorithm instance or "requestId". This
structure is enhanced by renaming the "active" field to "refs" to
represent multiple allocations to a specific algorithm.
This fix enhances the RMAN_VtableEntry structure to support multiple
allocations to a specific algorithm instance or "requestId". This
structure is enhanced by renaming the "active" field to "refs" to
represent multiple allocations to a specific algorithm.
EdmaMgr: Added persistent alloc/free functions
Added persistet alloc/free fxns inside EdmaMgr to remove the
dependency on DSKT2.
Added persistet alloc/free fxns inside EdmaMgr to remove the
dependency on DSKT2.
Added the EdmaMgr module.
SDOCM00104721: Allow target config params with '='
Enable users to assign a target config param who's value
contains a '=' char (e.g. ccOpts.suffix=-pds=880).
Previously everything after the 2nd '=' char was discarded.
For example, in products.mak, the following assignment, which
includes an override of the ccOpts.suffix, will not work as
expected:
ti.targets.elf.C66 = /opt/ti/c6x/7.2.0/Linux;ccOpts.suffix=-pdr -pden -pds=880 -pds=238 -pds452 -pds195 -mi10 -mo -g --visibility=protected
In that example, C66.ccOpts.suffix was [incorrectly] set
to "-pdr -pden -pds".
Enable users to assign a target config param who's value
contains a '=' char (e.g. ccOpts.suffix=-pds=880).
Previously everything after the 2nd '=' char was discarded.
For example, in products.mak, the following assignment, which
includes an override of the ccOpts.suffix, will not work as
expected:
ti.targets.elf.C66 = /opt/ti/c6x/7.2.0/Linux;ccOpts.suffix=-pdr -pden -pds=880 -pds=238 -pds452 -pds195 -mi10 -mo -g --visibility=protected
In that example, C66.ccOpts.suffix was [incorrectly] set
to "-pdr -pden -pds".
SDOCM00104664: Add targets to ti.sdo.fc.utils
The ti.sdo.fc.utils package.bld script was missing a
few targets, which were added.
The ti.sdo.fc.utils package.bld script was missing a
few targets, which were added.
Remove unnecessary files
When fcdev was initially created, a few errant files came along
for the ride. These files are not part of the official FC product.
This commit removes them.
When fcdev was initially created, a few errant files came along
for the ride. These files are not part of the official FC product.
This commit removes them.
ECPY: Add C66_big_endian support
This introduces C66_big_endian support for ECPY.
Also, some makefiles and build scripts were updated to align with
the latest in the FC 3.24 stream.
This addresses SDOCM00104662.
This introduces C66_big_endian support for ECPY.
Also, some makefiles and build scripts were updated to align with
the latest in the FC 3.24 stream.
This addresses SDOCM00104662.
Fix corrupt license statement
Fixes some formatting in the licensing text of a source file.
Fixes some formatting in the licensing text of a source file.
Initial import from FC 3.24.01.12