找回密码
 注册
关于网站域名变更的通知
查看: 236|回复: 1
打印 上一主题 下一主题

全志A40i网卡软件问题排查

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2023-7-28 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
01问题分析
& l$ j- P- j" N& E8 K3 g% O

0 i: Y& g- U' Q; d6 m3 {0 m问题描述1——
' M  u! |  i* l" m' ]0 z& f1 m

" o$ k/ u6 S- D3 Z以太网初始化报错 No phy found
! {5 b2 S. h" g; k7 `: X

, P" ^( G! e8 C9 H在执行ifconfig eth0 up命令时,出现"No phy found"异常log。- q. g4 P0 a# ?4 v% N% _

+ ?8 C$ |" z# V  J) m
: p( R0 _% S9 ~4 Q5 L% [  c
, {8 d" J0 I. y9 h. a
9 t' W# \5 Y- V

5 K+ P2 w# V9 I
- M2 o' }  `8 L1 j
; ]# F1 D- |) u( j
问题分析:4 J& M+ ]8 l& K  f
( T4 P, v' `1 a( f9 C( f. i
出现"No phy found",常见原因是供给phy使用的25M时钟异常,导致phy工作不正常,gmac驱动通过mdio接口也读不到phy的设备信息。# j7 M% @2 k6 w% a2 N3 O+ `

& }$ `* @5 `6 F8 D' U1 l5 _! s2 z/ o! c+ H% d; z

' W& G( I$ l- h# w

( D) A' F% J2 ]: u或者MDIO引脚配置不正确或者phy地址不正确;再就是MDIO没做上拉电阻,GMAC读取不到phy设备信息,用示波器量一下MDIO波形是否正确;再或是phy芯片复位失败,需要更换phy芯片复位上拉电阻。
. s5 Y: k+ G) w; G. l, E5 v' `0 u
, Z, z, Z. I- b% w6 a' Y& Y

8 r. I1 b/ ^  n# z
$ @0 s- I! L% Q
) \' k: Z- T- n2 T5 L
- ~0 r$ g- I; |- m9 L
) L+ b% Z6 U+ C" `! y

& w( q3 P$ y6 i7 _排查步骤:) B, _8 ^) l0 K1 W" S# H9 Y0 u" b

( R) V* ]! F% J! L6 F$ X2 u(1) 检查phy供电是否正常;
0 ~8 h' h1 j6 C; L; @# |5 n9 o

$ h  j8 x1 _# z  f5 e& M(2) 检查phy使用的25M时钟(Soc ephy25M或外部晶振)是否正常;$ j! m  G3 }# s( y( X. i

: k5 j4 f9 ~9 a; p- c(3) 检查phy-mode是否按板级实际情况配置(mii/rmii/rgmii);, {( r5 B& [: d

% s& i; N& `& X0 ~3 O(4) 检查MDIO是否有上拉电阻;8 o7 S, c$ }" r6 ~: I7 Q# L; E
3 o$ P, W* s* a+ d  ^( Y/ ]
(5) 检查MDIO引脚配置是否正确;
! R; f$ ?& m& M* Z
# m# m: G+ q3 U8 I8 {8 g% E( o( K9 `
(6) eMAC phy地址是否和硬件一致;7 h1 z! C; r0 D! j  z+ c
8 L% j! v8 c2 u
(7) 检查复位上拉电阻是否和原理参考方案一致。5 \/ ~" a$ u5 V. r+ M

+ m6 U: g; J; {" W) a; X( y( ]: y, ?0 k& [
$ R% ?+ A0 E" X/ R

, M- A% Y0 ]/ Y: b5 t/ P1 I, d" l! ~MDIO通讯正常验证:
$ J2 i) l2 y0 H! d7 d. T

% g% i6 o& |5 Z$ {0 h使用phytool工具读取0x02 0x03寄存器 是否正确读取PHY芯片ID,读取成功,代表MDIO通讯正常。
( a) T+ U4 X! p* V2 a
# ~& y2 a# r; r3 b' m! M% X
( `: e9 \% m/ G& B2 P+ \

" @. e0 w6 g1 l* \2 P6 X
  s/ j4 Y1 M3 F  H( R0 q' p- l

# X/ W5 }+ G0 C: H2 f) R* T问题描述2——
: g- Z7 T1 o  v6 H/ {9 C
' c, A# ?2 g) T
以太网初始化报错NO SUCN DEVICE
5 p7 k* s) Y) O2 b4 p! b' C
1 M# j; G. T0 P) i4 C0 r
执行ifconfig -a/ifconfig eth0/ifconfig eth0 up命令,找不到eth0设备。0 _, Y" ^& c' `6 L/ V# r
. z# X0 C8 P. @$ u# ^; p& ~5 e

3 v* `/ N# q$ q" N' U: o* l" r; u9 ~: Y6 ^, n, l; j
$ B6 Q6 ~4 l. \" o* P

9 q% X7 G( o4 `7 ?. P8 M
) `% [1 ?2 K; L2 g" B3 C; F6 P
问题分析:8 T0 A9 q3 F2 f1 a
  C+ i( U' R: E/ _6 u4 [$ |
以太网模块配置未生效或存在GPIO冲突。, d  N( p) `0 V6 J! C

  R1 F- j0 K5 w, N  P  {( p7 S" E
( T  d! }9 P/ f
6 ~  d: q5 T4 }6 N# ?- x

' c1 Q/ [# Q* g; [排查步骤:$ v/ t/ \1 j, l, a! u) N
5 ?9 o0 N' v7 k* u* [
步骤1:抓取内核启动log,搜索"gmac"关键字段,检查gmac驱动是否probe成功;
  z8 i6 ?/ T$ b, p/ N; W

9 G& L. `/ s1 x$ @2 ^步骤2:若内核启动log显示mac控制器probe失败,常见原因是GPIO资源冲突导致。
/ I6 H9 ~) s3 z
3 Y( ~% l( u- R

7 B$ \6 m; D1 f! m& T  k+ A  [8 h( a% c" C$ N. ~2 Q! D

% G* [# x! E2 }* G* c解决方法:. i$ h6 U9 l3 t# }: U& v9 F
4 N( Q% k4 g4 e2 C  j
GPIO冲突会有报错信息,根据报错信息,查看GPIO冲突引脚。/ Z: E, D) K* f( F1 q% ~% N. p- R' z
3 G0 ?+ p* j6 u# W
查看以太网模块是否配置。
* O* {5 P% J% @" ~& d
2 N* w+ G  _. C( G' M. {" P2 v

, L! N+ r6 h) s; P* Q$ I) G, e  V' s  Q: r
8 u2 H1 [  b5 G0 Q

$ M5 S4 ]: C5 N2 g
9 e& Z) Z/ N8 D- F
  S& J6 d) l$ C" X
2 U! y' G  n5 `( I4 i' h0 ?
问题描述3——
4 }; _3 f. Q# I* J" i! l
& k# c" {' Y6 Y( \+ i5 ~! m
以太网初始化报错Initialize hardware error
, I/ Q8 C6 Z+ m  D  A$ n# g: F8 p2 L

$ w4 `$ Z4 T( T$ N! ~执行ifconfig eth0 up命令,出现"Initialize hardware error"异常log。
0 q% S: b& W" E. X, N

' Z4 K! P3 @/ f. M: Z问题分析:
+ q, J1 E/ h; r$ }4 q+ H

, G$ @' A$ h9 P" Z- }; L# a出现"Initialize hardware error",一般是由于phy没有输出RX CLK至MAC控制器,导致MAC控制器内部soft reset失败,常见原因是phy供电异常或25M时钟异常;或者是检查数据引脚的时钟是否正确,RMILL RX CLK TX CLK 是否是正确时钟。- o: a$ U! t) F+ ~% Q2 T( F
1 F3 B! k9 N& d& O% F4 f% x5 q& j4 [

% m* _7 V( z# H0 O/ K& L$ l" s" J4 y' f. |% h4 g% U+ o0 C" x; e
0 ^* Z& w1 F! t6 Y! D. R
4 x" K" v7 t+ l; n- h
8 U6 V4 o: Y' a7 c- u1 M8 S
3 i- O! ]0 k# F3 i2 f

/ |* M9 Q9 p4 R# i9 N
& K* P7 f6 A: T4 K1 v( R6 @& G

4 Y: @" [. ~% e- a3 c

8 G& y' j4 T2 ?& G; z2 j/ k, V
( Y$ l% Y6 q, @+ P& Y
排查步骤:' ^7 |9 V: ?; N8 S( k. u$ V+ ~) ~

) c; e& F. S  u  s用示波器抓取rx_clk时钟波形,查看是否保持25M时钟稳定,如果出现25M/2.5M 来回跳动。即MAC与phy未link成功。
: ^0 I2 z' N2 V& N& w5 N

" S/ t, Y  G1 c2 A! ?# g( s- w1 G; ]; y
5 `' u' N: `  H# [

; N, ~( _, A9 G2 I( Q2 _解决方法:
# G7 ]- k9 d3 X- M) Z
, X3 u, {7 M3 X# f
软件上可通过在phy复位之后,设置寄存器0 固定为100M全双工,可link成功。目前可这样解决问题:
# H' ~& i# k# i' k

2 @/ `# s7 n+ N( P% y" t7 q) t
在drivers/net/ethernet/allwinner/sunxi-gmac.c 中 geth_phy_init函数中 phy_connect_direct 之前加入phy_write(phydev, 0x0, 0x2100)。5 p$ R8 B+ j1 q: W9 [

- l9 v% E: j# S0 T1 Q
; W" s6 L! h, y% I; b# J: G. s
/ g* r7 {, V% z9 M* K: a
以上是我们在OKA40i-C开发板的使用过程中常见网卡设计问题,有些可能是因为大家在参考方案时出现了配置问题,或者是因为芯片输出的信号不正常导致。大家在参考OKA40i-C开发板的双网口方案时,可以查看本文章整理的问题点,说不定就是您现在项目中遇见的bug。" j8 f8 |( v# g! b' t1 p, `
7 M1 O! g% B4 K' f+ s* M6 K
& v) y  u- k, G  [7 ]! X- S8 c8 X

9 ?, }6 q7 Q" n" K
: n0 D, @( V, q& l/ Q6 @
接下来,小编将给大家介绍一些常用的网卡软件问题对应的排查手段。9 H. i0 F+ a* N( C8 |

8 e! s7 T' P7 g! Z5 U+ n; U4 m( L/ @8 Z# l8 }7 l! C

9 f# D. I" l% l3 m+ q: e/ X! c02排查手段
0 E* d: m- P2 j7 {9 a

# P0 Z. Q0 z" x0 I- q! B这些排查手段可以帮助您在调试phy时有一个基本的调试思路,提到的一些工具可以帮助您快速定位并且解决网卡问题。
8 q4 V  H, [5 p1 H: L
- ?% s. J3 }& e6 a% H; p5 N

2 `  Z8 z8 A' B) i+ x3 l3 X
- R: I' B) w) c  N0 c
(1) 检查menuconfig及dts以太网配置是否打开;8 M" j3 J" U9 f5 D

7 X) e& W* a6 j; O(2) 检查phy-mode配置是否与PHY和GMAC之间的物理接口匹配,如rgmii、rmii等;
6 q$ ^' I5 D( g% n3 Q

3 |- T* ]0 t4 ~& B2 H(3) 检查GPIO配置是否正确,如IO复用功能、驱动能力等;2 T" _3 Y4 h9 H

) M( H7 K! T) M1 ~4 j(4) 使用phytool工具读取phy ID 验证MDIO是否正确。
& w0 L; y8 n* y6 m

4 m+ a9 X7 O. M  p  v+ h" l9 @
0 }1 E6 o( H5 S4 }' B6 k
' R! P, ~1 m3 }) B. r" F
如下图示例,能够正常读取JL11x1的phy ID则代表MDIO通讯正常。
- J3 ^. U8 L* h$ I

5 a; v& u  v3 P2 J
7 g& |  q! a1 y& }$ l8 P

' \) C* K2 k4 ~* p! A

/ `/ x3 V9 w9 E) Q) T/ Z使用phytool工具读取phy状态寄存器,查看phy芯片状态。以JL11x1为例,如0x01状态寄存器读取值为0x786d,说明link成功并且工作正常。
4 K" w5 E2 g" N% c& S

4 i- e- A) t9 d# X7 G& o
7 J7 x" k% b$ ?- x4 u) p9 U0 j* P2 w: m

4 L- x% j. t- q& q# t
# d/ o* V* P7 z1 Q/ ^. i) ?' N

该用户从未签到

2#
发表于 2023-7-28 11:37 | 只看该作者
这个网卡不知主流的4 _, y/ h% ?$ f
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-19 15:32 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表