在 PSDK_RTOS_auto_J7_06_02_00_21中发现的问题、
在 TI-TDA4中的 R5-0-0内核上运行 cpsw9、如以下日志所示、
为 CPSW_9G 启用时钟!
===================================================================================================
CPSW 以太网固件演示
===================================================================================================
ETHFW 版本:0。 1. 1.
ETHFW 构建日期(YYYY/MMM/DD):2020/Feb/17
ETHFW 提交 SHA:ETHFW PermissionFlag:0x1FFFF、UART Connected:true、UART ID:2IPC_ECHO_TEST (内核:MCU2_0).....
主 NAVSS 上的 CPSW_9G 测试
远程演示设备(内核:MCU2_0)…
PHY 16处于活动状态
rpmsg_vdevMonitorFxn:IPC_lateVirtioCreate 失败
PHY 17处于活动状态
PHY 18处于活动状态
PHY 19处于活动状态
主机 MAC 地址:70:ff:76:1D:8d:FD
[NIMU_NDK] CPSW 已成功启动
------------------------------------------------------------------
------------------------------------------------------------------
'IPC_init'函数中 ethfw (cpsw9)的初始化过程如下所示、
1.初始化远程 CPU VirtIO 资源(R5、A72、DSP 等) -->IPC_initVirtIO (...)
2.等待 A72就绪--- > rpmsg_vdevMonitorFxn (...)
3.初始化 A72的资源--- > IPC_lateVirtioCreate (...)
4.其他逻辑
通常、 由于 Linux 加载缓慢、 Ethfw 已 在 uboot 中加载了很长时间。 因此、在步骤1中不会初始化 A72资源、因为 A72 (Linux)尚未就绪、 所以在等待步骤2中的 A72就绪后、 ethfw 将完成步骤3中 A72的 VirtIO 资源初始化。 那么所有功能都正常工作。
当前的问题是、
如果在 uboot 中未加载 ethfw、 那么在 ethfw 的第1步中、A72有时已准备就绪、从而导致在第1步初始化 A72的 VirtIO。 然后、步骤3、当 A72再次初始化时、初始化将失败。 之后、ethfw 直接打印日志中显示的错误并无条件返回、导致某些函数无法正常工作。
谢谢。