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.

Changing Base/Ceiling Address for LCD DMA frame buffer (LCDDMA_FB0_BASE/LCDDMA_FB0_CEILING), AM335x



Hello.

I am trying to determine the most reliable/safest way to change the addresses for the base and ceiling registers for the LCD DMA registers. I am using three buffers in memory, and I want to switch between them. The issue I foresee is that when I go to change which buffer to draw, I have to write to the base and then to the ceiling. Does the DMA read these two values out and store them in another location? If so, this could cause problems if I have written the base address, but not the ceiling address. 

I had thought about disabling the raster, setting the addresses, and then enabling the raster again, but this seems like a poor way to do things.

I do know there is an end of frame interrupt for the frame buffers, and I think this could be utilized somehow.

All that to say, my main question is how does the DMA use the value from this register. Does it store these two values everytime it needs them or does it just use these registers themselves in order to determine the beginning and ending points for the buffer.

Any help would be appreciated. Thanks.

David