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

全志A40i网卡软件问题排查

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
01问题分析
, f  y5 A2 d! L1 `

7 _3 g" T$ \" B& W/ u; i2 ~问题描述1——
0 g6 B  T: E: n9 ^" `4 X
* g- G/ B+ j% n$ ^+ W0 N
以太网初始化报错 No phy found
% s" Y# f2 k. S2 i: M
$ Q: N9 f% d& X. l3 X
在执行ifconfig eth0 up命令时,出现"No phy found"异常log。  Y2 K% o" l2 s. \

1 W+ D; G9 X; T, C( D/ M& f; E/ ]7 Y, K" f

- n" |7 i9 E  M! E3 O

( `2 f; K+ j% @! {6 m
3 F  x! @8 c. t" T0 O+ N6 ?+ L( ~
, \4 Z! ^$ Z' `" Y# z" G6 N

- Y* W, [2 N' O) V; ?: T问题分析:
% K, X5 U* G- B: h
/ P- j: q/ p$ Q& c* y: v
出现"No phy found",常见原因是供给phy使用的25M时钟异常,导致phy工作不正常,gmac驱动通过mdio接口也读不到phy的设备信息。
6 T, V0 ^! h" B" o

3 ?# H# q% t+ X# B- a1 a! }1 h% B% x' U0 p$ `7 {& }' s  d
0 y( h5 b8 M' S

; r# ~5 Y, `. L或者MDIO引脚配置不正确或者phy地址不正确;再就是MDIO没做上拉电阻,GMAC读取不到phy设备信息,用示波器量一下MDIO波形是否正确;再或是phy芯片复位失败,需要更换phy芯片复位上拉电阻。' s' B& m1 q, r& L' o, r# c& m

% P) H* m$ R7 K6 `* a8 z% }9 R
' ?* b" ?3 G: R
4 O! v2 f. B0 X* a! S" `" P9 N

4 F/ m! Q' j! l5 b- \( T5 l* O3 R

' k' u% e; G* Z6 A$ p6 {2 b5 }) u; ~( Y; G; h; l
8 I; z$ m' e3 j9 T  I
排查步骤:/ g# |; x2 A) [8 A4 d

3 j6 |& s5 h: ?4 {8 ~(1) 检查phy供电是否正常;0 Y. h/ O4 n" a7 h/ H# P1 ]

- B% k# b6 s+ U9 q+ y(2) 检查phy使用的25M时钟(Soc ephy25M或外部晶振)是否正常;
0 _5 `1 C, v+ l+ C
/ s7 D! @! t2 P0 E- X! m
(3) 检查phy-mode是否按板级实际情况配置(mii/rmii/rgmii);8 \6 o3 u4 D& {" G+ J4 k' d, n6 j9 S

7 `* B3 \% y2 Z' V. O% E# g(4) 检查MDIO是否有上拉电阻;
1 M  F! k+ U: n2 G( }0 f" B- t

9 W  j9 f" g# t3 h+ `6 N5 I+ ^(5) 检查MDIO引脚配置是否正确;
( d5 O$ ~, W, `$ s/ x6 l

3 k0 o1 u1 h& i8 A8 F2 J(6) eMAC phy地址是否和硬件一致;, @- G. `5 ^8 W: F  M0 S1 h1 h  O
; S9 F, @' s* s. R
(7) 检查复位上拉电阻是否和原理参考方案一致。/ F- b! _8 [% S. P
- _6 ~- A. s5 F& X; O

" ?7 T1 ?8 V; A/ Z7 Y8 p/ g) `" m, p/ U2 R6 T; S

+ k: {3 w- c1 Y' \% VMDIO通讯正常验证:
# i4 ?, a& N( q/ H, e9 h! v' s

, Q1 m- ~; c& y4 ^$ S- s使用phytool工具读取0x02 0x03寄存器 是否正确读取PHY芯片ID,读取成功,代表MDIO通讯正常。
0 a/ C8 A% s* r$ \4 f
* Z3 {6 w/ }3 Q% P* d

; c# R' v9 F: f# B3 U2 s6 D( U' K$ b# G. e/ G; X' }. z

* e0 f- T8 h5 Q+ v0 b. U5 m6 h: N7 P

& X, q  Y# N7 W, X问题描述2——* L+ N- I+ c. N  q) j

. @( [' T# L& b8 E% o以太网初始化报错NO SUCN DEVICE
! j% e) ]' T& H# D* v1 D) d

- P: ^: S% c% ~7 u执行ifconfig -a/ifconfig eth0/ifconfig eth0 up命令,找不到eth0设备。
+ y' w) Y( d/ m( X' \4 k

, j2 E+ x% Q; @; ~! i! {$ m1 ~4 \3 k
. [7 U# u( }6 `2 W3 A
  e; m( I9 s- z' {) B

3 l% U, r4 y* I$ l
& P; ]# S# [. d; K
问题分析:
; T. l1 z: c8 f
( K4 E% ]  Y; u$ M) _, D
以太网模块配置未生效或存在GPIO冲突。
2 `( t0 `$ H: Z& t7 Y: |$ X$ l! j
8 F8 O& D; G, n  g
  C" ~& H  w# D/ ^

7 P" u5 ~- f& y: W) ]
2 T5 F  j( M7 ?6 c$ r
排查步骤:
0 r! {5 T( @. m" \3 v! Z, r

6 R! b& |0 |1 m" C5 `, v' i6 L步骤1:抓取内核启动log,搜索"gmac"关键字段,检查gmac驱动是否probe成功;
& \( d3 h, `) V, `2 A
2 z/ J2 a$ I* a9 b% c5 M
步骤2:若内核启动log显示mac控制器probe失败,常见原因是GPIO资源冲突导致。" _2 }7 V* W2 x

8 I; L1 f1 E( B  }; o6 K0 Z' \
% q& D( E( n; G) r' ]
0 M$ e3 d1 W+ u2 k7 w
( f, [0 p% W0 P- K9 ?
解决方法:
* O0 C1 ^7 j0 V2 p3 L
5 U* f8 S$ Z9 ^, x; j, [1 P
GPIO冲突会有报错信息,根据报错信息,查看GPIO冲突引脚。
# K4 ~+ a& ?9 {

8 W. _( q: D6 C+ E查看以太网模块是否配置。, Q- f& @+ J# N+ t/ K8 T

$ C' j- _- A! g$ V: ]6 d2 G$ s3 ^8 N# J! d: w1 z: V
8 z! C8 I. f) g' _
7 H  g% a( d3 V! V- V/ G

8 s7 q3 O& x! Z* V/ |
) ^* i+ ^" T) I6 q
9 [( S/ b/ i- f8 g% X

2 P( P1 F2 }; @4 W6 X) {, p问题描述3——2 W1 W6 K& t+ h$ S$ l% K/ x9 i
$ e3 u0 F: l/ `: Z5 k
以太网初始化报错Initialize hardware error' R  O1 I2 q" r7 M3 p9 x6 R

# z/ Q( i: ]. v' J+ B4 E执行ifconfig eth0 up命令,出现"Initialize hardware error"异常log。: L1 Z* g; w$ o, h. B8 o2 e

+ x5 W0 T& U0 Y# ?问题分析:; A$ M2 d5 u2 N6 G/ U

; @( c, c. |) P0 n; `8 i出现"Initialize hardware error",一般是由于phy没有输出RX CLK至MAC控制器,导致MAC控制器内部soft reset失败,常见原因是phy供电异常或25M时钟异常;或者是检查数据引脚的时钟是否正确,RMILL RX CLK TX CLK 是否是正确时钟。; {3 I0 t0 O. Q9 V* v

" n% }" \, z& v9 ]. v9 D- t# p6 Y, J" S( O
6 r+ w2 t0 `  m- K6 @* n: E

( |3 `% k+ O" H/ f

% ]9 p8 z) f8 r. c! {7 r
$ O; U! p6 e3 B; k* ~
3 b1 N$ Y7 O% U8 a4 E8 h: }& v! Z7 \
. Z, z8 C5 c' {8 ~1 p0 J* G
7 D7 X% z4 l7 {+ Q$ U+ y6 m  O6 I

: z. J0 u) i" l: N8 T* ?

0 _+ I+ y: B7 `5 a8 i  O1 s$ }# W排查步骤:
# P( O& Y7 |0 p
8 D% C$ R! G9 Q. \! \" j3 {
用示波器抓取rx_clk时钟波形,查看是否保持25M时钟稳定,如果出现25M/2.5M 来回跳动。即MAC与phy未link成功。
+ N! }8 q6 s; {; L& v5 K  v% P1 g
" n. P3 z; W5 X7 n) d
2 T/ Z. C% h8 Y! [

! k  N6 ~* m$ B- S
! T- q' {1 o0 z1 ?2 z8 i4 L/ W
解决方法:5 a/ F% M* \2 S! ?+ e
3 u8 ?/ X: F8 Q6 h$ V! @
软件上可通过在phy复位之后,设置寄存器0 固定为100M全双工,可link成功。目前可这样解决问题:
: r0 U; {0 _6 Q5 z2 [; F% L0 M' K
" A3 K0 ?( I9 A5 D# a% Z
在drivers/net/ethernet/allwinner/sunxi-gmac.c 中 geth_phy_init函数中 phy_connect_direct 之前加入phy_write(phydev, 0x0, 0x2100)。6 S+ u' L" k7 W% n4 g8 h6 U

+ h2 y0 W2 b, ]# J( U) k1 ]( }* {
: |: Y; `9 x' E0 N
. c& b9 [& I# i' Q: g+ Y
以上是我们在OKA40i-C开发板的使用过程中常见网卡设计问题,有些可能是因为大家在参考方案时出现了配置问题,或者是因为芯片输出的信号不正常导致。大家在参考OKA40i-C开发板的双网口方案时,可以查看本文章整理的问题点,说不定就是您现在项目中遇见的bug。0 l, X. {' {5 K% |4 {) r

3 M3 n# H2 o0 g; d1 k& h" M6 m/ e% H! }$ U0 U' V

" x6 Y8 w9 u2 ?" H2 y: G2 B% \2 W

9 t2 M/ N2 ]6 Z$ A# o/ t, \接下来,小编将给大家介绍一些常用的网卡软件问题对应的排查手段。
( B4 j1 n/ v. p$ z% ~6 R
; w+ Y+ S, e6 q$ T$ c( X
! X5 o, n; G8 ^+ R) }: [6 c4 }& b

; Z+ }( T6 l0 s/ w! b3 w$ T02排查手段5 D) _* J6 h4 o2 q* b+ o  h
2 c3 @$ A+ `! t) c* G
这些排查手段可以帮助您在调试phy时有一个基本的调试思路,提到的一些工具可以帮助您快速定位并且解决网卡问题。5 ]& }0 F5 O" l6 l' g- j

. X- h: R# u  l/ y$ `; G2 c6 j$ x
4 y. C  l. ]5 Y2 y: `0 T. T
+ |' E' \+ v4 M9 K7 c
(1) 检查menuconfig及dts以太网配置是否打开;
6 R- Y. y0 d( J2 L5 j
+ d$ i: t* s' c# t
(2) 检查phy-mode配置是否与PHY和GMAC之间的物理接口匹配,如rgmii、rmii等;
5 j5 b& h2 |! R; p+ ~
4 A( _5 k& Y# Q" L
(3) 检查GPIO配置是否正确,如IO复用功能、驱动能力等;$ V  |. e( j9 X$ s5 u
! m+ d) ~4 L; V  T$ d( M
(4) 使用phytool工具读取phy ID 验证MDIO是否正确。8 C" }  [- \6 V* ~; G! M+ W/ P
( k. B# Z# B1 r9 U* u. E

5 d3 b' O5 ^2 v  F% U, i, D
9 @0 ~' x0 `, y. l$ J- {
如下图示例,能够正常读取JL11x1的phy ID则代表MDIO通讯正常。
; W9 \" J! o8 j

  X4 R+ c( t9 A8 c7 m! X' j! S1 P* q5 a: h7 B! p

; ]4 M1 `) C" Q$ o- {! r

: ]5 {- _: e& I' e5 F5 a9 o使用phytool工具读取phy状态寄存器,查看phy芯片状态。以JL11x1为例,如0x01状态寄存器读取值为0x786d,说明link成功并且工作正常。
9 y0 }: g% ~3 J

- }; G5 t& S* n1 u8 G" P
+ c7 K: q; M) [" p# G$ m5 J3 p& v8 V1 K7 m- \6 X- R8 R4 L$ y8 T

% ?  {! h2 b8 [0 k

/ `' C0 a% J5 J- V4 w/ R( k: D1 U

该用户从未签到

2#
发表于 2023-7-28 11:37 | 只看该作者
这个网卡不知主流的
" ?6 m  V2 A- o+ u6 `, V) v8 s6 \" Z* e
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-18 15:27 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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