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.

tilcdc问题



1.用SDK0301,把分辨率改成1440X900后,只运行weston,调试串口不停地报:

[   28.191212] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   28.198040] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   28.303849] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[   28.310996] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
[   32.659149] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[   32.673173] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   32.680035] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[   51.020610] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[   51.030703] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[   51.038002] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
[   77.148433] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[   77.157610] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[   77.164894] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
[   77.192476] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[   77.208493] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
[   77.215318] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[  137.148413] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[  137.155669] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
[  137.162479] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
[  197.148391] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[  197.155642] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
[  317.148405] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[  317.158059] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[  317.165335] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost

TI有发布补丁包修复这个问题吗?

2.最新SDK03.02,关于这个的源码看到有所修改了,是否是修复了上述的问题?

但把SDK03.02的tilcdc改到SDK03.01上,也是在1440X900分辨率下测试,则调试串口不断报:

[ 1620.189644] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1630.280376] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1630.334962] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1640.397066] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1640.466126] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1650.560576] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1670.739026] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1670.753499] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1690.912563] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1690.969175] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1701.103525] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1701.155072] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1711.186232] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1731.412586] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1731.432086] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1741.518179] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1751.593789] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1761.680927] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1771.830523] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1781.893462] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1781.922114] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1792.085067] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1802.206439] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1812.238829] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
[ 1812.247141] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow


  • 应该是分辨率提高后,FIFO处理不过来,显示效果怎么样?

  • 闪屏

    Jian Zhou 说:

    应该是分辨率提高后,FIFO处理不过来,显示效果怎么样?

  • 优化过底层驱动么?把等待时间改小。

  • 没有优化过,都是用SDK自带的,闪屏同时串口打印上的信息

    Jian Zhou 说:

    优化过底层驱动么?把等待时间改小。

  • Jian Zhou

    最新SDK03.02把以下串口打印的信息的问题修复了没

    [   28.191212] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   28.198040] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   28.303849] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
    [   28.310996] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost
    [   32.659149] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
    [   32.673173] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   32.680035] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000004): Sync lost
    [   51.020610] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
    [   51.030703] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000020): FIFO underfow
    [   51.038002] tilcdc 4830e000.lcdc: tilcdc_crtc_irq(0x00000104): Sync lost

  • 隔了这么长时间,重新搞,算是搞定了,结贴!关于使用wayland这个窗口系统还有好多没整明白,还遇到一些问题,继续搞

  • 是什么原因导致的?

    我800*480的没这个问题,但是1024*768以及更大的分辨率会出现这个问题。

  • 刷新的速度降一下

  • 刷新率是哪里配置的?dts里面只有时序和时钟的配置。

    一直没注意过刷新率配置

  • 改下0x4c000054的值试试,devmem2 0x4c000054 w 0x00FFFFF10

    网上资料:

    As the post above will be probably often found by google, I will post here also a temporary solution colleague of mine found to the flickering problem.

    devmem2 0x4c000054 w 0x00FFFFF10

    It is probably not ideal - there should be a way how to prioritize just the LCD transfers (according to the TI wiki), but the values there do not work. This fix just ensures that any "too old" command gets executed sooner than it would otherwise, maybe that is a good thing anyway.

    However, I believe I understand all the various issues we've seen (although I could still be wrong - but this at least makes sense):

    static image shift
    - here, the DMA for transferring data to LCD fifo is blocked for a short period of time once, but then it continues normally. This produces the fifo-underflow interrupt once, the data for display are few pixels late, but then all works normally so the image is just shifted (although not too visible in the photo, the "extra" pixels at top-left corner are black, and not white if the image was just wrapped).

    full flickering
    - in this case, the memory load is so severe that the DMA is blocked too often and can't supply steady stream of data; producing fifo-underflow interrupts all over. The image still starts from the top-left corner as usual, but then the rest of the "pixel stream" contains some extra 0s so the testimage produces diagonal patterns (with varying error, hence the flickering).

    So these 2 are the same issue, just with different outcome.

    The problem is the DDR command prioritization logic in our memory controller, the memset() loop manages to starve the DMA data stream. The "fix" just tweaks the REG_PR_OLD_COUNT value - now if there is a DDR command in the memory controller fifo for too long, it will get executed (out of the prioritized ordering).

    (I can probably also explain why it +- works with >2k buffers; but there I'm not fully sure yet.)

     

    网址:https://groups.google.com/forum/?hl=fil#!category-topic/beagleboard/beaglebone-black/GjxRGeLdmRw

  • 这个修改我之前800*480p出现这个偏移现象的时候,就是按照这个修改的,修改后800*480就不出现这种现象了。

    现在是调试1024*768以及720p的时候出现的,我现在发现原因了,是因为dts文件中的 clock-frequency = <50000000>;这个值的问题,虽然我设置成65M的时候,用示波器测量出来时钟没问题,但是会出现偏移的现象,但是我修改到33M的话,就不会出现偏移的问题了。但是实际LCD需求的时钟是65M。请问该如何修改?修改时钟源吗?是因为am335x的输出65M的时钟不稳定吗?

  • 我那时候测试的好像也一样的结果,我测试了十几个不同的分辨率,我记得有几个分辨率会偏移的,这么久了忘了,后来由于weston窗口系统问题,还没使用所以就没在测试了,我那时候测试屏幕刷新频率设置成60赫兹,你把屏幕刷新频率设置成60赫兹试试,如果不行,建议在e2e上发论坛问问(网址:https://e2e.ti.com/support/arm/sitara_arm/f/791),e2e容易得到帮助而且答复也快,得到答案麻烦发个连接看看