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.

[参考译文] TDA4AL-Q1:netdev 看门狗:eth0 (am65-cpsw-nuss):发送队列0超时

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1264552/tda4al-q1-netdev-watchdog-eth0-am65-cpsw-nuss-transmit-queue-0-timed-out

器件型号:TDA4AL-Q1

您好、TI 的前端

版本:

   ti-processor-sdk-linux-j721s2-evm-08_06_00_10

   TI-PROCESSOR-SDK-RTOS-j721s2-evm-08_06_00_11

调制:

   SBL

错误日志:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@j721s2-evm:~# [ 68.163894] ------------[ cut here ]------------
[ 68.168517] NETDEV WATCHDOG: eth0 (am65-cpsw-nuss): transmit queue 0 timed out
[ 68.175762] WARNING: CPU: 0 PID: 0 at net/sched/sch_generic.c:467 dev_watchdog+0x320/0x328
[ 68.184003] Modules linked in: bluetooth ecdh_generic ecc rfkill rpmsg_char crct10dif_ce phy_can_transceiver ti_k3_r5_remoteproc ti_k3_dsp_remoteproc sa2ul cdns_dsi wave5 virtio_rpmsg_bus pvrsrvkm(O) sha512_generic authenc v4l2_mem2mem videobuf2_dma_contig videobuf2_memops videobuf2_v4l2 videobuf2_common cdns_dphy m_can_platform m_can can_dev optee_rng rng_core sch_fq_codel rpmsg_kdrv_switch cryptodev(O) ipv6
[ 68.220208] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G O 5.10.162-g76b3e88d56 #7
[ 68.228708] Hardware name: Texas Instruments J721S2 EVM (DT)
[ 68.234349] pstate: 20000005 (nzCv daif -PAN -UAO -TCO BTYPE=--)
[ 68.240338] pc : dev_watchdog+0x320/0x328
[ 68.244332] lr : dev_watchdog+0x320/0x328
[ 68.248326] sp : ffff800010003db0
[ 68.251627] x29: ffff800010003db0 x28: ffff000002e39940
[ 68.256922] x27: 0000000000000004 x26: 0000000000000140
[ 68.262218] x25: 00000000ffffffff x24: 0000000000000000
[ 68.267513] x23: ffff000002e383dc x22: ffff000002e38000
[ 68.272809] x21: ffff000002e38480 x20: ffff800011197000
[ 68.278104] x19: 0000000000000000 x18: 0000000000000010
[ 68.283399] x17: 0000000000000000 x16: 0000000000000000
[ 68.288694] x15: ffff8000111a1f10 x14: 00000000000001d5
[ 68.293989] x13: ffff8000111a1f10 x12: 00000000ffffffea
[ 68.299284] x11: ffff8000112205b0 x10: ffff800011208570
[ 68.304580] x9 : ffff8000112085c8 x8 : 0000000000017fe8
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

ETH0可以在 XPL 下执行 Ping 操作、但在 SBL 下无法执行 Ping 操作。

该版本的 SBL MCU_cpsw 是否已验证

谢谢

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

    您好!

    您能否共享完整的 Linux 终端日志?

    此外、您能否确认、您是否对与 mcu_cpsw 相关的器件树文件进行了 Nay 更改、如果进行了更改、请向我们提供详细信息。

    您是否能够尝试使用 SDK 的默认文件系统"tisdk-default-image-j721s2-evm.tar.xz"中/boot/中的器件树文件并进行一次检查。

    此致、
    苏德黑尔

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

    您好,

    1:DTS 中仅使用 diff 地址。

    2:PORT_MODE_SEL 应为 RGMII 但为 RMII、那么我该如何配置 DTS?

    3:Linux 日志

    e2e.ti.com/.../ttyUSB0_5F00_2023_2D00_08_2D00_31_5F00_17_2D00_26_2D00_56.log

    4:devmem2 0x40f04040 w 0x2、但已读取0x0000001

    5:CONFIG_TI_CPSW_PHY_SEL 在默认 DTS 中禁用、因此我们将其打开并复制 u-boot DTS 关于 cpsw-phy-sel DTS。

    谢谢

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

    您好!

    很抱歉延迟响应、我们将尝试使用 SBL 和组合的应用映像来引导 Linux (A72)+ MCU1_0 (IPC 回声测试) EVM。

    很快就会更新状态。

    此致、
    苏德黑尔

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

    您好!

    核查情况如何,我们迫切需要切换到 SBL 发展模式;感谢您的理解。

    谢谢

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

    您好!

    我们可以重现此问题、这是因为 CTRLMMR 寄存器默认为锁定状态。
    在开发引导(SBL)或 SPL 的情况下、u-boot 会解锁所有 CTRLMMR 块、因此接口选择会反映在 ENET_CTRL 寄存器中。

    如果是优化引导流程(SBL)、其中不存在 u-boot 但 SBL 加载 Linux 映像、没有人解锁 CTRL MMR 块、那么不会从 ENET_CTRL 选择 RGMII、因为寄存器已锁定。 (写入不会影响寄存器中的值)。
    因此、即使在配置为 RGMII 的器件树接口中、您也会看到接口仍然是 RMII。

    修复以上代码:
    在 SBL 或 Linux 中解锁 CTRLMMR 寄存器。

    请参考以下更改、并将补丁添加到 /pdk/packages/ti/boot/sbl/k3/sbl_main.c 中、我们将从 SBL 中解锁所有 CTRLMMR。

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    +#define WKUP_CTRL_MMR0_BASE 0x43000000
    +#define MCU_CTRL_MMR0_BASE 0x40f00000
    +#define CTRL_MMR0_BASE 0x00100000
    +/*
    + * The CTRL_MMR0 memory space is divided into several equally-spaced
    + * partitions, so defining the partition size allows us to determine
    + * register addresses common to those partitions.
    +*/
    +#define CTRL_MMR0_PARTITION_SIZE 0x4000
    +/*
    + * CTRL_MMR0, WKUP_CTRL_MMR0, and MCU_CTRL_MMR0 lock/kick-mechanism
    + * shared register definitions. The same registers are also used for
    + * PADCFG_MMR lock/kick-mechanism.
    +*/
    +#define CTRLMMR_LOCK_KICK0 0x1008
    +#define CTRLMMR_LOCK_KICK0_UNLOCK_VAL 0x68ef3490
    +#define CTRLMMR_LOCK_KICK1 0x100c
    +#define CTRLMMR_LOCK_KICK1_UNLOCK_VAL 0xd172bc5a
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


    在进行上述更改后、按如下方式构建"SBL_mmcsd_img_HLOS"和"SBL_lib_mmcsd_HLOS"。
    遵循 常见问题解答中的步骤5和步骤7 [SBL 流程与组合的应用程序映像]。

    此致、
    苏德黑尔