主题中讨论的其他器件:PCM3168A、
尊敬的专家:
最近,当我在我们自己的硬件上调试以太网时,我遇到了一个问题,想咨询您,我们使用的 PHY 芯片 是 dp83822,cpsw2g 以太网接口。当我们自己的硬件电路板的网络端口连接到路由器 时, 使用 "ifconfig"命令查看网络端口信息,网络端口不能获取 IP 地址(我们使用的以太网接口为 eth0 ),并显示以下内核崩溃消息:
IFCO[121.916502]-------- [在此处剪切]-----
[121.921122] NETDEV 看门狗:eth0 (am65-cpsw-桁 架):发送队列0超时
[121.928376]警告:CPU:0 PID:0 at net/sched/sch_generic.c:442 dev_watchdog+0x300/0x308
[121.936617]中链接的模块: xhci_plat_hcd xhcd ti_am335x_adc kcontio_buf rpmsg_char cdns3 uDC_core 角色 IRQ_pruss_intc prus_intc icss_IEP vifng_core cdcti2rx us_commonic crtid_c_tcpu_tex_cinc video_toc_bul_bul_bul_bul_cinc video_de2pbul_mac ve2pbul_mac v_remote_remote_remote_remote_bul_une_bul_bul_bul_bul_bul_mctran_bul_bul_bune_bul_bul_bul_bul_bul_bul_bul_bul_beg_ctran_bul_bul_bul_bul_bul_bul_bul_bun_bul_bun_beg_ctrad_bul_bul_c pvrsrvkm (O) cdns3_ti RTI_WDT sch_fq_codel rpmsg_kdrv_switch cryptodev (O) ipv6
[122.000081] CPU:0 PID:0 Comm:swapper/0被污染:G O 5.10.41-g4c2eade9f7 #6
[122.008495]硬件名称:德州仪器(TI) K3 J721E SoC (DT)
[122.014311]状态:20000005 (nzCv daif -PAN -UAO -TCO BTYPE=-)
[122.020299] PC:DEV_TUSEND+0x300/0x308
[122.024293] LR:DEV_安全 装置+0x300/0x308
[122.028282886] sp:ff80001136fdb0
[122.031587] X29:ff80001136fdb0 x28:ff0008026b6940
[122.036884] X27:000000000004 x26:0000000000000140
[122.042181] x25:00000000ffff x24:00000000000000000000
[122.047478] x23:ff0008026b539c x22:ff0008026b5000
[122.052774] x21:ff0008026b5440 x20:ff800011131000
[122.058070] x19:000000000000 x18:000000000010
[122.063367] X17:000000000000 x16:0000000000000000
[122.068662] x15:ff80001113be30 x14:0000000000000481
[122.073959] X13:ff80001113be30 x12:0000ffffea
[122.079255] x11:ff8000111ba360 x10:ff8000111a2320
[122.084550] x9:ffff8000111a2378 x8:000000017fe8
[122.089846] x7:c0000000ffefff x6:000000000003
[122.095142] x5:0000000000000000 x4:0000000000000000
[122.100439] x3:0000000000000100 x2:0000000000000100
[122.105736] x1:cafeeac8ef3e5d00 x0:000000000000
[122.111033]呼叫跟踪:
[122.113468] DEV_TDOGER+0x300/0x308
[122.117120] call_timer_fn.isra.0+0x24/0x80
[122.12128] run_timer_softirq+0x3f0/0x418
[122.125371] EFI_HEADER_END+0x120/0x268
[122.129194] IRQ_EXIT+0xc0/0xe0
[122.132322]__Handle_domain_IRQ+0x68/0xc0
[122.136404] GIC_Handle_IRQ+0x58/0x128
[122.140138] el1_IRQ+0xCC/0x180
[122.143268] arch_cpu_idle+0x18/0x28
[122.146829] DEFAULT_IDLE_CALL + 0x20/0x68
[122.150738] do_idle+0xc0/0x128
[122.153864] CPU_STARTUP_END+0x28/0x60
[122.157772] REST_INIT+0xd4/0xe4
[122.160990] arch_call_rest _init+0x10/0x1c
[122.165071] START_kernel+0x49c/0x4d4
[122.168719]--[结束线迹3d4497e978e490a7 ]--
然后串行端口将连续打印以下日志:
am65-cpsw-nuss 460000.ethernet eth0:TxQ:0 DRV_XOFF:0 TMO:7976 dql_avail:-70 free_desc:510
代码修改::
1)编译 dp83822驱动程序到内核、并通过:phy_Write 将0x21写入寄存器0x0017 (MII_dp83822_rcsr)以启用 dp83822的 RMII 模式(硬件上没有配置、需要软件配置 )、并通过添加打印信息来确认驱动程序已运行。
2) 2) 修改了器件树的引脚复用。 连接到 dp83822的 TDA4VM 引脚从 RGMII 模式多路复用为 RMII 模式、并且根据硬件将 PHY 芯片地址从0更改为1 (开发板为 dp83867 + RGMII、我们自己的硬件为 dp83822 + RMII)