Hi folks,
I'm currently working with a DM8127 based system. It uses the ISS to capture a 3MP (2048x1536) image from a sensor at 30 frames per second. This image is then passed through both resizers in the ISS (RSZA and RSZB). The plan is that the image should be rotated using tiled memory.
The software that is being used is TI EZSDK along with ISS code version 3.5.
The BTE has been enabled in the ISS module and extra code has been added to enable two new BTE contexts to handle RSZB memory accesses (four contexts in total).
If an image is captured from both resizers I am finding that the image using the contexts for RSZA is ok, but the image using the contexts for RSZB is corrupt. The problem seems to be related to the context start addresses used for the contexts. If I swap the context start addresses around (that is make the contexts for RSZA use the context start addresses for RSZB and the contexts for RSZA using the context start addresses for RSZB) then the corruption moves from RSZA to RSZB, so it looks like there is something incorrect with the context start addresses.
The start addresses used for the contexts are as follows:
RSZA - context 1 start address = 0x000
RSZA - context 2 start address = 0x800
RSZB - context 1 start address = 0x4000
RSZB - context 2 start address = 0x8000
Below is a register dump of the BTE registers showing a typical set up. Currently, just for debugging purposes, I am not resizing either stream, so both streams are being captured at 2048x1536@30fps.
0x5c002000: 40001900
0x5c002004: 00485800
0x5c002008: 00000000
0x5c00200c: 00000000
0x5c002010: 00000008
0x5c002014: 00000000
0x5c002018: 00000000
0x5c00201c: 00000000
0x5c002020: 000f0f02
0x5c002024: 000f0f02
0x5c002028: 0f0f0f03
0x5c00202c: 0f0f0f03
0x5c002030: 0000032f
0x5c002034: 0000000f
0x5c002038: 00000000
0x5c00203c: 00000000
0x5c002040: 01821400
0x5c002044: 00001020
0x5c002048: 00004000
0x5c00204c: 05ff47f0
0x5c002050: 00000000
0x5c002054: 00000000
0x5c002058: 00000000
0x5c00205c: 00000000
0x5c002060: 01821600
0x5c002064: 0d001020
0x5c002068: 00008000
0x5c00206c: 02ff87f0
0x5c002070: 00000000
0x5c002074: 00000000
0x5c002078: 00000000
0x5c00207c: 00000000
0x5c002080: 01821400
0x5c002084: 02003000
0x5c002088: 00000000
0x5c00208c: 05ff07f0
0x5c002090: 00000000
0x5c002094: 00000000
0x5c002098: 00000000
0x5c00209c: 00000000
0x5c0020a0: 01821600
0x5c0020a4: 0d006820
0x5c0020a8: 00000800
0x5c0020ac: 02ff0ff0
0x5c0020b0: 00000000
0x5c0020b4: 00000000
0x5c0020b8: 00000000
0x5c0020bc: 00000000
0x5c0020c0: 00000000
0x5c0020c4: 00000000
0x5c0020c8: 00000000
0x5c0020cc: 00000000
I have also attached a screenshot showing what the corrupted image looks like. This image should be a standard non-rotated colour bar pattern.
I would like to know if there is any obvious problem with the way that I have configured the BTE contexts?
The BTE contexts use a virtual address for performing address translation. Can this virtual address space be shared with the tiler virtual address space (0x60000000) on our platform?
Any help would be appreciated,
Regards,
Terry