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.

[参考译文] Linux/AM3358:LCDC FIFO 下溢错误

Guru**** 2617025 points

Other Parts Discussed in Thread: AM3358

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/578911/linux-am3358-lcdc-fifo-underfow-error

器件型号:AM3358

工具/软件:Linux

大家好:

CPU:am3358

SDK:ti-processor-sdk-linux-am335x-evm-03.02.00.05

文件系统:arago-base-tisdk-image-am335x-evm 或 tisdk-rootfs-image-am335x-evm

当我在电路板上启动时,有时 LCD 会显示错误,下图显示错误。

出现此错误时、调试消息将显示如下。

[2154.711045] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000020):FIFO 欠流
[2154.726686868] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.733636] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.743661] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.750484] tilcdc 4830e000。lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.759628] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.766446] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.776424] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.783188] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.793215] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2154.800045] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):同步丢失
[2155.029849] tilcdc 4830e000.lcdc:tilcdc_CRTC_IRQ (0x00000004):检测到同步丢失洪水、禁用中断。

如果我使用 SDK 中的文件系统、我启动10次、此错误将出现5次以上。

我认为文件系统中的一些错误是造成这种错误的、如果我删除文件"/etc/systemd/system/getty.target.wants/getty@tty1.service"、

我在运行 qt 项目时启动超过100次、仅出现1次。

为什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    这来自 tilcdc_crtc.c 您的器件会遇到 FIFO 下溢(在 AM335x TRM 中的第13.3.7.2.1.3节 FIFO 下溢中断中进行了说明)、因此会导致同步丢失。

    我建议检查 TH_Fifo_READY (DMA FIFO 阈值)的值、并将该位设置为13.5.1.16 LCDDMA_CTRL 寄存器(偏移= 40h)[复位= 0h]中所述的较低值。 这在 tilcdc_crtc.c 中完成、具体函数为 tilcdc_crtc_mode_set ():
    reg |=(info->fifo_th << 8);
    tilcdc_write (dev、LCDC_DMA_CTRL_REG、reg);

    此致、
    Yordan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的回复。

    在我的设备树 file.see 中,第五个值是2,我是否应该将此值设置为1?

    面板{
    兼容="ti、tilcdc、panel ";
    状态="正常";
    pinctrl-names ="default";
    pinctrl-0 =<&LCD_PINS_s0>;
    面板信息{
    交流偏置=<255>;
    AC-BIAS-INtrpt =<0>;
    dma-burse-SZ =<16>;
    bpp =<24>;
    FDD =<0x80>;
    同步边沿=<0>;
    SYNC-Ctrl =<1>;
    栅格顺序=<0>;
    FIFO-TH =<2>;
    };

    此外,为什么在运行 getty@tty1.serv冰敷时出现此错误。

    测试结果:

    我将 FIFO 值设置为0、这意味着当8个数据获得时、DMA FIFO 就会就绪。

    root@AM335x-EVM:~# devmem2 0x4830e040
    /dev/mem 已打开。
    映射到地址 bb6f20000的内存。
    读取地址0x4830E040 (bb6f20040):0x00000040

    但电路板通电时、仍会出现此错误。

    [31.453429] tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000020):FIFO 欠流
    [31.458684] tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    [31.459385] tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    [31.475484] tilcdc 4830e000。lcdc:tilcdc_crtc_IRQ (0x00000004):同步丢失
    [31.476177] tilcdc 4830e000.lcdc:tilcdc_CRC_IRQ (0x00000004):同步丢失
    [31.491487] tilcdc 4830e000.lcdc:tilcdc_CRC_IRQ (0x00000004):同步丢失
    [31.492263] tilcdc 4830e000.lcdc:tilcdc_CRC_IRQ (0x00000004):同步丢失
    [31.492983] tilcdc 4830e000.lcdc:tilcdc_CRC_IRQ (0x00000004):同步丢失
    [31.508256] tilcdc 4830e000.lcdc:tilcdc_CRC_IRQ (0x00000004):同步丢失
    [31.509051] tilcdc 4830e000.lcdc:tilcdc_crtc_IRQ (0x00000004):SYNC 丢失
    [31.509780] tilcdc 4830e000.lcdc:tilcdc_CRC_IRQ (0x00000004):同步丢失
    [31.827365] tilcdc 4830e000。lcdc:tilcdc_CRC_IRQ (0x00000104):检测到同步丢失洪水、禁用中断

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、yordan:

    您是否有任何其他支持来修复此错误?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    对延迟答复表示歉意。

    不确定 Getty 服务与 tilcdc 或触摸屏控制器之间的相关性... 我需要进一步检查。

    您是否已验证显示时间?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:  

      感谢您的回复。

      我认为显示时序是正确的。

      在这个网站中、它显示了这个。如何将"#define EMIF_OCP_CONFIG_AM335X_EVM             0x003d3d3d"值设置为0x003d3d3d。

    我的主板使用 DDR2,我设置此值,欠低误差 变小,但仍然有此误差。  如何配置此位。

    在这种情况下,为什么值是0x003d3d3d。如何在电路板上设置我的值?

    "初始化 EMIF OCP_CONFIG 寄存器 REG_COS_COUNT_1、 REG_COS_COUNT_2、
    以及    适用于 BeagleBone-Black 和 AM335x-EVM 的 REG_PR_OLD_COUNT 域。  使用
     默认 值 LCDC 受  DMA FIFO 下溢 和 帧的影响
    同步 丢失 错误。   初始 化值   最高
              当 CPU 产生繁重的内存负载时、该器件能够完美工作。  32bpp
         测试中使用了颜色。   在 BBB 上  、视频 模式 使用 了110MHz 像素
    时钟。         AM335x-EVM 面板支持的模式 使用 30MHz 像素
    时钟。"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这是通过 OCP 对 EMIF/DDR 通信的优先级、请参阅 AM335x TRM 的第7.3.5.15节 OCP_CONFIG 寄存器(偏移= 54h)[复位= 00FFFFFFh]。 另外、TRM 的第7.3.3.5.2节命令饥饿和第7.3.3.5.4节服务类(COS)中提供了如何设置该寄存器的说明。

    此致、
    Yordan