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.

DSI Data Output Behavior

Hi,

Thank You for reading the post and for your valuable time.

I see some strange behavior of seeing data on DSI Lanes.

When DISPC_GFX_ATTRIBUTES is set to 0x02000098 and after the Graphics is enabled we see data on DSI Lanes.

However even though I was filling framebuffer with all zeros I see data being toggling.

If we set DISPC_GFX_ATTRIBUTES to 0x02000092 then data is not observed on DSI Lanes.

The following is the sequence followed to get data on DSI Lanes.

  • Disable DISPC Ouput
  • Disable OMAP DSI Interface
  • Disable Video Mode Virtual Channel-0
  • Virtual Channel-0 is set to 0x20808790
  • Virtual Channel-0 LONG Packet Header is updated
  • Enabled Video Mode Channel-0
  • Enabled OMAP DSI Interface
  • GFX_BA0 and BA1 are set to framebuffer address
  • GFX_ATTRIBUTES is written with 0x02000098
  • GFX_POSITION, GFX_SIZE  are updated
  • GFX is enabled in GFX_ATTRIBUTES
  • DISPC CoNTROL is modified and BIT0 is set to 1
  • DSI_TIMING1 set to 0x7FFF7FFF
  • DISPC_CONTROL BIT5 is set to1
At this point I have two questions
  1. Why modifying the format in GFX_ATTRIBUTES gives data and setting to some other format why is it not generating data on DSI
  2. Even though I am filling Framebuffer with all zeros are ff's I am seeing data on DSI Lanes
Please help me out in getting DSI Working.
Best Regards,
GSR
  • Hi GSR,

    Here are my answers:

    1. Why modifying the format in GFX_ATTRIBUTES gives data and setting to some other format why is it not generating data on DSI

    Answer: As per the description of the register namely DISPC_GFX_ATTRIBUTES, the bits 4 to 1 denotes the Format.

    The register value 0x02000098 sets it to ARGB32-8888 format whereas the register value 0x02000092 sets it to RGB24-888 format.

    We do not see any data on DSI lanes since we are not reconfigured the DSI lanes to accept the 24 bit  data as opposed to 32 bit data. May be we have to reconfigure the number of channels since we have only 24 bit data now.

    2. Even though I am filling Framebuffer with all zeros are ff's I am seeing data on DSI Lanes (toggling)

    Answer: For the case of 32 bit format, did you ensure to fill both the ping and pong frame buffers with zero. If you are filling only one frame buffer, then it can result in toggling behavior as you mentioned.

    Thanks & Best Regards,

    Venkat

  • Hi Venkat,

    Thank You so much for the replay and for your time.

    From your below sentence

    We do not see any data on DSI lanes since we are not reconfigured the DSI lanes to accept the 24 bit  data as opposed to 32 bit data. May be we have to reconfigure the number of channels since we have only 24 bit data now.

    When you say number of channels can you please point me to the registers which perform this functionality. So do I need to change the OCP_DATA_BUS_WIDTH in DSI_VC_CTRL_i[11:10]?

    Regarding frame buffer, I do understand ping pong buffers. But here in case of BOOT Loader since we have only one logo to display we have programmed GFX_BA0 and GFX_BA1 with the same frame buffer addresses.

    Can you also please point me in TRM to programming section of PING PONG buffers?

    Regards,

    GSR

  • Hi GSR

    If you disable GFX overlay and set the Default color to a known color... Red, or Blue, does it work?

    That is, in register DISPC_DEFAULT_COLOR0 registers (RGB888 format) set to blue =0x000000FF or green= 0x0000FF00 or red=0x00FF0000

  • Hi Rafael,

    Thank you for your time and reply.

    Somehow it got fixed. Seems to be there are issues related to DISPC and DSI Timings matching.

    Yes with DISPC_DEFAULT_COLOR we are able to see red, green and blue color when GFX is disabled.

    Best Regards,

    GSR