Hello TI teams.
I tried to work with TILED buffer and EDMA's for copy data from tiled buffer into DSP/SRAM and return back the processed data from DSP/SRAM into tiled memory. Tiled memory required in my algorithm for perform filter in Y-axis direction. I guess use TILER this is fastest solution instead of perform the image rotation by EDMA.
For proper access of EDMA for rotated on 90 degrees tiled data I need modify DMM_TILER_OR0 register for initiator ID (OR2:S = 1,Y = 1,X = 0):
initiator ID = 6 for read/write by TPTC1 and TPTC2,
initiator ID = 7 for read/write by TPTC3 and TPTC4. (see SPRUGZ8E.pdf – DM8148 TRM, topic – 1.12.2.3.2.3 "Master NIU Identification", page 314)
I saw a number of problem:
First, DMM_TILER_OR0 register supply required orientation on read/write for specified Transfer Controller and not for specified EDMA channel.
TPTC1…3 – these devices used, I means, by all sub-cores/sub-systems on DM8148, such HDVPSS, HDVICP, etc… . So, I guess, modifying of DMM_TILER_OR0 register for DSP/Algorithm purpose may influence or damage system functionality – capture, display, encoders, etc… How I can read or write by EDMA rotated tiled data from my DSP algorithm without influence on system? Is this possible generally?
Second, looks that EDMA performance on read/write of rotated tiled data in twice slowly than non-rotated tiled data. I don't clearly understood why?, because DM8148 TRM (file SPRUGZ8E.pdf, page 1131) say:
The TILER is a submodule within the DMM aimed at efficient handling of two dimensional data, such as
video/graphics accesses for HDVICP2, by the use of tiled format.
• optionally managing the memory fragmentation and zero-copy physical frame buffers swapping
through a page-grained translation
• making on-the-fly, zero overhead transforms, such as 90°, 180°, or 270° rotations, with either a
horizontal or vertical reflection
Pay attention, read/write performed from same tiled buffer, but only from different pointers:
quick result – from cpuAddr (normal view) and slow result from cpuAddr90 (rotated on 90 degress view).
I'm understood from this TRM, that TILER supply zero overhead transforms for rotated data, but actually the EDMA copied data from rotated tiled address more slowly from non-rotated tiled address.
Why?
Used latest version of dvr-rdk.
I would be very grateful for any help or suggestion.