|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑 " f6 S, M a; d
6 @8 a; J: p) |7 M! d( i在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。, V& k" @" [ o; q* y% S$ f
' K, G" ~- T, P( r0 @很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。 ]" Q4 O h0 j- l
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。
* T s8 D& D/ v( }$ |3 V1.“使用出厂镜像启动时发现无法正常启动”
" Q2 f* Q! _& e* U) L5 a0 ]) e问题描述——
& p* Q( {1 ~3 Z" d! d
0 d, O$ Z, H% B6 T: L客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:
p6 }. f2 U" ^; O8 _
* f( E) H7 m4 [% P0 L
$ I- _. q7 H. y' a% Q( k
& ^# t) g3 y0 n/ F2 P9 d0 p' f2 U
# ^. R8 @. y% x1 n5 W8 Q![]() [backcolor=rgba(18, 18, 18, 0.5)] & R) d; z0 x! n4 v$ c' |
/ t- [$ _7 C% P- ^$ w: y
& |; d+ s7 H6 v2 N4 f# j& V
# [; \* {7 \" l8 @3 F
4 a1 x3 Z/ i6 `/ a( B编辑切换为居中' X0 ]2 Q. ^) q9 \$ Z; {0 N
) ]& h; ]1 e9 S. V
% r& O7 W. k+ U6 D: O) q) k, B/ |: p
* P0 l$ x1 Q# R/ u% b' H+ j
添加图片注释,不超过 140 字(可选)) B+ T r/ U# c4 x
! T2 c/ \% t6 m4 g6 ^
产生原因——1 D3 e# u. C, o, d
( I& V" u/ S2 X* j R/ bPCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。6 Q: |, V0 o0 e$ a5 Z
1 L9 D* t8 J1 y" ^1 ]3 B. ?
解决办法——
& E5 ~& \5 P1 {/ w* ?/ S; c' a' g
修改内核设备树:
' C$ f; s) v+ N' R
; Q9 E/ T% E7 S$ U7 UviOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts* Q, J: T" _* g3 ]4 n5 m
: s9 F% w4 [! R {1 f
9 F4 P. A) G& @/ i' [; ?; K4 b& J- j5 M: o/ w) E* ^
- J6 v4 l' @# J9 C* w; r8 @![]() [backcolor=rgba(18, 18, 18, 0.5)] & n: H- F7 S5 N. h
/ d" c. X5 j4 R m% u0 f' Y/ e; f
- o$ C' L5 C( d( z
, [' a9 w) J. v
8 p# z$ [1 \& E
编辑切换为居中
3 t% M6 E+ E6 Y# S8 q添加图片注释,不超过 140 字(可选)9 `0 Q: e# n6 W' M3 W
将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
, M; }) L- w/ g7 y0 v; p完成上述修改后重新编译并用新的镜像进行烧写。- L! D/ L$ N% ~9 ] p& t
正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):
3 y' s7 R2 e, T6 K' V4 b8 O$ Z5 \1 C% Z5 N
![]() [backcolor=rgba(18, 18, 18, 0.5)] 9 l0 n+ R% ^" |! i8 K9 [
7 Y9 ?/ O8 @& l+ a4 M
编辑切换为居中
6 X( ]+ `5 n1 z @添加图片注释,不超过 140 字(可选); Y8 K/ [% v' j7 Y& {8 ?
注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。5 J( s' f0 @* K' [: O6 }$ d
2.“使用TF卡进行烧写时发现烧写一半卡住”
9 t" u8 } C* ~4 M0 J; H
* v2 ]2 T; s6 j' {: i7 p0 b. r问题描述——* U" j' r8 X5 d% \% | z2 S. Z
/ C: g; Y2 T( {+ B. C; p0 C, P4 X; t
客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:3 j5 G4 V i% I/ I" Q; l* L# e x
8 Q" d, d1 b+ w% S* F& Q
# w9 Y- ^+ W4 Q. N( s8 W6 \
+ W" U4 B) P! m( Q. {& l3 D$ I% B
6 n$ R2 D* \$ y" ^ C z![]() [backcolor=rgba(18, 18, 18, 0.5)] : }/ q# ]" c7 o7 P/ m- I
8 h0 @5 l8 h: y% D0 s
编辑切换为居中
# g5 } E+ u* a* f8 l添加图片注释,不超过 140 字(可选)
9 C4 f+ c3 v* C4 V- M+ A# s# u% t注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。+ J1 x% X8 g' ~ n
产生原因——
V' U8 L* J A. y, p2 J8 m
, k1 w# L0 C4 l$ ^( {烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。
* s3 e; x4 ^, B; T' i8 U. M3 ~ O! G解决办法——
0 M% j8 P1 B* j, D( Q2 s: r% L8 P; N" [; Z7 I3 u( E
首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:+ O* ^$ Q) c( ?& \0 _7 `" S' E
1 c5 L; [4 }- q6 O# |3 b' o
# o/ U% T" Z8 @7 r6 f) J6 c![]() [backcolor=rgba(18, 18, 18, 0.5)] # Z1 w1 R( B* Y+ J& ~
. ^: ^" Y6 w' J! i! U9 ?
编辑切换为居中 `0 o5 f! T' P
添加图片注释,不超过 140 字(可选)5 s0 j: O, u4 f3 M7 L# h
用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。
$ L2 x( q* M2 X& C执行编译命令,生成新的烧写工具:
X! r* r3 e2 r: c3 G. N3 g5 N# x; ^2 Z: ~/ N1 f! P& G
![]() [backcolor=rgba(18, 18, 18, 0.5)] # g. k3 M, H3 C' K
, n% x! c$ J1 P, l: \
编辑切换为居中
( ]1 U% j1 W, }7 ?& C添加图片注释,不超过 140 字(可选)
- y% D* S; r' F, n使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。- s; z. ~& e, |# G* O: U8 c
3 w2 m$ j8 W7 e: N. y2 @进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。
$ H, C- k2 y+ O; [+ a注意:3 i" q- A5 c6 Q7 `, J; |
" D, @9 j# m1 k! i/ ~' ^. |1 c- 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
- OTG烧写不会因没有PCIe而受到影响。2 C! R7 ?5 d6 U6 ^
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。, q. F7 J) _4 }
当然,只设计了一路PCIe的情况也需要注意:
- k! N. X/ {6 q, T' n& R' X
7 }- J& C8 W) M2 x/ l如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;
% f% u" [, J% v3 ?
7 ]7 D. Y3 w; ~: T% I% S# m如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。
q$ n8 z* \8 {+ f& Z3 _/ W4 d0 P
" d# i$ C4 M5 m- @2 f% E- _( ?以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。
1 g, D: b" w: x& N0 ? E }
0 Q' Z; d: y! t G2 ? n; E9 g" Q( D- G6 S) Q) [( h
|
|