|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑
9 t5 q. k7 W4 d- K5 _/ b, p5 t0 a- m; x' Z2 |
在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。" y) A3 y. @2 o2 [5 U* R* u
$ {1 w7 `+ P+ \3 c$ X+ k; ]
很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。. {/ V- ~& J) E* s6 g
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。
& }7 J" O+ D' B& s9 l+ c1.“使用出厂镜像启动时发现无法正常启动”
9 @, M) D7 o3 P7 O" ^问题描述——
- K4 F9 `& U5 i. o0 A) h6 f, J) @$ Y5 m! g0 u, u
客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:
8 C9 T+ I& O2 Z
( u- M" U3 |4 X: p& v1 |5 X* g* {8 F( Z6 d* |
- F2 A, {2 B7 S) l/ s8 g" E
: S) W3 N# r, m- u' ^![]() [backcolor=rgba(18, 18, 18, 0.5)]
- w5 a* ?/ M$ ?/ k$ _- l. G+ H
! |& ~! H0 n6 z0 x/ B, e
; Q2 C$ u1 ~' c l/ L( R2 x- k( t, _! s1 g% h8 h
编辑切换为居中
% n w9 ]5 _% M( \) U& S# U9 i! I3 J! c$ _
; B* H4 n) A& I& N3 H* g# v1 {0 m Y* z" E2 _+ \) e M
1 w' i$ ^1 ?& m: ]! F添加图片注释,不超过 140 字(可选)7 p) O% o0 H3 R- A0 Y% a& m* F2 b; S
% u2 V, }* a0 Y9 r2 M
产生原因——; T% N+ a7 G9 J |: Q2 Y
- S$ D9 a" v9 b2 F" d. ~
PCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。
! I- {( h, H0 k1 { D
) U1 _9 g& a3 K) C8 U( K) A解决办法——& H% B1 ^( |5 P! l
4 F2 d: d8 x! y n! i9 A# @/ C- b8 h
修改内核设备树:& Z# {" ?/ k7 L, c; v& z
2 b2 G. m+ B6 k
viOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts- Y) R$ M E# C$ [5 R0 y' w7 [& U
% D& d. g3 Z+ K$ }7 D
2 j) E/ |3 y" n4 E9 B0 I5 a! [
1 O* _, A/ E4 I. I: X3 s: r9 E) ?& d ?6 h& m2 z$ M
![]() [backcolor=rgba(18, 18, 18, 0.5)]
7 e0 {5 \. o- ?; z5 _( S) R% |' b& V2 y4 y* |9 m* Z& E4 u* ~
+ k5 n0 {4 y- W3 D" I, f1 x# ?: Y8 e4 g6 N3 A8 Q% |1 ~
6 k/ X0 q- Y$ M0 k! X6 p5 M) P
编辑切换为居中
& ^) B, z4 [, P6 k添加图片注释,不超过 140 字(可选)
9 W4 I' y0 c) k, l N/ \; A将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
5 P, v9 k* P* L6 m& S! L! K* n完成上述修改后重新编译并用新的镜像进行烧写。' {) w! p0 s) O9 r8 ]
正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):# o7 l, x" y5 `3 o1 m2 Y
, o8 P. n: b3 u _
![]() [backcolor=rgba(18, 18, 18, 0.5)]
2 P( J: ?) v* u3 i1 f( B8 V' |: P" A$ g
编辑切换为居中3 W9 i. J( `/ O& w: ?9 s
添加图片注释,不超过 140 字(可选)1 m4 C) c( M8 I8 K4 ^+ e8 k
注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。
: i, }% t: _1 S6 \# W. J4 Y2.“使用TF卡进行烧写时发现烧写一半卡住”
9 B: i9 x7 S+ f7 ~
# |$ Y0 B) u) c! y. ~9 R5 o问题描述——
2 f% U7 N" I l! d1 e. A. o5 U( T5 m8 ~
客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:) ?, ^* h- H/ V! J4 Y5 R
/ t' a( y) E" o8 _) J
% Z; ?% g0 s6 b) T& V ^( D& k) ^, D5 }7 l3 e! S) z% y
# V8 E) i+ O8 s" Q
![]() [backcolor=rgba(18, 18, 18, 0.5)]
/ x$ S/ y8 M7 b# l, |; s% y( }% ~. O1 y7 Z$ T9 v
编辑切换为居中
9 x. ?, F% F. Q! i, q添加图片注释,不超过 140 字(可选)1 M" [4 N5 [, t8 M- u
注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。
* E: j3 Y! U- J! E( w% s产生原因——
3 W% i2 E0 q# N, d* S: `. y
2 S0 I9 }5 r& x烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。- S" ^ Z2 ]# _
解决办法——2 p. X# `! L M3 G' Y
# z3 ]6 M5 d: F2 B7 c6 g+ a首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:! ^6 ^* ]0 h d1 E
7 C+ v2 B* n Z* ~( w! ~
; U2 v7 t" n, \* q* E/ t3 Y9 {* V
![]() [backcolor=rgba(18, 18, 18, 0.5)]
& @. N( J5 L. R3 v$ S: \$ j' T
8 Y9 C H5 ^0 c3 w& p2 l 编辑切换为居中2 ?1 P2 u9 n1 @0 ~& d
添加图片注释,不超过 140 字(可选)
3 ]) g8 N% n4 [' i用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。$ t! C; ~/ N; K) S
执行编译命令,生成新的烧写工具:
) D) m4 z5 @" ^- @; w* s: N/ O$ M' |; Y% ?% \
![]() [backcolor=rgba(18, 18, 18, 0.5)] ; v2 u0 K) B- P$ O7 b, C( j" }7 X
( c1 d8 W6 V0 \, E. m6 J5 h$ W. T 编辑切换为居中6 M" F/ g7 B3 B5 Z2 i6 J$ _* K7 j
添加图片注释,不超过 140 字(可选)
. ~2 T [2 k( S1 V' |8 D" W使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。+ ]' j; K1 h* Q
9 R c/ I( V7 T& M& B
进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。
9 a' M' F( _& F9 I# A9 F, n& M0 l注意:3 N5 q; K5 g! g2 e- Q
, v$ _5 T h; [- 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
- OTG烧写不会因没有PCIe而受到影响。2 D( p1 A/ `6 V3 ]1 F! u
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。" u; J& t( P# D9 v- X+ x4 ?
当然,只设计了一路PCIe的情况也需要注意:! c" B% \+ o8 w$ M m
7 R0 ~2 M' M9 J) l* @& n
如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;2 c' u9 S: T- K/ ]( j
# m1 B3 J7 a6 y$ V) Q& O5 b如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。
3 h8 j; M5 y) {0 D( q: m% w; V5 ?% X6 j4 G
以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。5 h6 L- h5 S$ k! _* i
8 k% P' |+ L* r8 g. u& l
6 z( x* [5 I1 `3 b0 \ |
|