This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Put decoded frame from DSP in shared memory

Other Parts Discussed in Thread: OMAP3530

Hi,

I am working in a customized OMAP3530 board with OS(not Linux) running in ARM and DSP/BIOS in DSP. Also there runs an Inter Processor Communication driver interface (other than DSPLINK) between ARM and DSP to pass encoded buffers from the host(ARM) to DSP. After video decoding , I need to give the frame buffers to the display driver running in ARM which takes care of putting the frame in LCD display. Need to reduce the overhead of copying the output buffers to the host's memory and again pass the buffers to the display driver.

In my board, the total DDR2 memory available is 128MB. From the link

http://wiki.davincidsp.com/index.php/Changing_the_DVEVM_memory_map#Physical_sharing_of_DDR2_memory_between_the_ARM_and_the_DSP ,

I understand that ARM looks this 128MB as virtual address and DSP looks at physical address. I am confused about the shared memory and address translation and would be great if I get some answers to the below questions

1. How can I instruct the ARM to pick a frame buffer in DDR2 after decoding? Is it allowed to give just the physical address to the ARM and asking it to fetch the data?

2. In TRM under chapter 14 section 14.3.3, it is mentioned that the IVA2Sub System has MMU that could translate the virtual address to physical address. In what scenario DSP can make use of this MMU in IVA2 sub system? How DSP can deal on that 4GB virtual address bus?


3. Can DSP alone configure the IVA2 MMU and convert the PA to VA and send message to the host to pick the buffer from the external memory?

Any help is much appreciated.

Thanks a lot in advance,

Rama