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.

[参考译文] TDA4VM-Q1:我们是否有适用于 SR 2.0的软件补丁

Guru**** 2463330 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1474242/tda4vm-q1-do-we-have-any-software-patch-for-sr-2-0

器件型号:TDA4VM-Q1

工具与软件:

您好、亲爱的专家。

客户在接收摄像头视频时遇到一些问题。

以芯片版本 SR 1.1为基础、软件相同、运行良好。

基于芯片版本 SR 2.0、相同软件、运行失败。

客户 SDK <08.01.00.006>

由于客户的项目已经是 MP、因此我认为整个 SDK 升级非常困难。

我的问题。

(1)我们是否有 Jira 跟踪   SR 1.1和2.0之间的任何代码更改? 如何使用它?

(2)调试建议? (例如 CSI-RX/VPAC?...等)

(3)我们是否对 OpenGL 或 V4L2有任何代码更改? 如何跟踪它?

谢谢你。

Gibbs

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

    嗨、Gibbs、

    SR2.0有任何重大变化、所以它应该起作用、但在此之前、我们需要了解它们使用的引导流程、客户使用的器件类型、所以您能否分享一些更多信息?  

    此致、

    Brijesh

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

    您好、 Brijesh

    我不确定您需要什么样的信息、

    但客户的电路板默认采用 eMMC 引导。

    Customer's SDK:Linux, 08.01.00.006.

    他们的应用仅使用 A 内核(A72)。

    谢谢

    Gibbs

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

    嗨、Gibbs、

     客户是否使用 HS-SE 电路板? 他们是否也使用 Keywriter 写入密钥? 以及它们的引导流程是什么?  

    此致、

    Brijesh

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

    您好、Brijesh:

    我们不使用 HS-SE 电路板或 Keywriter、引导流程使用 Linux SPL 模式。

    请参阅下面的内核日志。 我们认为未找到 CSI PHY。

    [   10.632125] cdns-mipi-dphy 4580000.phy: DPHY wait for lane ready timeout
    [   10.638834] cdns-csi2rx 4504000.csi-bridge: Failed to configure external DPHY: -110

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

    大家好、Justin Lu、

    好的、对于 GP 器件、不需要更改。 它应该像现在一样工作。 CSIRX 没有变化。

    同一个驱动器是否在 ES1.1器件上正常工作? 迁移到 ES2.0时是否有任何变化? 您是否使用相同的序列、配置相同的 PLL 等?

    此致、

    Brijesh  

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

    您好、Brijesh:

    是的、对于 GP 器件。

    我们在 ES1.1上使用能够正常工作的相同驱动器。 图像没有变化。

    对于如何解决此问题、您有什么想法吗? 出厂时仅将芯片从 ES1.1更换为 ES2.0。

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

    大家好、Justin Lu、

    我想不出为什么它在 ES2.0上失败,并在 ES1.1上工作。 是同一个板吗? 您刚刚替换了器件?  SYSCLK 频率相同?  

    此致、

    Brijesh  

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

    大家好、 Brijesh 和 Justin

    更新了 SR1.1与2.0之间勘误表中的相关更改

    一些线索、

    i2174 - DPHY:复位序列问题可能导致未定义的模块行为

    i2190 - CSI:CSI_RX_IF 可能在帧不完整后进入未知状态

    REF、CODE

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/phy/cadence/cdns-dphy.c?h=ti-linux-5.10.y

    	reg = DPHY_POWER_ISLAND_EN_DATA_VAL;
    	writel(reg, dphy->regs + DPHY_POWER_ISLAND_EN_DATA);
    	reg = DPHY_POWER_ISLAND_EN_CLK_VAL;
    	writel(reg, dphy->regs + DPHY_POWER_ISLAND_EN_CLK);
    
    	ret = cdns_dphy_rx_wait_lane_ready(dphy, opts->mipi_dphy.lanes);
    	if (ret) {
    		dev_err(dphy->dev, "DPHY wait for lane ready timeout\n");
    		return ret;
    	}
    

    https://codebrowser.dev/linux/linux/drivers/phy/cadence/cdns-dphy-rx.c.html

    static int cdns_dphy_rx_wait_lane_ready(struct cdns_dphy_rx *dphy,
    					unsigned int lanes)
    {
    	static const u32 data_lane_ctrl[] = {DPHY_ISO_DL_CTRL_L0,
    					     DPHY_ISO_DL_CTRL_L1,
    					     DPHY_ISO_DL_CTRL_L2,
    					     DPHY_ISO_DL_CTRL_L3};
    	void __iomem *reg = dphy->regs;
    	unsigned int i;
    	int ret;
    	/* Clock lane */
    	ret = cdns_dphy_rx_wait_for_bit(reg + DPHY_ISO_CL_CTRL_L,
    					DPHY_ISO_LANE_READY_BIT);
    	if (ret)
    		return ret;
    	for (i = 0; i < lanes; i++) {
    		ret = cdns_dphy_rx_wait_for_bit(reg + data_lane_ctrl[i],
    						DPHY_ISO_LANE_READY_BIT);
    		if (ret)
    			return ret;
    	}
    	return 0;
    }

     

    我想、我们可能需要  先比较旧/新 SDK 之间 cdns-dphy-rx.c 的代码。

    确保它是否有更新。

    谢谢

    Gibbs

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

    尊敬的 Brijesh 和 Gibbs:

    我们使用的是基于内核6.6的最新 SDK 10.00.00.08。
    MIPI CSI 运行良好、并且我们的摄像头驱动程序已启用。
    您是否有可解决此问题的补丁? 我们无法将映像升级到最新的 SDK。

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

    尊敬的 Brijesh 和 Gibbs

    我们基于 SDK 8.0.1 (内核5.10.y)、之前应用了以下五个补丁、使 MIPI CSI 能够在 ES1.1上正常工作。
    然而、它在 ES2.0上不起作用。

    您能否告知我应该应用哪些补丁来解决此问题?

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

    大家好、Justin Lu、

    在 SDK08.00.01 Linux 版本之上有各种更改、特别是以下两项更改很重要、您能按顺序应用这些更改吗?看看它是否有用?


    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/phy/cadence/cdns-dphy.c?h=ti-linux-5.10.y&id=0f25c34882ffbd8d1427dc3eca525f1dcc1a5a38


    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/phy/cadence/cdns-dphy.c?h=ti-linux-5.10.y&id=8866ccf9941c4adb7f740f5995cb06a562086542

    此致、

    Brijesh

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

    您好、Brijesh:

    这些补丁在 ES2.0上运行良好、但在 ES1.1上失败(相同的错误消息)。 我们如何使它们与两个版本兼容?

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

    您好、Justin

    读取器件标识以加载不同的驱动程序或在 TDA4启动时制定一些软件权变措施、情况如何?

    我想这是帮助您识别芯片的一个寄存器(CTRLMMR_WKUP_JTAGID)、是 SR 1.1或2.0。

    Gibbs

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

    另请注意、ES1.1和 ES2.0的复位序列应相同。 这一变化仅针对 ES1.0。 因此、我们添加到补丁中、以确保复位序列与 ES1.1相同。 您是否可以打印一些调试打印件以确定复位序列与 ES2.0保持相同?

    此致、

    Brijesh

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

    您好、Brijesh:

    您是否指的是 PHY 复位命令? 在我的测试中、我发现删除 SoC 信息检查机制并强制 PHY 复位似乎可以正常工作。

    reg = DPHY_LANE_RESET_CMN_EN;
    writel(reg, dphy->regs + DPHY_LANE);

    但是、这种方法并不十分正确。 您能否提供一个补丁来正确解决此问题?

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

    嗨、Gibbs、

    我们将研究如何使用寄存器来检查 PHY 代码中的芯片 ID。

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

    Justin、您好。

    代码是否正确识别 ES2.0? 您能否查看以下补丁?

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/4.72 soc ti/k3-socinfo.c?h=ti-linux-6.12.y&id=e44097c6d535163f28c6106605452a2fdb1d8cba

    https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/4.72 soc ti/k3-socinfo.c?h=ti-linux-6.12.y&id=2c2235292b33d788a1436f1d2a6108184a657f51.

    此致、

    Brijesh

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

    您好、Brijesh:

    是的、 代码正确识别 ES2.0。  您提供的补丁给了我一些想法。 目前、它可以支持 ES1.1 ES2.0、同时仍保持 SoC 信息检查。

    感谢您的帮助

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

    Justin、您好。

    好的、您是否仍然必须应用以下更改?

     "我发现删除 SoC 信息检查机制并强制 PHY 复位似乎没有问题。"

    此致、

    Brijesh

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

    您好、Brijesh


    不需要这样做。 我在 K3-CMD-INFO.c 中应用补丁 soc 并将 cdns-dphy.c 中的 SR2.0替换为 SR1.0 它的工作状态非常完美。

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

    谢谢 Justin、由于这个问题已得到解决、我将关闭此主题。