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:访问 USB cdns3小工具寄存器时、MCU_R5有时会被冻结。

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1040161/tda4vm-mcu_r5-sometimes-is-frozen-when-usb-cdns3-gadget-registers-are-accessed

器件型号:TDA4VM

大家好、团队、

此 TT 的情形在某种程度上与 TT https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1040149/tda4vm-dfu-boots-fail-in-mcu_rom 相关、 请先检查我们的控制器的引导流程。

我们这里的问题与上述问题不同。  引导故障场景如下:

  • 第二个 SOC 从 DFU OK 引导、接收第一个引导程序 成功。
  • 引导加载程序 tiboot3.bin 将自身枚举为 fastboot 器件、以进一步接收其他固件、如 sysfw.itb/tispl.bin/uboot.img/qnx 等

但是、当 USB CDNS3小工具驱动程序时、MCU_R5有时完全冻结 读取或写入一些 USB 寄存器。 这些寄存 器操作通常在 cdns3_gadget_UDC_stop()或 cdns3_ep0_config()等函数中执行。 在这种情况下、MCU_R5似乎完全死机、JTAG 根本无法连接。

如需更多信息、在 A72主域中未观察到由 USB 寄存器访问引起的这些冻结事件。  

您是否知道问题是什么? 为什么 USB 器件控制器能够挂起 MCU_R5?  

谢谢、此致、

Raymond。

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

    您好、Raymond、

    您能否尝试以下差异:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    diff --git a/drivers/usb/cdns3/gadget.c b/drivers/usb/cdns3/gadget.c
    index 83dbb5a103d2..64acd9071ba9 100644
    --- a/drivers/usb/cdns3/gadget.c
    +++ b/drivers/usb/cdns3/gadget.c
    @@ -2321,6 +2321,9 @@ static void cdns3_gadget_config(struct cdns3_device *priv_dev)
    writel(USB_IEN_INIT, &regs->usb_ien);
    writel(USB_CONF_CLK2OFFDS | USB_CONF_L1DS, &regs->usb_conf);
    + /* Set the Fast access bit */
    + writel(PUSB_PWR_FST_REG_ACCESS, &priv_dev->regs->usb_pwr);
    +
    cdns3_configure_dmult(priv_dev, NULL);
    cdns3_gadget_pullup(&priv_dev->gadget, 1);
    @@ -2378,6 +2381,7 @@ static int cdns3_gadget_udc_stop(struct usb_gadget *gadget)
    /* disable interrupt for device */
    writel(0, &priv_dev->regs->usb_ien);
    + writel(0, &priv_dev->regs->usb_pwr);
    writel(USB_CONF_DEVDS, &priv_dev->regs->usb_conf);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此致、
    基尔西

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

    您好、Keerty、

    感谢您提供该补丁、我们应用了它、但它没有帮助。

    您有更多想法吗?

    谢谢、此致、

    Raymond。

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

    您好、Raymond、

    更新了本地支持、指出现在未看到问题。 我们将等待对此的反馈。

    -凯尔西

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

    是的、现在看不到它。 我们可以闭合线程。

x 出现错误。请重试或与管理员联系。